import datetime

from google.api import annotations_pb2 as _annotations_pb2
from google.api import field_behavior_pb2 as _field_behavior_pb2
from google.protobuf import empty_pb2 as _empty_pb2
from google.protobuf import timestamp_pb2 as _timestamp_pb2
from tars.auth.v1 import auth_options_pb2 as _auth_options_pb2
from tars.cli.v1 import cli_pb2 as _cli_pb2
from tars.docs.v1 import docs_pb2 as _docs_pb2
from google.protobuf.internal import containers as _containers
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from collections.abc import Iterable as _Iterable, Mapping as _Mapping
from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union

DESCRIPTOR: _descriptor.FileDescriptor

class TelemetryConfig(_message.Message):
    __slots__ = ("id", "user_id", "telemetry_type", "sink_url", "protocol", "auth_type", "auth_value", "api_key_header", "enabled", "last_checked_at", "status", "created_at", "updated_at")
    ID_FIELD_NUMBER: _ClassVar[int]
    USER_ID_FIELD_NUMBER: _ClassVar[int]
    TELEMETRY_TYPE_FIELD_NUMBER: _ClassVar[int]
    SINK_URL_FIELD_NUMBER: _ClassVar[int]
    PROTOCOL_FIELD_NUMBER: _ClassVar[int]
    AUTH_TYPE_FIELD_NUMBER: _ClassVar[int]
    AUTH_VALUE_FIELD_NUMBER: _ClassVar[int]
    API_KEY_HEADER_FIELD_NUMBER: _ClassVar[int]
    ENABLED_FIELD_NUMBER: _ClassVar[int]
    LAST_CHECKED_AT_FIELD_NUMBER: _ClassVar[int]
    STATUS_FIELD_NUMBER: _ClassVar[int]
    CREATED_AT_FIELD_NUMBER: _ClassVar[int]
    UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
    id: str
    user_id: str
    telemetry_type: str
    sink_url: str
    protocol: str
    auth_type: str
    auth_value: str
    api_key_header: str
    enabled: bool
    last_checked_at: _timestamp_pb2.Timestamp
    status: str
    created_at: _timestamp_pb2.Timestamp
    updated_at: _timestamp_pb2.Timestamp
    def __init__(self, id: _Optional[str] = ..., user_id: _Optional[str] = ..., telemetry_type: _Optional[str] = ..., sink_url: _Optional[str] = ..., protocol: _Optional[str] = ..., auth_type: _Optional[str] = ..., auth_value: _Optional[str] = ..., api_key_header: _Optional[str] = ..., enabled: _Optional[bool] = ..., last_checked_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., status: _Optional[str] = ..., created_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...

class CreateTelemetryConfigRequest(_message.Message):
    __slots__ = ("customer_id", "project_id", "telemetry_type", "endpoint", "protocol", "auth_type", "auth_value", "api_key_header", "headers", "enabled")
    class HeadersEntry(_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: ...
    CUSTOMER_ID_FIELD_NUMBER: _ClassVar[int]
    PROJECT_ID_FIELD_NUMBER: _ClassVar[int]
    TELEMETRY_TYPE_FIELD_NUMBER: _ClassVar[int]
    ENDPOINT_FIELD_NUMBER: _ClassVar[int]
    PROTOCOL_FIELD_NUMBER: _ClassVar[int]
    AUTH_TYPE_FIELD_NUMBER: _ClassVar[int]
    AUTH_VALUE_FIELD_NUMBER: _ClassVar[int]
    API_KEY_HEADER_FIELD_NUMBER: _ClassVar[int]
    HEADERS_FIELD_NUMBER: _ClassVar[int]
    ENABLED_FIELD_NUMBER: _ClassVar[int]
    customer_id: str
    project_id: str
    telemetry_type: str
    endpoint: str
    protocol: str
    auth_type: str
    auth_value: str
    api_key_header: str
    headers: _containers.ScalarMap[str, str]
    enabled: bool
    def __init__(self, customer_id: _Optional[str] = ..., project_id: _Optional[str] = ..., telemetry_type: _Optional[str] = ..., endpoint: _Optional[str] = ..., protocol: _Optional[str] = ..., auth_type: _Optional[str] = ..., auth_value: _Optional[str] = ..., api_key_header: _Optional[str] = ..., headers: _Optional[_Mapping[str, str]] = ..., enabled: _Optional[bool] = ...) -> None: ...

class ListTelemetryConfigsRequest(_message.Message):
    __slots__ = ("customer_id", "project_id", "telemetry_type", "enabled")
    CUSTOMER_ID_FIELD_NUMBER: _ClassVar[int]
    PROJECT_ID_FIELD_NUMBER: _ClassVar[int]
    TELEMETRY_TYPE_FIELD_NUMBER: _ClassVar[int]
    ENABLED_FIELD_NUMBER: _ClassVar[int]
    customer_id: str
    project_id: str
    telemetry_type: str
    enabled: str
    def __init__(self, customer_id: _Optional[str] = ..., project_id: _Optional[str] = ..., telemetry_type: _Optional[str] = ..., enabled: _Optional[str] = ...) -> None: ...

class ListTelemetryConfigsResponse(_message.Message):
    __slots__ = ("configs", "total")
    CONFIGS_FIELD_NUMBER: _ClassVar[int]
    TOTAL_FIELD_NUMBER: _ClassVar[int]
    configs: _containers.RepeatedCompositeFieldContainer[TelemetryConfig]
    total: int
    def __init__(self, configs: _Optional[_Iterable[_Union[TelemetryConfig, _Mapping]]] = ..., total: _Optional[int] = ...) -> None: ...

class GetTelemetryConfigRequest(_message.Message):
    __slots__ = ("customer_id", "project_id", "config_id")
    CUSTOMER_ID_FIELD_NUMBER: _ClassVar[int]
    PROJECT_ID_FIELD_NUMBER: _ClassVar[int]
    CONFIG_ID_FIELD_NUMBER: _ClassVar[int]
    customer_id: str
    project_id: str
    config_id: str
    def __init__(self, customer_id: _Optional[str] = ..., project_id: _Optional[str] = ..., config_id: _Optional[str] = ...) -> None: ...

class UpdateTelemetryConfigRequest(_message.Message):
    __slots__ = ("customer_id", "project_id", "config_id", "endpoint", "protocol", "auth_type", "auth_value", "api_key_header", "enabled", "status")
    CUSTOMER_ID_FIELD_NUMBER: _ClassVar[int]
    PROJECT_ID_FIELD_NUMBER: _ClassVar[int]
    CONFIG_ID_FIELD_NUMBER: _ClassVar[int]
    ENDPOINT_FIELD_NUMBER: _ClassVar[int]
    PROTOCOL_FIELD_NUMBER: _ClassVar[int]
    AUTH_TYPE_FIELD_NUMBER: _ClassVar[int]
    AUTH_VALUE_FIELD_NUMBER: _ClassVar[int]
    API_KEY_HEADER_FIELD_NUMBER: _ClassVar[int]
    ENABLED_FIELD_NUMBER: _ClassVar[int]
    STATUS_FIELD_NUMBER: _ClassVar[int]
    customer_id: str
    project_id: str
    config_id: str
    endpoint: str
    protocol: str
    auth_type: str
    auth_value: str
    api_key_header: str
    enabled: str
    status: str
    def __init__(self, customer_id: _Optional[str] = ..., project_id: _Optional[str] = ..., config_id: _Optional[str] = ..., endpoint: _Optional[str] = ..., protocol: _Optional[str] = ..., auth_type: _Optional[str] = ..., auth_value: _Optional[str] = ..., api_key_header: _Optional[str] = ..., enabled: _Optional[str] = ..., status: _Optional[str] = ...) -> None: ...

class DeleteTelemetryConfigRequest(_message.Message):
    __slots__ = ("customer_id", "project_id", "config_id")
    CUSTOMER_ID_FIELD_NUMBER: _ClassVar[int]
    PROJECT_ID_FIELD_NUMBER: _ClassVar[int]
    CONFIG_ID_FIELD_NUMBER: _ClassVar[int]
    customer_id: str
    project_id: str
    config_id: str
    def __init__(self, customer_id: _Optional[str] = ..., project_id: _Optional[str] = ..., config_id: _Optional[str] = ...) -> None: ...

class SetProjectTelemetryConfigRequest(_message.Message):
    __slots__ = ("customer_id", "project_id", "telemetry_type", "endpoint", "protocol", "auth_type", "auth_value", "api_key_header", "enabled")
    CUSTOMER_ID_FIELD_NUMBER: _ClassVar[int]
    PROJECT_ID_FIELD_NUMBER: _ClassVar[int]
    TELEMETRY_TYPE_FIELD_NUMBER: _ClassVar[int]
    ENDPOINT_FIELD_NUMBER: _ClassVar[int]
    PROTOCOL_FIELD_NUMBER: _ClassVar[int]
    AUTH_TYPE_FIELD_NUMBER: _ClassVar[int]
    AUTH_VALUE_FIELD_NUMBER: _ClassVar[int]
    API_KEY_HEADER_FIELD_NUMBER: _ClassVar[int]
    ENABLED_FIELD_NUMBER: _ClassVar[int]
    customer_id: str
    project_id: str
    telemetry_type: str
    endpoint: str
    protocol: str
    auth_type: str
    auth_value: str
    api_key_header: str
    enabled: bool
    def __init__(self, customer_id: _Optional[str] = ..., project_id: _Optional[str] = ..., telemetry_type: _Optional[str] = ..., endpoint: _Optional[str] = ..., protocol: _Optional[str] = ..., auth_type: _Optional[str] = ..., auth_value: _Optional[str] = ..., api_key_header: _Optional[str] = ..., enabled: _Optional[bool] = ...) -> None: ...

class GetProjectTelemetryConfigRequest(_message.Message):
    __slots__ = ("customer_id", "project_id", "telemetry_type")
    CUSTOMER_ID_FIELD_NUMBER: _ClassVar[int]
    PROJECT_ID_FIELD_NUMBER: _ClassVar[int]
    TELEMETRY_TYPE_FIELD_NUMBER: _ClassVar[int]
    customer_id: str
    project_id: str
    telemetry_type: str
    def __init__(self, customer_id: _Optional[str] = ..., project_id: _Optional[str] = ..., telemetry_type: _Optional[str] = ...) -> None: ...
