# @generated by mypy-protobuf.  Do not edit manually!
import sys
from typing import NewType as typing___NewType, cast as typing___cast

from google.protobuf.descriptor import (
    Descriptor as google___protobuf___descriptor___Descriptor,
    EnumDescriptor as google___protobuf___descriptor___EnumDescriptor,
    FileDescriptor as google___protobuf___descriptor___FileDescriptor,
)
from google.protobuf.internal.enum_type_wrapper import (
    _EnumTypeWrapper as google___protobuf___internal___enum_type_wrapper____EnumTypeWrapper,
)
from google.protobuf.message import Message as google___protobuf___message___Message

builtin___int = int

DESCRIPTOR: google___protobuf___descriptor___FileDescriptor = ...

class AccountBudgetProposalErrorEnum(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    AccountBudgetProposalErrorValue = typing___NewType(
        "AccountBudgetProposalErrorValue", builtin___int
    )
    type___AccountBudgetProposalErrorValue = AccountBudgetProposalErrorValue
    AccountBudgetProposalError: _AccountBudgetProposalError
    class _AccountBudgetProposalError(
        google___protobuf___internal___enum_type_wrapper____EnumTypeWrapper[
            AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue
        ]
    ):
        DESCRIPTOR: google___protobuf___descriptor___EnumDescriptor = ...
        UNSPECIFIED = typing___cast(
            AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 0
        )
        UNKNOWN = typing___cast(
            AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 1
        )
        FIELD_MASK_NOT_ALLOWED = typing___cast(
            AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 2
        )
        IMMUTABLE_FIELD = typing___cast(
            AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 3
        )
        REQUIRED_FIELD_MISSING = typing___cast(
            AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 4
        )
        CANNOT_CANCEL_APPROVED_PROPOSAL = typing___cast(
            AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 5
        )
        CANNOT_REMOVE_UNAPPROVED_BUDGET = typing___cast(
            AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 6
        )
        CANNOT_REMOVE_RUNNING_BUDGET = typing___cast(
            AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 7
        )
        CANNOT_END_UNAPPROVED_BUDGET = typing___cast(
            AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 8
        )
        CANNOT_END_INACTIVE_BUDGET = typing___cast(
            AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 9
        )
        BUDGET_NAME_REQUIRED = typing___cast(
            AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 10
        )
        CANNOT_UPDATE_OLD_BUDGET = typing___cast(
            AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 11
        )
        CANNOT_END_IN_PAST = typing___cast(
            AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 12
        )
        CANNOT_EXTEND_END_TIME = typing___cast(
            AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 13
        )
        PURCHASE_ORDER_NUMBER_REQUIRED = typing___cast(
            AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 14
        )
        PENDING_UPDATE_PROPOSAL_EXISTS = typing___cast(
            AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 15
        )
        MULTIPLE_BUDGETS_NOT_ALLOWED_FOR_UNAPPROVED_BILLING_SETUP = typing___cast(
            AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 16
        )
        CANNOT_UPDATE_START_TIME_FOR_STARTED_BUDGET = typing___cast(
            AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 17
        )
        SPENDING_LIMIT_LOWER_THAN_ACCRUED_COST_NOT_ALLOWED = typing___cast(
            AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 18
        )
        UPDATE_IS_NO_OP = typing___cast(
            AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 19
        )
        END_TIME_MUST_FOLLOW_START_TIME = typing___cast(
            AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 20
        )
        BUDGET_DATE_RANGE_INCOMPATIBLE_WITH_BILLING_SETUP = typing___cast(
            AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 21
        )
        NOT_AUTHORIZED = typing___cast(
            AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 22
        )
        INVALID_BILLING_SETUP = typing___cast(
            AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 23
        )
        OVERLAPS_EXISTING_BUDGET = typing___cast(
            AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 24
        )
    UNSPECIFIED = typing___cast(
        AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 0
    )
    UNKNOWN = typing___cast(
        AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 1
    )
    FIELD_MASK_NOT_ALLOWED = typing___cast(
        AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 2
    )
    IMMUTABLE_FIELD = typing___cast(
        AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 3
    )
    REQUIRED_FIELD_MISSING = typing___cast(
        AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 4
    )
    CANNOT_CANCEL_APPROVED_PROPOSAL = typing___cast(
        AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 5
    )
    CANNOT_REMOVE_UNAPPROVED_BUDGET = typing___cast(
        AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 6
    )
    CANNOT_REMOVE_RUNNING_BUDGET = typing___cast(
        AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 7
    )
    CANNOT_END_UNAPPROVED_BUDGET = typing___cast(
        AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 8
    )
    CANNOT_END_INACTIVE_BUDGET = typing___cast(
        AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 9
    )
    BUDGET_NAME_REQUIRED = typing___cast(
        AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 10
    )
    CANNOT_UPDATE_OLD_BUDGET = typing___cast(
        AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 11
    )
    CANNOT_END_IN_PAST = typing___cast(
        AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 12
    )
    CANNOT_EXTEND_END_TIME = typing___cast(
        AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 13
    )
    PURCHASE_ORDER_NUMBER_REQUIRED = typing___cast(
        AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 14
    )
    PENDING_UPDATE_PROPOSAL_EXISTS = typing___cast(
        AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 15
    )
    MULTIPLE_BUDGETS_NOT_ALLOWED_FOR_UNAPPROVED_BILLING_SETUP = typing___cast(
        AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 16
    )
    CANNOT_UPDATE_START_TIME_FOR_STARTED_BUDGET = typing___cast(
        AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 17
    )
    SPENDING_LIMIT_LOWER_THAN_ACCRUED_COST_NOT_ALLOWED = typing___cast(
        AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 18
    )
    UPDATE_IS_NO_OP = typing___cast(
        AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 19
    )
    END_TIME_MUST_FOLLOW_START_TIME = typing___cast(
        AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 20
    )
    BUDGET_DATE_RANGE_INCOMPATIBLE_WITH_BILLING_SETUP = typing___cast(
        AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 21
    )
    NOT_AUTHORIZED = typing___cast(
        AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 22
    )
    INVALID_BILLING_SETUP = typing___cast(
        AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 23
    )
    OVERLAPS_EXISTING_BUDGET = typing___cast(
        AccountBudgetProposalErrorEnum.AccountBudgetProposalErrorValue, 24
    )
    type___AccountBudgetProposalError = AccountBudgetProposalError
    def __init__(self,) -> None: ...

type___AccountBudgetProposalErrorEnum = AccountBudgetProposalErrorEnum
