# Path: grafeas/grafeas_v1/types/package.py
# 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


import proto  # type: ignore
from google.protobuf import timestamp_pb2  # type: ignore
from grafeas.grafeas_v1.types import package as g_package
    last_published_timestamp = proto.Field(
        proto.MESSAGE, number=7, message=timestamp_pb2.Timestamp,
    )


class UpgradeOccurrence(proto.Message):
    r"""An Upgrade Occurrence represents that a specific resource_url could
    install a specific upgrade. This presence is supplied via local
    sources (i.e. it is present in the mirror and the running system has
    noticed its availability). For Windows, both distribution and
    windows_update contain information for the Windows update.

    Attributes:
        package (str):
            Required for non-Windows OS. The package this
            Upgrade is for.
        parsed_version (grafeas.grafeas_v1.types.Version):
            Required for non-Windows OS. The version of
            the package in a machine + human readable form.
        distribution (grafeas.grafeas_v1.types.UpgradeDistribution):
            Metadata about the upgrade for available for the specific
            operating system for the resource_url. This allows efficient
            filtering, as well as making it easier to use the
            occurrence.
        windows_update (grafeas.grafeas_v1.types.WindowsUpdate):
            Required for Windows OS. Represents the
            metadata about the Windows update.
    """

    package = proto.Field(proto.STRING, number=1,)

# Path: grafeas/grafeas_v1/types/package.py
# 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


# Path: grafeas/grafeas_v1/types/upgrade.py
import proto  # type: ignore
from google.protobuf import timestamp_pb2  # type: ignore
from grafeas.grafeas_v1.types import package as g_package

    last_published_timestamp = proto.Field(
        proto.MESSAGE, number=7, message=timestamp_pb2.Timestamp,
    )


class UpgradeOccurrence(proto.Message):
    r"""An Upgrade Occurrence represents that a specific resource_url could
    install a specific upgrade. This presence is supplied via local
    sources (i.e. it is present in the mirror and the running system has
    noticed its availability). For Windows, both distribution and
    windows_update contain information for the Windows update.

    Attributes:
        package (str):
            Required for non-Windows OS. The package this
            Upgrade is for.
        parsed_version (grafeas.grafeas_v1.types.Version):
            Required for non-Windows OS. The version of
            the package in a machine + human readable form.
        distribution (grafeas.grafeas_v1.types.UpgradeDistribution):
            Metadata about the upgrade for available for the specific
            operating system for the resource_url. This allows efficient
            filtering, as well as making it easier to use the
            occurrence.
        windows_update (grafeas.grafeas_v1.types.WindowsUpdate):
            Required for Windows OS. Represents the
            metadata about the Windows update.
    """

    package = proto.Field(proto.STRING, number=1,)

    parsed_version = proto.Field(proto.MESSAGE, number=3, message=g_package.Version,)