"""
@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 typing

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class QuotaMetric(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    LIMIT_FIELD_NUMBER: builtins.int
    USAGE_FIELD_NUMBER: builtins.int
    name: builtins.str
    """formatted as <domain>.<metric>.<unit>, e.g. mdb.hdd.size"""
    limit: builtins.int
    usage: builtins.float
    def __init__(
        self,
        *,
        name: builtins.str = ...,
        limit: builtins.int = ...,
        usage: builtins.float = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["limit", b"limit", "name", b"name", "usage", b"usage"]) -> None: ...

global___QuotaMetric = QuotaMetric

@typing.final
class MetricLimit(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    LIMIT_FIELD_NUMBER: builtins.int
    name: builtins.str
    limit: builtins.int
    def __init__(
        self,
        *,
        name: builtins.str = ...,
        limit: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["limit", b"limit", "name", b"name"]) -> None: ...

global___MetricLimit = MetricLimit

@typing.final
class QuotaFailure(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class Violation(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        METRIC_FIELD_NUMBER: builtins.int
        REQUIRED_FIELD_NUMBER: builtins.int
        required: builtins.int
        """new value for the MetricLimit.limit, so it is: old limit + delta"""
        @property
        def metric(self) -> global___QuotaMetric: ...
        def __init__(
            self,
            *,
            metric: global___QuotaMetric | None = ...,
            required: builtins.int = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["metric", b"metric"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["metric", b"metric", "required", b"required"]) -> None: ...

    VIOLATIONS_FIELD_NUMBER: builtins.int
    @property
    def violations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___QuotaFailure.Violation]: ...
    def __init__(
        self,
        *,
        violations: collections.abc.Iterable[global___QuotaFailure.Violation] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["violations", b"violations"]) -> None: ...

global___QuotaFailure = QuotaFailure
