"""
@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.results.v1.timeline_details_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 Acquisition(google.protobuf.message.Message):
    """message wrapper for sending updates"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    ORG_FIELD_NUMBER: builtins.int
    KNOWLEDGE_FIELD_NUMBER: builtins.int
    id: builtins.str
    """the id of the job"""
    @property
    def org(self) -> insightproto.proto.common.v1.common_pb2.Organisation:
        """The organization that owns the investigation."""

    @property
    def knowledge(self) -> Global___KnowledgeActivity:
        """The completed knowledge acquisition"""

    def __init__(
        self,
        *,
        id: builtins.str = ...,
        org: insightproto.proto.common.v1.common_pb2.Organisation | None = ...,
        knowledge: Global___KnowledgeActivity | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["knowledge", b"knowledge", "org", b"org"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["id", b"id", "knowledge", b"knowledge", "org", b"org"]) -> None: ...

Global___Acquisition: typing_extensions.TypeAlias = Acquisition

@typing.final
class KnowledgeActivity(google.protobuf.message.Message):
    """Knowledge graph activity event"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    SOURCE_FIELD_NUMBER: builtins.int
    TITLE_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    AUTHOR_FIELD_NUMBER: builtins.int
    CREATEDAT_FIELD_NUMBER: builtins.int
    LINK_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    EXPIRESAT_FIELD_NUMBER: builtins.int
    id: builtins.str
    """unique identifier for the activity"""
    title: builtins.str
    """title of the activity"""
    description: builtins.str
    """detailed description of the activity"""
    link: builtins.str
    """the link to the scanned data (e.g. the github repo that was scanned)"""
    @property
    def source(self) -> insightproto.proto.common.v1.common_pb2.Source:
        """source of activity performed - e.g. gitlab/grafana"""

    @property
    def author(self) -> insightproto.proto.results.v1.timeline_details_pb2.User:
        """user who performed the activity - a null or missing user indicates 'system'"""

    @property
    def createdAt(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """timestamp when the activity occurred"""

    @property
    def metadata(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___KnowledgeMetadata]:
        """the metadata of the nodes/relationships created"""

    @property
    def expiresAt(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """timestamp when the activity expires"""

    def __init__(
        self,
        *,
        id: builtins.str = ...,
        source: insightproto.proto.common.v1.common_pb2.Source | None = ...,
        title: builtins.str = ...,
        description: builtins.str = ...,
        author: insightproto.proto.results.v1.timeline_details_pb2.User | None = ...,
        createdAt: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        link: builtins.str | None = ...,
        metadata: collections.abc.Iterable[Global___KnowledgeMetadata] | None = ...,
        expiresAt: google.protobuf.timestamp_pb2.Timestamp | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_author", b"_author", "_link", b"_link", "author", b"author", "createdAt", b"createdAt", "expiresAt", b"expiresAt", "link", b"link", "source", b"source"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_author", b"_author", "_link", b"_link", "author", b"author", "createdAt", b"createdAt", "description", b"description", "expiresAt", b"expiresAt", "id", b"id", "link", b"link", "metadata", b"metadata", "source", b"source", "title", b"title"]) -> 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["_link", b"_link"]) -> typing.Literal["link"] | None: ...

Global___KnowledgeActivity: typing_extensions.TypeAlias = KnowledgeActivity

@typing.final
class KnowledgeMetadata(google.protobuf.message.Message):
    """use to track number of nodes created"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TYPE_FIELD_NUMBER: builtins.int
    TYPENAME_FIELD_NUMBER: builtins.int
    VALUE_FIELD_NUMBER: builtins.int
    type: builtins.str
    """the type e.g. 'Node' or 'Relationship'"""
    typeName: builtins.str
    """the name of the type e.g. 'Service', 'defined_in'"""
    value: builtins.int
    """the number of these type created"""
    def __init__(
        self,
        *,
        type: builtins.str = ...,
        typeName: builtins.str = ...,
        value: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["type", b"type", "typeName", b"typeName", "value", b"value"]) -> None: ...

Global___KnowledgeMetadata: typing_extensions.TypeAlias = KnowledgeMetadata
