"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import shared.shared_pb2
import sys

if sys.version_info >= (3, 8):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing_extensions.final
class BudgetSubscriber(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    SUBSCRIPTION_TYPE_FIELD_NUMBER: builtins.int
    ADDRESS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    subscription_type: builtins.str
    address: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        subscription_type: builtins.str = ...,
        address: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["address", b"address", "resource_info", b"resource_info", "subscription_type", b"subscription_type"]) -> None: ...

global___BudgetSubscriber = BudgetSubscriber

@typing_extensions.final
class BudgetNotification(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    COMPARISON_OPERATOR_FIELD_NUMBER: builtins.int
    NOTIFICATION_TYPE_FIELD_NUMBER: builtins.int
    THRESHOLD_FIELD_NUMBER: builtins.int
    THRESHOLD_TYPE_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    comparison_operator: builtins.str
    notification_type: builtins.str
    threshold: builtins.float
    threshold_type: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        comparison_operator: builtins.str = ...,
        notification_type: builtins.str = ...,
        threshold: builtins.float = ...,
        threshold_type: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["comparison_operator", b"comparison_operator", "notification_type", b"notification_type", "resource_info", b"resource_info", "threshold", b"threshold", "threshold_type", b"threshold_type"]) -> None: ...

global___BudgetNotification = BudgetNotification

@typing_extensions.final
class BudgetNotificationWithSubscribers(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    SUBSCRIBERS_FIELD_NUMBER: builtins.int
    NOTIFICATION_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def subscribers(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___BudgetSubscriber]: ...
    @property
    def notification(self) -> global___BudgetNotification: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        subscribers: collections.abc.Iterable[global___BudgetSubscriber] | None = ...,
        notification: global___BudgetNotification | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["notification", b"notification", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["notification", b"notification", "resource_info", b"resource_info", "subscribers", b"subscribers"]) -> None: ...

global___BudgetNotificationWithSubscribers = BudgetNotificationWithSubscribers

@typing_extensions.final
class BudgetSpend(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    AMOUNT_FIELD_NUMBER: builtins.int
    UNIT_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    amount: builtins.float
    unit: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        amount: builtins.float = ...,
        unit: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["amount", b"amount", "resource_info", b"resource_info", "unit", b"unit"]) -> None: ...

global___BudgetSpend = BudgetSpend

@typing_extensions.final
class BudgetTimePeriod(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    START_FIELD_NUMBER: builtins.int
    END_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    start: builtins.str
    end: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        start: builtins.str = ...,
        end: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["end", b"end", "resource_info", b"resource_info", "start", b"start"]) -> None: ...

global___BudgetTimePeriod = BudgetTimePeriod

@typing_extensions.final
class BudgetCostTypes(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    INCLUDE_SUPPORT_FIELD_NUMBER: builtins.int
    INCLUDE_OTHER_SUBSCRIPTION_FIELD_NUMBER: builtins.int
    INCLUDE_TAX_FIELD_NUMBER: builtins.int
    INCLUDE_SUBSCRIPTION_FIELD_NUMBER: builtins.int
    USE_BLENDED_FIELD_NUMBER: builtins.int
    INCLUDE_UPFRONT_FIELD_NUMBER: builtins.int
    INCLUDE_DISCOUNT_FIELD_NUMBER: builtins.int
    INCLUDE_CREDIT_FIELD_NUMBER: builtins.int
    INCLUDE_RECURRING_FIELD_NUMBER: builtins.int
    USE_AMORTIZED_FIELD_NUMBER: builtins.int
    INCLUDE_REFUND_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    include_support: builtins.bool
    include_other_subscription: builtins.bool
    include_tax: builtins.bool
    include_subscription: builtins.bool
    use_blended: builtins.bool
    include_upfront: builtins.bool
    include_discount: builtins.bool
    include_credit: builtins.bool
    include_recurring: builtins.bool
    use_amortized: builtins.bool
    include_refund: builtins.bool
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        include_support: builtins.bool = ...,
        include_other_subscription: builtins.bool = ...,
        include_tax: builtins.bool = ...,
        include_subscription: builtins.bool = ...,
        use_blended: builtins.bool = ...,
        include_upfront: builtins.bool = ...,
        include_discount: builtins.bool = ...,
        include_credit: builtins.bool = ...,
        include_recurring: builtins.bool = ...,
        use_amortized: builtins.bool = ...,
        include_refund: builtins.bool = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["include_credit", b"include_credit", "include_discount", b"include_discount", "include_other_subscription", b"include_other_subscription", "include_recurring", b"include_recurring", "include_refund", b"include_refund", "include_subscription", b"include_subscription", "include_support", b"include_support", "include_tax", b"include_tax", "include_upfront", b"include_upfront", "resource_info", b"resource_info", "use_amortized", b"use_amortized", "use_blended", b"use_blended"]) -> None: ...

global___BudgetCostTypes = BudgetCostTypes

@typing_extensions.final
class BudgetBudgetData(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class PlannedBudgetLimitsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    @typing_extensions.final
    class CostFiltersEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    BUDGET_LIMIT_FIELD_NUMBER: builtins.int
    TIME_PERIOD_FIELD_NUMBER: builtins.int
    TIME_UNIT_FIELD_NUMBER: builtins.int
    PLANNED_BUDGET_LIMITS_FIELD_NUMBER: builtins.int
    COST_FILTERS_FIELD_NUMBER: builtins.int
    BUDGET_NAME_FIELD_NUMBER: builtins.int
    COST_TYPES_FIELD_NUMBER: builtins.int
    BUDGET_TYPE_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def budget_limit(self) -> global___BudgetSpend: ...
    @property
    def time_period(self) -> global___BudgetTimePeriod: ...
    time_unit: builtins.str
    @property
    def planned_budget_limits(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    @property
    def cost_filters(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    budget_name: builtins.str
    @property
    def cost_types(self) -> global___BudgetCostTypes: ...
    budget_type: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        budget_limit: global___BudgetSpend | None = ...,
        time_period: global___BudgetTimePeriod | None = ...,
        time_unit: builtins.str = ...,
        planned_budget_limits: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        cost_filters: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        budget_name: builtins.str = ...,
        cost_types: global___BudgetCostTypes | None = ...,
        budget_type: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["budget_limit", b"budget_limit", "cost_types", b"cost_types", "resource_info", b"resource_info", "time_period", b"time_period"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["budget_limit", b"budget_limit", "budget_name", b"budget_name", "budget_type", b"budget_type", "cost_filters", b"cost_filters", "cost_types", b"cost_types", "planned_budget_limits", b"planned_budget_limits", "resource_info", b"resource_info", "time_period", b"time_period", "time_unit", b"time_unit"]) -> None: ...

global___BudgetBudgetData = BudgetBudgetData

@typing_extensions.final
class Budget(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    NOTIFICATIONS_WITH_SUBSCRIBERS_FIELD_NUMBER: builtins.int
    BUDGET_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def notifications_with_subscribers(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___BudgetNotificationWithSubscribers]: ...
    @property
    def budget(self) -> global___BudgetBudgetData: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        notifications_with_subscribers: collections.abc.Iterable[global___BudgetNotificationWithSubscribers] | None = ...,
        budget: global___BudgetBudgetData | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["budget", b"budget", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["budget", b"budget", "notifications_with_subscribers", b"notifications_with_subscribers", "resource_info", b"resource_info"]) -> None: ...

global___Budget = Budget

@typing_extensions.final
class Budgets(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    BUDGET_FIELD_NUMBER: builtins.int
    @property
    def budget(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Budget]: ...
    def __init__(
        self,
        *,
        budget: collections.abc.Iterable[global___Budget] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["budget", b"budget"]) -> None: ...

global___Budgets = Budgets
