"""
@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.internal.enum_type_wrapper
import google.protobuf.message
import google.protobuf.timestamp_pb2
import sys
import typing
import yandex.cloud.quotamanager.v1.resource_pb2

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

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

    class _Status:
        ValueType = typing.NewType("ValueType", builtins.int)
        V: typing_extensions.TypeAlias = ValueType

    class _StatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[QuotaRequest._Status.ValueType], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        STATUS_UNSPECIFIED: QuotaRequest._Status.ValueType  # 0
        PENDING: QuotaRequest._Status.ValueType  # 1
        """The request is pending and is waiting to be processed."""
        PROCESSING: QuotaRequest._Status.ValueType  # 2
        """The request is processing."""
        PROCESSED: QuotaRequest._Status.ValueType  # 3
        """The request was processed."""
        CANCELED: QuotaRequest._Status.ValueType  # 4
        """The request was canceled."""
        DELETING: QuotaRequest._Status.ValueType  # 5
        """The request is deleting."""

    class Status(_Status, metaclass=_StatusEnumTypeWrapper): ...
    STATUS_UNSPECIFIED: QuotaRequest.Status.ValueType  # 0
    PENDING: QuotaRequest.Status.ValueType  # 1
    """The request is pending and is waiting to be processed."""
    PROCESSING: QuotaRequest.Status.ValueType  # 2
    """The request is processing."""
    PROCESSED: QuotaRequest.Status.ValueType  # 3
    """The request was processed."""
    CANCELED: QuotaRequest.Status.ValueType  # 4
    """The request was canceled."""
    DELETING: QuotaRequest.Status.ValueType  # 5
    """The request is deleting."""

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

        class _Status:
            ValueType = typing.NewType("ValueType", builtins.int)
            V: typing_extensions.TypeAlias = ValueType

        class _StatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[QuotaRequest.QuotaLimit._Status.ValueType], builtins.type):
            DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
            STATUS_UNSPECIFIED: QuotaRequest.QuotaLimit._Status.ValueType  # 0
            PENDING: QuotaRequest.QuotaLimit._Status.ValueType  # 1
            """The request is pending and is waiting to be processed."""
            PROCESSING: QuotaRequest.QuotaLimit._Status.ValueType  # 2
            """The request is processing."""
            PARTIAL_APPROVED: QuotaRequest.QuotaLimit._Status.ValueType  # 3
            """The request was partially approved."""
            APPROVED: QuotaRequest.QuotaLimit._Status.ValueType  # 4
            """The request was approved."""
            REJECTED: QuotaRequest.QuotaLimit._Status.ValueType  # 5
            """The request was rejected."""
            CANCELED: QuotaRequest.QuotaLimit._Status.ValueType  # 6
            """The request was canceled."""

        class Status(_Status, metaclass=_StatusEnumTypeWrapper): ...
        STATUS_UNSPECIFIED: QuotaRequest.QuotaLimit.Status.ValueType  # 0
        PENDING: QuotaRequest.QuotaLimit.Status.ValueType  # 1
        """The request is pending and is waiting to be processed."""
        PROCESSING: QuotaRequest.QuotaLimit.Status.ValueType  # 2
        """The request is processing."""
        PARTIAL_APPROVED: QuotaRequest.QuotaLimit.Status.ValueType  # 3
        """The request was partially approved."""
        APPROVED: QuotaRequest.QuotaLimit.Status.ValueType  # 4
        """The request was approved."""
        REJECTED: QuotaRequest.QuotaLimit.Status.ValueType  # 5
        """The request was rejected."""
        CANCELED: QuotaRequest.QuotaLimit.Status.ValueType  # 6
        """The request was canceled."""

        QUOTA_ID_FIELD_NUMBER: builtins.int
        DESIRED_LIMIT_FIELD_NUMBER: builtins.int
        APPROVED_LIMIT_FIELD_NUMBER: builtins.int
        UNIT_FIELD_NUMBER: builtins.int
        STATUS_FIELD_NUMBER: builtins.int
        MESSAGE_FIELD_NUMBER: builtins.int
        MODIFIED_BY_FIELD_NUMBER: builtins.int
        quota_id: builtins.str
        """ID of the quota."""
        desired_limit: builtins.float
        """Desired limit."""
        approved_limit: builtins.float
        """Approved limit."""
        unit: builtins.str
        """Unit of quota."""
        status: global___QuotaRequest.QuotaLimit.Status.ValueType
        """Status of current quota limit."""
        message: builtins.str
        modified_by: builtins.str
        """ID of the subject who modified quota limit."""
        def __init__(
            self,
            *,
            quota_id: builtins.str = ...,
            desired_limit: builtins.float = ...,
            approved_limit: builtins.float = ...,
            unit: builtins.str = ...,
            status: global___QuotaRequest.QuotaLimit.Status.ValueType = ...,
            message: builtins.str = ...,
            modified_by: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["approved_limit", b"approved_limit", "desired_limit", b"desired_limit", "message", b"message", "modified_by", b"modified_by", "quota_id", b"quota_id", "status", b"status", "unit", b"unit"]) -> None: ...

    ID_FIELD_NUMBER: builtins.int
    RESOURCE_FIELD_NUMBER: builtins.int
    CREATED_AT_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    QUOTA_LIMITS_FIELD_NUMBER: builtins.int
    CREATED_BY_FIELD_NUMBER: builtins.int
    id: builtins.str
    """ID of the quota request."""
    status: global___QuotaRequest.Status.ValueType
    """Status of current quota request."""
    created_by: builtins.str
    """ID of the subject who created quota request."""
    @property
    def resource(self) -> yandex.cloud.quotamanager.v1.resource_pb2.Resource: ...
    @property
    def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Creation timestamp."""

    @property
    def quota_limits(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___QuotaRequest.QuotaLimit]:
        """Quota limits"""

    def __init__(
        self,
        *,
        id: builtins.str = ...,
        resource: yandex.cloud.quotamanager.v1.resource_pb2.Resource | None = ...,
        created_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        status: global___QuotaRequest.Status.ValueType = ...,
        quota_limits: collections.abc.Iterable[global___QuotaRequest.QuotaLimit] | None = ...,
        created_by: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["created_at", b"created_at", "resource", b"resource"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["created_at", b"created_at", "created_by", b"created_by", "id", b"id", "quota_limits", b"quota_limits", "resource", b"resource", "status", b"status"]) -> None: ...

global___QuotaRequest = QuotaRequest
