1 // Copyright 2018 The Grafeas Authors. All rights reserved.
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
7 // http://www.apache.org/licenses/LICENSE-2.0
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
17 package grafeas.v1beta1.package;
19 option go_package = "google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/package;package";
20 option java_multiple_files = true;
21 option java_package = "io.grafeas.v1beta1.pkg";
22 option objc_class_prefix = "GRA";
24 // Instruction set architectures supported by various package managers.
26 // Unknown architecture.
27 ARCHITECTURE_UNSPECIFIED = 0;
34 // This represents a particular channel of distribution for a given package.
35 // E.g., Debian's jessie-backports dpkg mirror.
36 message Distribution {
37 // The cpe_uri in [cpe format](https://cpe.mitre.org/specification/)
38 // denoting the package manager version distributing a package.
41 // The CPU architecture for which packages in this distribution channel were
43 Architecture architecture = 2;
45 // The latest available version of this package in this distribution
47 Version latest_version = 3;
49 // A freeform string denoting the maintainer of this package.
50 string maintainer = 4;
52 // The distribution channel-specific homepage for this package.
55 // The distribution channel-specific description of this package.
56 string description = 6;
59 // An occurrence of a particular package installation found within a system's
60 // filesystem. E.g., glibc was found in /var/lib/dpkg/status.
62 // The cpe_uri in [cpe format](https://cpe.mitre.org/specification/)
63 // denoting the package manager version distributing a package.
66 // The version installed at this location.
69 // The path from which we gathered that this package/version is installed.
73 // This represents a particular package that is distributed over various
74 // channels. E.g., glibc (aka libc6) is distributed by many, at various
77 // The name of the package.
80 // The various channels by which a package is distributed.
81 repeated Distribution distribution = 10;
84 // Details of a package occurrence.
86 // Where the package was installed.
87 Installation installation = 1;
90 // This represents how a particular software package may be installed on a
92 message Installation {
93 // Output only. The name of the installed package.
96 // All of the places within the filesystem versions of this package
98 repeated Location location = 2;
101 // Version contains structured information about the version of a package.
103 // Used to correct mistakes in the version numbering scheme.
105 // The main part of the version name.
107 // The iteration of the package build from the above version.
110 // Whether this is an ordinary package version or a sentinel MIN/MAX version.
113 VERSION_KIND_UNSPECIFIED = 0;
114 // A standard package version, defined by the other fields.
116 // A special version representing negative infinity, other fields are
119 // A special version representing positive infinity, other fields are
124 // Distinguish between sentinel MIN/MAX versions and normal versions. If
125 // kind is not NORMAL, then the other fields are ignored.
126 VersionKind kind = 4;