from google.api import field_behavior_pb2 as _field_behavior_pb2
from google.protobuf.internal import containers as _containers
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from collections.abc import Mapping as _Mapping
from typing import ClassVar as _ClassVar, Optional as _Optional

DESCRIPTOR: _descriptor.FileDescriptor

class IdPrefix(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
    __slots__ = ()
    ID_PREFIX_UNSPECIFIED: _ClassVar[IdPrefix]
    ID_PREFIX_CUSTOMER: _ClassVar[IdPrefix]
    ID_PREFIX_PROJECT: _ClassVar[IdPrefix]
    ID_PREFIX_DATAPLANE: _ClassVar[IdPrefix]
    ID_PREFIX_API_KEY: _ClassVar[IdPrefix]
    ID_PREFIX_OPERATION: _ClassVar[IdPrefix]
    ID_PREFIX_IDENTITY: _ClassVar[IdPrefix]
    ID_PREFIX_BUDGET: _ClassVar[IdPrefix]
    ID_PREFIX_BYOK_KEY: _ClassVar[IdPrefix]
    ID_PREFIX_GATEWAY: _ClassVar[IdPrefix]
    ID_PREFIX_PROJECT_GATEWAY_MAP: _ClassVar[IdPrefix]
    ID_PREFIX_DATAPLANE_CREDENTIAL: _ClassVar[IdPrefix]
    ID_PREFIX_PROVIDER: _ClassVar[IdPrefix]
    ID_PREFIX_MODEL: _ClassVar[IdPrefix]
    ID_PREFIX_BILLING_PLAN: _ClassVar[IdPrefix]
    ID_PREFIX_USAGE_RECORD: _ClassVar[IdPrefix]
    ID_PREFIX_SESSION: _ClassVar[IdPrefix]
    ID_PREFIX_WEBHOOK: _ClassVar[IdPrefix]
ID_PREFIX_UNSPECIFIED: IdPrefix
ID_PREFIX_CUSTOMER: IdPrefix
ID_PREFIX_PROJECT: IdPrefix
ID_PREFIX_DATAPLANE: IdPrefix
ID_PREFIX_API_KEY: IdPrefix
ID_PREFIX_OPERATION: IdPrefix
ID_PREFIX_IDENTITY: IdPrefix
ID_PREFIX_BUDGET: IdPrefix
ID_PREFIX_BYOK_KEY: IdPrefix
ID_PREFIX_GATEWAY: IdPrefix
ID_PREFIX_PROJECT_GATEWAY_MAP: IdPrefix
ID_PREFIX_DATAPLANE_CREDENTIAL: IdPrefix
ID_PREFIX_PROVIDER: IdPrefix
ID_PREFIX_MODEL: IdPrefix
ID_PREFIX_BILLING_PLAN: IdPrefix
ID_PREFIX_USAGE_RECORD: IdPrefix
ID_PREFIX_SESSION: IdPrefix
ID_PREFIX_WEBHOOK: IdPrefix

class PageRequest(_message.Message):
    __slots__ = ("page_size", "page_token", "filter", "order_by")
    PAGE_SIZE_FIELD_NUMBER: _ClassVar[int]
    PAGE_TOKEN_FIELD_NUMBER: _ClassVar[int]
    FILTER_FIELD_NUMBER: _ClassVar[int]
    ORDER_BY_FIELD_NUMBER: _ClassVar[int]
    page_size: int
    page_token: str
    filter: str
    order_by: str
    def __init__(self, page_size: _Optional[int] = ..., page_token: _Optional[str] = ..., filter: _Optional[str] = ..., order_by: _Optional[str] = ...) -> None: ...

class PageResponse(_message.Message):
    __slots__ = ("next_page_token",)
    NEXT_PAGE_TOKEN_FIELD_NUMBER: _ClassVar[int]
    next_page_token: str
    def __init__(self, next_page_token: _Optional[str] = ...) -> None: ...

class IdempotencyKey(_message.Message):
    __slots__ = ("value",)
    VALUE_FIELD_NUMBER: _ClassVar[int]
    value: str
    def __init__(self, value: _Optional[str] = ...) -> None: ...

class Problem(_message.Message):
    __slots__ = ("type", "title", "status", "detail", "instance", "reason", "domain", "metadata", "trace_id")
    class MetadataEntry(_message.Message):
        __slots__ = ("key", "value")
        KEY_FIELD_NUMBER: _ClassVar[int]
        VALUE_FIELD_NUMBER: _ClassVar[int]
        key: str
        value: str
        def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
    TYPE_FIELD_NUMBER: _ClassVar[int]
    TITLE_FIELD_NUMBER: _ClassVar[int]
    STATUS_FIELD_NUMBER: _ClassVar[int]
    DETAIL_FIELD_NUMBER: _ClassVar[int]
    INSTANCE_FIELD_NUMBER: _ClassVar[int]
    REASON_FIELD_NUMBER: _ClassVar[int]
    DOMAIN_FIELD_NUMBER: _ClassVar[int]
    METADATA_FIELD_NUMBER: _ClassVar[int]
    TRACE_ID_FIELD_NUMBER: _ClassVar[int]
    type: str
    title: str
    status: int
    detail: str
    instance: str
    reason: str
    domain: str
    metadata: _containers.ScalarMap[str, str]
    trace_id: str
    def __init__(self, type: _Optional[str] = ..., title: _Optional[str] = ..., status: _Optional[int] = ..., detail: _Optional[str] = ..., instance: _Optional[str] = ..., reason: _Optional[str] = ..., domain: _Optional[str] = ..., metadata: _Optional[_Mapping[str, str]] = ..., trace_id: _Optional[str] = ...) -> None: ...
