class AttestationNote(proto.Message):
    class Hint(proto.Message):
class Jwt(proto.Message):
class AttestationOccurrence(proto.Message): class BuildNote(proto.Message):
class BuildOccurrence(proto.Message): class NoteKind(proto.Enum):
class RelatedUrl(proto.Message):
class Signature(proto.Message):
class Envelope(proto.Message):
class EnvelopeSignature(proto.Message):
    NOTE_KIND_UNSPECIFIED = 0
    VULNERABILITY = 1
    BUILD = 2
    IMAGE = 3
    PACKAGE = 4
    DEPLOYMENT = 5
    DISCOVERY = 6
    ATTESTATION = 7
    UPGRADE = 8
    COMPLIANCE = 9
    DSSE_ATTESTATION = 10 class ComplianceNote(proto.Message):
    class CisBenchmark(proto.Message):
class ComplianceVersion(proto.Message):
class ComplianceOccurrence(proto.Message):
class NonCompliantFile(proto.Message): class DeploymentNote(proto.Message):
class DeploymentOccurrence(proto.Message):
    class Platform(proto.Enum):
        PLATFORM_UNSPECIFIED = 0
        GKE = 1
        FLEX = 2
        CUSTOM = 3 class DiscoveryNote(proto.Message):
class DiscoveryOccurrence(proto.Message):
    class ContinuousAnalysis(proto.Enum):
    class AnalysisStatus(proto.Enum):
        CONTINUOUS_ANALYSIS_UNSPECIFIED = 0
        ACTIVE = 1
        INACTIVE = 2
        ANALYSIS_STATUS_UNSPECIFIED = 0
        PENDING = 1
        SCANNING = 2
        FINISHED_SUCCESS = 3
        FINISHED_FAILED = 4
        FINISHED_UNSUPPORTED = 5 class DSSEAttestationNote(proto.Message):
    class DSSEHint(proto.Message):
class DSSEAttestationOccurrence(proto.Message): class Layer(proto.Message):
class Fingerprint(proto.Message):
class ImageNote(proto.Message):
class ImageOccurrence(proto.Message): class Architecture(proto.Enum):
class Distribution(proto.Message):
class Location(proto.Message):
class PackageNote(proto.Message):
class PackageOccurrence(proto.Message):
class Version(proto.Message):
    class VersionKind(proto.Enum):
    ARCHITECTURE_UNSPECIFIED = 0
    X86 = 1
    X64 = 2
        VERSION_KIND_UNSPECIFIED = 0
        NORMAL = 1
        MINIMUM = 2
        MAXIMUM = 3 class UpgradeNote(proto.Message):
class UpgradeDistribution(proto.Message):
class WindowsUpdate(proto.Message):
    class Identity(proto.Message):
    class Category(proto.Message):
class UpgradeOccurrence(proto.Message): class VulnerabilityNote(proto.Message):
    class Detail(proto.Message):
    class WindowsDetail(proto.Message):
        class KnowledgeBase(proto.Message):
class VulnerabilityOccurrence(proto.Message):
    class PackageIssue(proto.Message):
import proto  # type: ignore
from google.protobuf import field_mask_pb2  # type: ignore
from google.protobuf import timestamp_pb2  # type: ignore
from grafeas.grafeas_v1.types import attestation as g_attestation
from grafeas.grafeas_v1.types import build as g_build
from grafeas.grafeas_v1.types import common
from grafeas.grafeas_v1.types import compliance as g_compliance
from grafeas.grafeas_v1.types import deployment as g_deployment
from grafeas.grafeas_v1.types import discovery as g_discovery
from grafeas.grafeas_v1.types import dsse_attestation as g_dsse_attestation
from grafeas.grafeas_v1.types import image as g_image
from grafeas.grafeas_v1.types import package as g_package
from grafeas.grafeas_v1.types import upgrade as g_upgrade
from grafeas.grafeas_v1.types import vulnerability as g_vulnerability

    Attributes:
        name (str):
            Output only. The name of the note in the form of
            ``projects/[PROVIDER_ID]/notes/[NOTE_ID]``.
        short_description (str):
            A one sentence description of this note.
        long_description (str):
            A detailed description of this note.
        kind (grafeas.grafeas_v1.types.NoteKind):
            Output only. The type of analysis. This field
            can be used as a filter in list requests.
        related_url (Sequence[grafeas.grafeas_v1.types.RelatedUrl]):
            URLs associated with this note.
        expiration_time (google.protobuf.timestamp_pb2.Timestamp):
            Time of expiration for this note. Empty if
            note does not expire.
        create_time (google.protobuf.timestamp_pb2.Timestamp):
            Output only. The time this note was created.
            This field can be used as a filter in list
            requests.
        update_time (google.protobuf.timestamp_pb2.Timestamp):
            Output only. The time this note was last
            updated. This field can be used as a filter in
            list requests.
        related_note_names (Sequence[str]):
            Other notes related to this note.
        vulnerability (grafeas.grafeas_v1.types.VulnerabilityNote):
            A note describing a package vulnerability.

            This field is a member of `oneof`_ ``type``.
        build (grafeas.grafeas_v1.types.BuildNote):
            A note describing build provenance for a
            verifiable build.

            This field is a member of `oneof`_ ``type``.
        image (grafeas.grafeas_v1.types.ImageNote):
            A note describing a base image.

            This field is a member of `oneof`_ ``type``.
        package (grafeas.grafeas_v1.types.PackageNote):
            A note describing a package hosted by various
            package managers.

            This field is a member of `oneof`_ ``type``.
        deployment (grafeas.grafeas_v1.types.DeploymentNote):
            A note describing something that can be
            deployed.

            This field is a member of `oneof`_ ``type``.
        discovery (grafeas.grafeas_v1.types.DiscoveryNote):
            A note describing the initial analysis of a
            resource.

            This field is a member of `oneof`_ ``type``.
        attestation (grafeas.grafeas_v1.types.AttestationNote):
            A note describing an attestation role.

            This field is a member of `oneof`_ ``type``.
        upgrade (grafeas.grafeas_v1.types.UpgradeNote):
            A note describing available package upgrades.

            This field is a member of `oneof`_ ``type``.
        compliance (grafeas.grafeas_v1.types.ComplianceNote):
            A note describing a compliance check.

            This field is a member of `oneof`_ ``type``.
        dsse_attestation (grafeas.grafeas_v1.types.DSSEAttestationNote):
            A note describing a dsse attestation note.

            This field is a member of `oneof`_ ``type``.
    """

    name = proto.Field(proto.STRING, number=1,)
    short_description = proto.Field(proto.STRING, number=2,)
    long_description = proto.Field(proto.STRING, number=3,)
    kind = proto.Field(proto.ENUM, number=4, enum=common.NoteKind,)
    related_url = proto.RepeatedField(
        proto.MESSAGE, number=5, message=common.RelatedUrl,
    )
    expiration_time = proto.Field(
        proto.MESSAGE, number=6, message=timestamp_pb2.Timestamp,
    )
    create_time = proto.Field(proto.MESSAGE, number=7, message=timestamp_pb2.Timestamp,)
    update_time = proto.Field(proto.MESSAGE, number=8, message=timestamp_pb2.Timestamp,)
    related_note_names = proto.RepeatedField(proto.STRING, number=9,)
    vulnerability = proto.Field(
        proto.MESSAGE,
        number=10,
        oneof="type",
        message=g_vulnerability.VulnerabilityNote,
    )
    build = proto.Field(
        proto.MESSAGE, number=11, oneof="type", message=g_build.BuildNote,
    )
    image = proto.Field(
        proto.MESSAGE, number=12, oneof="type", message=g_image.ImageNote,
    )
    package = proto.Field(
        proto.MESSAGE, number=13, oneof="type", message=g_package.PackageNote,
    )
    deployment = proto.Field(
        proto.MESSAGE, number=14, oneof="type", message=g_deployment.DeploymentNote,
    )
    discovery = proto.Field(
        proto.MESSAGE, number=15, oneof="type", message=g_discovery.DiscoveryNote,
    )
    attestation = proto.Field(
        proto.MESSAGE, number=16, oneof="type", message=g_attestation.AttestationNote,
    )
    upgrade = proto.Field(
        proto.MESSAGE, number=17, oneof="type", message=g_upgrade.UpgradeNote,
    )
    compliance = proto.Field(
        proto.MESSAGE, number=18, oneof="type", message=g_compliance.ComplianceNote,
    )
    dsse_attestation = proto.Field(
        proto.MESSAGE,
        number=19,
        oneof="type",

        message=g_dsse_attestation.DSSEAttestationNote,