"""
@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 google.protobuf.timestamp_pb2
import insightproto.proto.common.v1.common_pb2
import insightproto.proto.jobs.v1.job_service_pb2
import sys
import typing

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

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

    ID_FIELD_NUMBER: builtins.int
    ORG_FIELD_NUMBER: builtins.int
    IDEMPOTENCY_KEY_FIELD_NUMBER: builtins.int
    AETHER_JOB_FIELD_NUMBER: builtins.int
    INSIGHT_JOB_FIELD_NUMBER: builtins.int
    SIMULATOR_JOB_FIELD_NUMBER: builtins.int
    KNOWLEDGE_JOB_FIELD_NUMBER: builtins.int
    CHAT_JOB_FIELD_NUMBER: builtins.int
    id: builtins.str
    """the id of the job"""
    idempotency_key: builtins.str
    """idempotency key to prevent duplicate job processing
    e.g. repo + mr id to prevent aether MR jobs duplication
    """
    @property
    def org(self) -> insightproto.proto.common.v1.common_pb2.Organisation:
        """the organisation the job is for"""

    @property
    def aether_job(self) -> Global___AetherJob: ...
    @property
    def insight_job(self) -> Global___InsightJob: ...
    @property
    def simulator_job(self) -> Global___SimulatorJob: ...
    @property
    def knowledge_job(self) -> Global___KnowledgeJob: ...
    @property
    def chat_job(self) -> Global___ChatJob: ...
    def __init__(
        self,
        *,
        id: builtins.str = ...,
        org: insightproto.proto.common.v1.common_pb2.Organisation | None = ...,
        idempotency_key: builtins.str = ...,
        aether_job: Global___AetherJob | None = ...,
        insight_job: Global___InsightJob | None = ...,
        simulator_job: Global___SimulatorJob | None = ...,
        knowledge_job: Global___KnowledgeJob | None = ...,
        chat_job: Global___ChatJob | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["aether_job", b"aether_job", "chat_job", b"chat_job", "insight_job", b"insight_job", "job", b"job", "knowledge_job", b"knowledge_job", "org", b"org", "simulator_job", b"simulator_job"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["aether_job", b"aether_job", "chat_job", b"chat_job", "id", b"id", "idempotency_key", b"idempotency_key", "insight_job", b"insight_job", "job", b"job", "knowledge_job", b"knowledge_job", "org", b"org", "simulator_job", b"simulator_job"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["job", b"job"]) -> typing.Literal["aether_job", "insight_job", "simulator_job", "knowledge_job", "chat_job"] | None: ...

Global___JobMessage: typing_extensions.TypeAlias = JobMessage

@typing.final
class SimulatorJob(google.protobuf.message.Message):
    """SimulatorJob describes a job for the simulator"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    AGENT_FIELD_NUMBER: builtins.int
    INPUTS_FIELD_NUMBER: builtins.int
    INSIGHT_AGENT_FIELD_NUMBER: builtins.int
    TEST_SUITE_FIELD_NUMBER: builtins.int
    ERROR_FIELD_NUMBER: builtins.int
    id: builtins.str
    """the id of the job"""
    agent: builtins.str
    """the name of the agent to simulate (e.g. "insight-agent")"""
    test_suite: builtins.str
    """test suite file path for the --inputs flag (e.g. "test_cases/insight-agent/log-agent/opensearch_inputs.yaml")"""
    @property
    def inputs(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """DEPRECATED: the inputs to pass (use structured fields below instead)"""

    @property
    def insight_agent(self) -> Global___InsightAgentConfig:
        """Agent-specific configuration"""

    @property
    def error(self) -> insightproto.proto.jobs.v1.job_service_pb2.Error:
        """error that happened from this config"""

    def __init__(
        self,
        *,
        id: builtins.str = ...,
        agent: builtins.str = ...,
        inputs: collections.abc.Iterable[builtins.str] | None = ...,
        insight_agent: Global___InsightAgentConfig | None = ...,
        test_suite: builtins.str | None = ...,
        error: insightproto.proto.jobs.v1.job_service_pb2.Error | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_error", b"_error", "_insight_agent", b"_insight_agent", "_test_suite", b"_test_suite", "error", b"error", "insight_agent", b"insight_agent", "test_suite", b"test_suite"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_error", b"_error", "_insight_agent", b"_insight_agent", "_test_suite", b"_test_suite", "agent", b"agent", "error", b"error", "id", b"id", "inputs", b"inputs", "insight_agent", b"insight_agent", "test_suite", b"test_suite"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_error", b"_error"]) -> typing.Literal["error"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_insight_agent", b"_insight_agent"]) -> typing.Literal["insight_agent"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_test_suite", b"_test_suite"]) -> typing.Literal["test_suite"] | None: ...

Global___SimulatorJob: typing_extensions.TypeAlias = SimulatorJob

@typing.final
class InsightAgentConfig(google.protobuf.message.Message):
    """Configuration for insight-agent commands"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    INVESTIGATE_FIELD_NUMBER: builtins.int
    RUN_AGENT_FIELD_NUMBER: builtins.int
    @property
    def investigate(self) -> Global___InvestigateCommand:
        """Command-specific configuration"""

    @property
    def run_agent(self) -> Global___RunAgentCommand: ...
    def __init__(
        self,
        *,
        investigate: Global___InvestigateCommand | None = ...,
        run_agent: Global___RunAgentCommand | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_investigate", b"_investigate", "_run_agent", b"_run_agent", "investigate", b"investigate", "run_agent", b"run_agent"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_investigate", b"_investigate", "_run_agent", b"_run_agent", "investigate", b"investigate", "run_agent", b"run_agent"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_investigate", b"_investigate"]) -> typing.Literal["investigate"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_run_agent", b"_run_agent"]) -> typing.Literal["run_agent"] | None: ...

Global___InsightAgentConfig: typing_extensions.TypeAlias = InsightAgentConfig

@typing.final
class InvestigateCommand(google.protobuf.message.Message):
    """Configuration for "investigate" command"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

Global___InvestigateCommand: typing_extensions.TypeAlias = InvestigateCommand

@typing.final
class RunAgentCommand(google.protobuf.message.Message):
    """Configuration for "run-agent" command"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    AGENT_CLASS_FIELD_NUMBER: builtins.int
    SERVER_NAME_FIELD_NUMBER: builtins.int
    CATEGORY_FIELD_NUMBER: builtins.int
    QUERY_FIELD_NUMBER: builtins.int
    agent_class: builtins.str
    server_name: builtins.str
    category: builtins.str
    query: builtins.str
    def __init__(
        self,
        *,
        agent_class: builtins.str = ...,
        server_name: builtins.str = ...,
        category: builtins.str = ...,
        query: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["agent_class", b"agent_class", "category", b"category", "query", b"query", "server_name", b"server_name"]) -> None: ...

Global___RunAgentCommand: typing_extensions.TypeAlias = RunAgentCommand

@typing.final
class ChatJob(google.protobuf.message.Message):
    """ChatJob describes a job for chat/conversation operations"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CONVERSATION_ID_FIELD_NUMBER: builtins.int
    RESPONSE_ID_FIELD_NUMBER: builtins.int
    HISTORY_FIELD_NUMBER: builtins.int
    CURRENT_MESSAGE_FIELD_NUMBER: builtins.int
    CONTEXT_FIELD_NUMBER: builtins.int
    conversation_id: builtins.str
    """unique conversation/session identifier"""
    response_id: builtins.str
    """the response id for tracking this specific response"""
    @property
    def history(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___ChatMessage]:
        """conversation history (previous messages)"""

    @property
    def current_message(self) -> Global___ChatMessage:
        """the current message being processed"""

    @property
    def context(self) -> Global___ChatContext:
        """context linking to investigations/graph nodes"""

    def __init__(
        self,
        *,
        conversation_id: builtins.str = ...,
        response_id: builtins.str = ...,
        history: collections.abc.Iterable[Global___ChatMessage] | None = ...,
        current_message: Global___ChatMessage | None = ...,
        context: Global___ChatContext | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_context", b"_context", "context", b"context", "current_message", b"current_message"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_context", b"_context", "context", b"context", "conversation_id", b"conversation_id", "current_message", b"current_message", "history", b"history", "response_id", b"response_id"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["_context", b"_context"]) -> typing.Literal["context"] | None: ...

Global___ChatJob: typing_extensions.TypeAlias = ChatJob

@typing.final
class ChatMessage(google.protobuf.message.Message):
    """ChatMessage represents a single message in a chat conversation"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ROLE_FIELD_NUMBER: builtins.int
    CONTENT_FIELD_NUMBER: builtins.int
    TIMESTAMP_FIELD_NUMBER: builtins.int
    role: builtins.str
    """the role of the message sender (e.g. user, assistant, system)"""
    content: builtins.str
    """the message content"""
    @property
    def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """timestamp when message was sent"""

    def __init__(
        self,
        *,
        role: builtins.str = ...,
        content: builtins.str = ...,
        timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["timestamp", b"timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["content", b"content", "role", b"role", "timestamp", b"timestamp"]) -> None: ...

Global___ChatMessage: typing_extensions.TypeAlias = ChatMessage

@typing.final
class ChatContext(google.protobuf.message.Message):
    """ChatContext provides links to related system entities"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    INVESTIGATION_ID_FIELD_NUMBER: builtins.int
    NODE_IDS_FIELD_NUMBER: builtins.int
    investigation_id: builtins.str
    """linked investigation id if this chat is part of an investigation"""
    @property
    def node_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """linked graph node ids for context"""

    def __init__(
        self,
        *,
        investigation_id: builtins.str | None = ...,
        node_ids: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_investigation_id", b"_investigation_id", "investigation_id", b"investigation_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_investigation_id", b"_investigation_id", "investigation_id", b"investigation_id", "node_ids", b"node_ids"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["_investigation_id", b"_investigation_id"]) -> typing.Literal["investigation_id"] | None: ...

Global___ChatContext: typing_extensions.TypeAlias = ChatContext

@typing.final
class KnowledgeJob(google.protobuf.message.Message):
    """This represents the input to the knowledge job"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    SOURCE_FIELD_NUMBER: builtins.int
    PROJECT_FIELD_NUMBER: builtins.int
    AUTHOR_FIELD_NUMBER: builtins.int
    KUBERNETES_FIELD_NUMBER: builtins.int
    ISSUE_FIELD_NUMBER: builtins.int
    TRACE_FIELD_NUMBER: builtins.int
    id: builtins.str
    """the id for tracking"""
    @property
    def source(self) -> insightproto.proto.common.v1.common_pb2.Source:
        """the integration source this is from (e.g. grafana)"""

    @property
    def project(self) -> Global___ProviderProject:
        """if we are a git job then we will contain the project info here"""

    @property
    def author(self) -> Global___Author:
        """user who performed the activity - a null or missing user indicates 'system'"""

    @property
    def kubernetes(self) -> Global___KubernetesConfig:
        """this is the config used for a kubernetes job"""

    @property
    def issue(self) -> Global___IssueConfig:
        """this is the config used for an issue job"""

    @property
    def trace(self) -> Global___TraceConfig:
        """this is the config used for a trace job"""

    def __init__(
        self,
        *,
        id: builtins.str = ...,
        source: insightproto.proto.common.v1.common_pb2.Source | None = ...,
        project: Global___ProviderProject | None = ...,
        author: Global___Author | None = ...,
        kubernetes: Global___KubernetesConfig | None = ...,
        issue: Global___IssueConfig | None = ...,
        trace: Global___TraceConfig | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_author", b"_author", "_issue", b"_issue", "_kubernetes", b"_kubernetes", "_project", b"_project", "_trace", b"_trace", "author", b"author", "issue", b"issue", "kubernetes", b"kubernetes", "project", b"project", "source", b"source", "trace", b"trace"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_author", b"_author", "_issue", b"_issue", "_kubernetes", b"_kubernetes", "_project", b"_project", "_trace", b"_trace", "author", b"author", "id", b"id", "issue", b"issue", "kubernetes", b"kubernetes", "project", b"project", "source", b"source", "trace", b"trace"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_author", b"_author"]) -> typing.Literal["author"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_issue", b"_issue"]) -> typing.Literal["issue"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_kubernetes", b"_kubernetes"]) -> typing.Literal["kubernetes"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_project", b"_project"]) -> typing.Literal["project"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_trace", b"_trace"]) -> typing.Literal["trace"] | None: ...

Global___KnowledgeJob: typing_extensions.TypeAlias = KnowledgeJob

@typing.final
class TraceConfig(google.protobuf.message.Message):
    """This is the config for a trace job (e.g Datadog, Grafana)"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SERVICE_FILTER_FIELD_NUMBER: builtins.int
    @property
    def service_filter(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """the service names to include"""

    def __init__(
        self,
        *,
        service_filter: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["service_filter", b"service_filter"]) -> None: ...

Global___TraceConfig: typing_extensions.TypeAlias = TraceConfig

@typing.final
class KubernetesConfig(google.protobuf.message.Message):
    """This is the config for a kubernetes job (e.g. AWS EKS)"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAMESPACE_FILTER_FIELD_NUMBER: builtins.int
    INCLUDE_SYSTEM_NAMESPACES_FIELD_NUMBER: builtins.int
    CLUSTER_NAME_FIELD_NUMBER: builtins.int
    CLUSTER_CONTEXT_FIELD_NUMBER: builtins.int
    include_system_namespaces: builtins.bool
    """should we process system namespaces"""
    cluster_name: builtins.str
    """the display name of the cluster"""
    cluster_context: builtins.str
    """the context of the cluster to use to when connecting"""
    @property
    def namespace_filter(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """the namespaces to include"""

    def __init__(
        self,
        *,
        namespace_filter: collections.abc.Iterable[builtins.str] | None = ...,
        include_system_namespaces: builtins.bool = ...,
        cluster_name: builtins.str = ...,
        cluster_context: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["cluster_context", b"cluster_context", "cluster_name", b"cluster_name", "include_system_namespaces", b"include_system_namespaces", "namespace_filter", b"namespace_filter"]) -> None: ...

Global___KubernetesConfig: typing_extensions.TypeAlias = KubernetesConfig

@typing.final
class IssueConfig(google.protobuf.message.Message):
    """This is the config for an issue job"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    id: builtins.str
    """the specific issue to process - if not set process all"""
    def __init__(
        self,
        *,
        id: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_id", b"_id", "id", b"id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_id", b"_id", "id", b"id"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["_id", b"_id"]) -> typing.Literal["id"] | None: ...

Global___IssueConfig: typing_extensions.TypeAlias = IssueConfig

@typing.final
class AetherJob(google.protobuf.message.Message):
    """AetherJob describes a job for aether to run e.g. a mr review"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    PROJECT_FIELD_NUMBER: builtins.int
    OPERATIONTYPE_FIELD_NUMBER: builtins.int
    ISSUEID_FIELD_NUMBER: builtins.int
    DISCUSSIONID_FIELD_NUMBER: builtins.int
    MERGEREQUESTID_FIELD_NUMBER: builtins.int
    JOBID_FIELD_NUMBER: builtins.int
    NOTEID_FIELD_NUMBER: builtins.int
    SOURCE_FIELD_NUMBER: builtins.int
    id: builtins.str
    """the id of the job"""
    OperationType: builtins.str
    """the type of job (e.g. mr review)"""
    IssueId: builtins.str
    """the issue id if available for this job"""
    DiscussionId: builtins.str
    """the discussion id if available for this job"""
    MergeRequestId: builtins.str
    """the mr id  if available for this job"""
    JobId: builtins.str
    """the job id  if available for this job"""
    NoteId: builtins.str
    """the note id  if available for this job"""
    @property
    def project(self) -> Global___ProviderProject:
        """the provider (git) project info for the job"""

    @property
    def source(self) -> insightproto.proto.common.v1.common_pb2.Source:
        """the integration source this is from (e.g. grafana)"""

    def __init__(
        self,
        *,
        id: builtins.str = ...,
        project: Global___ProviderProject | None = ...,
        OperationType: builtins.str = ...,
        IssueId: builtins.str | None = ...,
        DiscussionId: builtins.str | None = ...,
        MergeRequestId: builtins.str | None = ...,
        JobId: builtins.str | None = ...,
        NoteId: builtins.str | None = ...,
        source: insightproto.proto.common.v1.common_pb2.Source | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["DiscussionId", b"DiscussionId", "IssueId", b"IssueId", "JobId", b"JobId", "MergeRequestId", b"MergeRequestId", "NoteId", b"NoteId", "_DiscussionId", b"_DiscussionId", "_IssueId", b"_IssueId", "_JobId", b"_JobId", "_MergeRequestId", b"_MergeRequestId", "_NoteId", b"_NoteId", "project", b"project", "source", b"source"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["DiscussionId", b"DiscussionId", "IssueId", b"IssueId", "JobId", b"JobId", "MergeRequestId", b"MergeRequestId", "NoteId", b"NoteId", "OperationType", b"OperationType", "_DiscussionId", b"_DiscussionId", "_IssueId", b"_IssueId", "_JobId", b"_JobId", "_MergeRequestId", b"_MergeRequestId", "_NoteId", b"_NoteId", "id", b"id", "project", b"project", "source", b"source"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_DiscussionId", b"_DiscussionId"]) -> typing.Literal["DiscussionId"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_IssueId", b"_IssueId"]) -> typing.Literal["IssueId"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_JobId", b"_JobId"]) -> typing.Literal["JobId"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_MergeRequestId", b"_MergeRequestId"]) -> typing.Literal["MergeRequestId"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_NoteId", b"_NoteId"]) -> typing.Literal["NoteId"] | None: ...

Global___AetherJob: typing_extensions.TypeAlias = AetherJob

@typing.final
class ProviderProject(google.protobuf.message.Message):
    """ProviderProject describes the remote project source info, e.g. the gitlab project to use"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    PROVIDER_FIELD_NUMBER: builtins.int
    DEFAULT_BRANCH_NAME_FIELD_NUMBER: builtins.int
    GIT_URL_FIELD_NUMBER: builtins.int
    id: builtins.str
    """the provider project id to use in the api calls e.g. the gitlab id"""
    name: builtins.str
    """the name of the project"""
    default_branch_name: builtins.str
    """the project default branch name"""
    git_url: builtins.str
    """the https git url for the project"""
    @property
    def provider(self) -> Global___Provider:
        """DEPRECATED: use the inline git_url, or source on parent job"""

    def __init__(
        self,
        *,
        id: builtins.str = ...,
        name: builtins.str = ...,
        provider: Global___Provider | None = ...,
        default_branch_name: builtins.str = ...,
        git_url: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["provider", b"provider"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["default_branch_name", b"default_branch_name", "git_url", b"git_url", "id", b"id", "name", b"name", "provider", b"provider"]) -> None: ...

Global___ProviderProject: typing_extensions.TypeAlias = ProviderProject

@typing.final
class Provider(google.protobuf.message.Message):
    """DEPRECATED: Type is deprecated should use Source or inlined properties on ProviderProject"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    SOURCE_FIELD_NUMBER: builtins.int
    GITURL_FIELD_NUMBER: builtins.int
    id: builtins.str
    """DEPRECATED: use source.id on job"""
    source: builtins.str
    """DEPRECATED: use source.name on job"""
    gitUrl: builtins.str
    """DEPRECATED: use git_url on ProviderProject"""
    def __init__(
        self,
        *,
        id: builtins.str = ...,
        source: builtins.str = ...,
        gitUrl: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["gitUrl", b"gitUrl", "id", b"id", "source", b"source"]) -> None: ...

Global___Provider: typing_extensions.TypeAlias = Provider

@typing.final
class InsightJob(google.protobuf.message.Message):
    """InsightJob describes a job for insight to investigate"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    TRIGGER_FIELD_NUMBER: builtins.int
    id: builtins.str
    """the job id"""
    @property
    def trigger(self) -> Global___Trigger:
        """the job trigger"""

    def __init__(
        self,
        *,
        id: builtins.str = ...,
        trigger: Global___Trigger | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["trigger", b"trigger"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["id", b"id", "trigger", b"trigger"]) -> None: ...

Global___InsightJob: typing_extensions.TypeAlias = InsightJob

@typing.final
class Trigger(google.protobuf.message.Message):
    """Trigger describes where the job has come from (e.g. slack message)"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SOURCE_FIELD_NUMBER: builtins.int
    TEXT_FIELD_NUMBER: builtins.int
    REFERENCE_ID_FIELD_NUMBER: builtins.int
    AUTHOR_FIELD_NUMBER: builtins.int
    TIMESTAMP_FIELD_NUMBER: builtins.int
    CHANNEL_ID_FIELD_NUMBER: builtins.int
    text: builtins.str
    """the text to feed as the initial input to the agent"""
    reference_id: builtins.str
    """the reference id (eg slack/teams/etc message id)"""
    channel_id: builtins.str
    """the channel id (or similar) - e.g. the id of the slack channel that sourced the message"""
    @property
    def source(self) -> insightproto.proto.common.v1.common_pb2.Source:
        """the source type e.g. slack"""

    @property
    def author(self) -> Global___Author:
        """the author information (name, id, avatar)"""

    @property
    def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """the timestamp of the trigger (e.g. the time of the slack message)"""

    def __init__(
        self,
        *,
        source: insightproto.proto.common.v1.common_pb2.Source | None = ...,
        text: builtins.str = ...,
        reference_id: builtins.str | None = ...,
        author: Global___Author | None = ...,
        timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        channel_id: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_channel_id", b"_channel_id", "_reference_id", b"_reference_id", "author", b"author", "channel_id", b"channel_id", "reference_id", b"reference_id", "source", b"source", "timestamp", b"timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_channel_id", b"_channel_id", "_reference_id", b"_reference_id", "author", b"author", "channel_id", b"channel_id", "reference_id", b"reference_id", "source", b"source", "text", b"text", "timestamp", b"timestamp"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_channel_id", b"_channel_id"]) -> typing.Literal["channel_id"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_reference_id", b"_reference_id"]) -> typing.Literal["reference_id"] | None: ...

Global___Trigger: typing_extensions.TypeAlias = Trigger

@typing.final
class Author(google.protobuf.message.Message):
    """Author is the person that authored the trigger"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    ID_FIELD_NUMBER: builtins.int
    AVATAR_FIELD_NUMBER: builtins.int
    name: builtins.str
    """display name of the author"""
    id: builtins.str
    """unique identifier for the author"""
    avatar: builtins.str
    """URL to the author's avatar/profile image"""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
        id: builtins.str = ...,
        avatar: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["avatar", b"avatar", "id", b"id", "name", b"name"]) -> None: ...

Global___Author: typing_extensions.TypeAlias = Author
