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
    This message has `oneof`_ fields (mutually exclusive fields).
    For each oneof, at most one member field can be set at the same time.
    Setting any member of the oneof automatically clears all other
    members.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    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,