xref: /aosp_15_r20/external/googleapis/grafeas/v1/package.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1*d5c09012SAndroid Build Coastguard Worker// Copyright 2019 The Grafeas Authors. All rights reserved.
2*d5c09012SAndroid Build Coastguard Worker//
3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*d5c09012SAndroid Build Coastguard Worker//
7*d5c09012SAndroid Build Coastguard Worker//    http://www.apache.org/licenses/LICENSE-2.0
8*d5c09012SAndroid Build Coastguard Worker//
9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*d5c09012SAndroid Build Coastguard Worker// limitations under the License.
14*d5c09012SAndroid Build Coastguard Worker
15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3";
16*d5c09012SAndroid Build Coastguard Worker
17*d5c09012SAndroid Build Coastguard Workerpackage grafeas.v1;
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto";
20*d5c09012SAndroid Build Coastguard Workerimport "grafeas/v1/common.proto";
21*d5c09012SAndroid Build Coastguard Worker
22*d5c09012SAndroid Build Coastguard Workeroption go_package = "google.golang.org/genproto/googleapis/grafeas/v1;grafeas";
23*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
24*d5c09012SAndroid Build Coastguard Workeroption java_package = "io.grafeas.v1";
25*d5c09012SAndroid Build Coastguard Workeroption objc_class_prefix = "GRA";
26*d5c09012SAndroid Build Coastguard Worker
27*d5c09012SAndroid Build Coastguard Worker// Instruction set architectures supported by various package managers.
28*d5c09012SAndroid Build Coastguard Workerenum Architecture {
29*d5c09012SAndroid Build Coastguard Worker  // Unknown architecture.
30*d5c09012SAndroid Build Coastguard Worker  ARCHITECTURE_UNSPECIFIED = 0;
31*d5c09012SAndroid Build Coastguard Worker  // X86 architecture.
32*d5c09012SAndroid Build Coastguard Worker  X86 = 1;
33*d5c09012SAndroid Build Coastguard Worker  // X64 architecture.
34*d5c09012SAndroid Build Coastguard Worker  X64 = 2;
35*d5c09012SAndroid Build Coastguard Worker}
36*d5c09012SAndroid Build Coastguard Worker
37*d5c09012SAndroid Build Coastguard Worker// This represents a particular channel of distribution for a given package.
38*d5c09012SAndroid Build Coastguard Worker// E.g., Debian's jessie-backports dpkg mirror.
39*d5c09012SAndroid Build Coastguard Workermessage Distribution {
40*d5c09012SAndroid Build Coastguard Worker  // The cpe_uri in [CPE format](https://cpe.mitre.org/specification/)
41*d5c09012SAndroid Build Coastguard Worker  // denoting the package manager version distributing a package.
42*d5c09012SAndroid Build Coastguard Worker  string cpe_uri = 1 [(google.api.field_behavior) = REQUIRED];
43*d5c09012SAndroid Build Coastguard Worker
44*d5c09012SAndroid Build Coastguard Worker  // The CPU architecture for which packages in this distribution channel were
45*d5c09012SAndroid Build Coastguard Worker  // built.
46*d5c09012SAndroid Build Coastguard Worker  Architecture architecture = 2;
47*d5c09012SAndroid Build Coastguard Worker
48*d5c09012SAndroid Build Coastguard Worker  // The latest available version of this package in this distribution channel.
49*d5c09012SAndroid Build Coastguard Worker  Version latest_version = 3;
50*d5c09012SAndroid Build Coastguard Worker
51*d5c09012SAndroid Build Coastguard Worker  // A freeform string denoting the maintainer of this package.
52*d5c09012SAndroid Build Coastguard Worker  string maintainer = 4;
53*d5c09012SAndroid Build Coastguard Worker
54*d5c09012SAndroid Build Coastguard Worker  // The distribution channel-specific homepage for this package.
55*d5c09012SAndroid Build Coastguard Worker  string url = 5;
56*d5c09012SAndroid Build Coastguard Worker
57*d5c09012SAndroid Build Coastguard Worker  // The distribution channel-specific description of this package.
58*d5c09012SAndroid Build Coastguard Worker  string description = 6;
59*d5c09012SAndroid Build Coastguard Worker}
60*d5c09012SAndroid Build Coastguard Worker
61*d5c09012SAndroid Build Coastguard Worker// An occurrence of a particular package installation found within a system's
62*d5c09012SAndroid Build Coastguard Worker// filesystem. E.g., glibc was found in `/var/lib/dpkg/status`.
63*d5c09012SAndroid Build Coastguard Workermessage Location {
64*d5c09012SAndroid Build Coastguard Worker  // Deprecated.
65*d5c09012SAndroid Build Coastguard Worker  // The CPE URI in [CPE format](https://cpe.mitre.org/specification/)
66*d5c09012SAndroid Build Coastguard Worker  string cpe_uri = 1;
67*d5c09012SAndroid Build Coastguard Worker
68*d5c09012SAndroid Build Coastguard Worker  // Deprecated.
69*d5c09012SAndroid Build Coastguard Worker  // The version installed at this location.
70*d5c09012SAndroid Build Coastguard Worker  Version version = 2;
71*d5c09012SAndroid Build Coastguard Worker
72*d5c09012SAndroid Build Coastguard Worker  // The path from which we gathered that this package/version is installed.
73*d5c09012SAndroid Build Coastguard Worker  string path = 3;
74*d5c09012SAndroid Build Coastguard Worker}
75*d5c09012SAndroid Build Coastguard Worker
76*d5c09012SAndroid Build Coastguard Worker// PackageNote represents a particular package version.
77*d5c09012SAndroid Build Coastguard Workermessage PackageNote {
78*d5c09012SAndroid Build Coastguard Worker  // The name of the package.
79*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
80*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
81*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = IMMUTABLE
82*d5c09012SAndroid Build Coastguard Worker  ];
83*d5c09012SAndroid Build Coastguard Worker
84*d5c09012SAndroid Build Coastguard Worker  // Deprecated.
85*d5c09012SAndroid Build Coastguard Worker  // The various channels by which a package is distributed.
86*d5c09012SAndroid Build Coastguard Worker  repeated Distribution distribution = 10;
87*d5c09012SAndroid Build Coastguard Worker
88*d5c09012SAndroid Build Coastguard Worker  // The type of package; whether native or non native (e.g., ruby gems,
89*d5c09012SAndroid Build Coastguard Worker  // node.js packages, etc.).
90*d5c09012SAndroid Build Coastguard Worker  string package_type = 11;
91*d5c09012SAndroid Build Coastguard Worker
92*d5c09012SAndroid Build Coastguard Worker  // The cpe_uri in [CPE format](https://cpe.mitre.org/specification/)
93*d5c09012SAndroid Build Coastguard Worker  // denoting the package manager version distributing a package.
94*d5c09012SAndroid Build Coastguard Worker  // The cpe_uri will be blank for language packages.
95*d5c09012SAndroid Build Coastguard Worker  string cpe_uri = 12;
96*d5c09012SAndroid Build Coastguard Worker
97*d5c09012SAndroid Build Coastguard Worker  // The CPU architecture for which packages in this distribution channel were
98*d5c09012SAndroid Build Coastguard Worker  // built. Architecture will be blank for language packages.
99*d5c09012SAndroid Build Coastguard Worker  Architecture architecture = 13;
100*d5c09012SAndroid Build Coastguard Worker
101*d5c09012SAndroid Build Coastguard Worker  // The version of the package.
102*d5c09012SAndroid Build Coastguard Worker  Version version = 14;
103*d5c09012SAndroid Build Coastguard Worker
104*d5c09012SAndroid Build Coastguard Worker  // A freeform text denoting the maintainer of this package.
105*d5c09012SAndroid Build Coastguard Worker  string maintainer = 15;
106*d5c09012SAndroid Build Coastguard Worker
107*d5c09012SAndroid Build Coastguard Worker  // The homepage for this package.
108*d5c09012SAndroid Build Coastguard Worker  string url = 16;
109*d5c09012SAndroid Build Coastguard Worker
110*d5c09012SAndroid Build Coastguard Worker  // The description of this package.
111*d5c09012SAndroid Build Coastguard Worker  string description = 17;
112*d5c09012SAndroid Build Coastguard Worker
113*d5c09012SAndroid Build Coastguard Worker  // Licenses that have been declared by the authors of the package.
114*d5c09012SAndroid Build Coastguard Worker  License license = 18;
115*d5c09012SAndroid Build Coastguard Worker
116*d5c09012SAndroid Build Coastguard Worker  // Hash value, typically a file digest, that allows unique
117*d5c09012SAndroid Build Coastguard Worker  // identification a specific package.
118*d5c09012SAndroid Build Coastguard Worker  repeated Digest digest = 19;
119*d5c09012SAndroid Build Coastguard Worker}
120*d5c09012SAndroid Build Coastguard Worker
121*d5c09012SAndroid Build Coastguard Worker// Details on how a particular software package was installed on a system.
122*d5c09012SAndroid Build Coastguard Workermessage PackageOccurrence {
123*d5c09012SAndroid Build Coastguard Worker  // The name of the installed package.
124*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
125*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
126*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = OUTPUT_ONLY
127*d5c09012SAndroid Build Coastguard Worker  ];
128*d5c09012SAndroid Build Coastguard Worker
129*d5c09012SAndroid Build Coastguard Worker  // All of the places within the filesystem versions of this package
130*d5c09012SAndroid Build Coastguard Worker  // have been found.
131*d5c09012SAndroid Build Coastguard Worker  repeated Location location = 2;
132*d5c09012SAndroid Build Coastguard Worker
133*d5c09012SAndroid Build Coastguard Worker  // The type of package; whether native or non native (e.g., ruby gems,
134*d5c09012SAndroid Build Coastguard Worker  // node.js packages, etc.).
135*d5c09012SAndroid Build Coastguard Worker  string package_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
136*d5c09012SAndroid Build Coastguard Worker
137*d5c09012SAndroid Build Coastguard Worker  // The cpe_uri in [CPE format](https://cpe.mitre.org/specification/)
138*d5c09012SAndroid Build Coastguard Worker  // denoting the package manager version distributing a package.
139*d5c09012SAndroid Build Coastguard Worker  // The cpe_uri will be blank for language packages.
140*d5c09012SAndroid Build Coastguard Worker  string cpe_uri = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
141*d5c09012SAndroid Build Coastguard Worker
142*d5c09012SAndroid Build Coastguard Worker  // The CPU architecture for which packages in this distribution channel were
143*d5c09012SAndroid Build Coastguard Worker  // built. Architecture will be blank for language packages.
144*d5c09012SAndroid Build Coastguard Worker  Architecture architecture = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
145*d5c09012SAndroid Build Coastguard Worker
146*d5c09012SAndroid Build Coastguard Worker  // Licenses that have been declared by the authors of the package.
147*d5c09012SAndroid Build Coastguard Worker  License license = 6;
148*d5c09012SAndroid Build Coastguard Worker
149*d5c09012SAndroid Build Coastguard Worker  // The version of the package.
150*d5c09012SAndroid Build Coastguard Worker  Version version = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
151*d5c09012SAndroid Build Coastguard Worker}
152*d5c09012SAndroid Build Coastguard Worker
153*d5c09012SAndroid Build Coastguard Worker// Version contains structured information about the version of a package.
154*d5c09012SAndroid Build Coastguard Workermessage Version {
155*d5c09012SAndroid Build Coastguard Worker  // Used to correct mistakes in the version numbering scheme.
156*d5c09012SAndroid Build Coastguard Worker  int32 epoch = 1;
157*d5c09012SAndroid Build Coastguard Worker
158*d5c09012SAndroid Build Coastguard Worker  // Required only when version kind is NORMAL. The main part of the version
159*d5c09012SAndroid Build Coastguard Worker  // name.
160*d5c09012SAndroid Build Coastguard Worker  string name = 2;
161*d5c09012SAndroid Build Coastguard Worker
162*d5c09012SAndroid Build Coastguard Worker  // The iteration of the package build from the above version.
163*d5c09012SAndroid Build Coastguard Worker  string revision = 3;
164*d5c09012SAndroid Build Coastguard Worker
165*d5c09012SAndroid Build Coastguard Worker  // Whether this version is specifying part of an inclusive range. Grafeas
166*d5c09012SAndroid Build Coastguard Worker  // does not have the capability to specify version ranges; instead we have
167*d5c09012SAndroid Build Coastguard Worker  // fields that specify start version and end versions. At times this is
168*d5c09012SAndroid Build Coastguard Worker  // insufficient - we also need to specify whether the version is included in
169*d5c09012SAndroid Build Coastguard Worker  // the range or is excluded from the range. This boolean is expected to be set
170*d5c09012SAndroid Build Coastguard Worker  // to true when the version is included in a range.
171*d5c09012SAndroid Build Coastguard Worker  bool inclusive = 6;
172*d5c09012SAndroid Build Coastguard Worker
173*d5c09012SAndroid Build Coastguard Worker  // Whether this is an ordinary package version or a sentinel MIN/MAX version.
174*d5c09012SAndroid Build Coastguard Worker  enum VersionKind {
175*d5c09012SAndroid Build Coastguard Worker    // Unknown.
176*d5c09012SAndroid Build Coastguard Worker    VERSION_KIND_UNSPECIFIED = 0;
177*d5c09012SAndroid Build Coastguard Worker    // A standard package version.
178*d5c09012SAndroid Build Coastguard Worker    NORMAL = 1;
179*d5c09012SAndroid Build Coastguard Worker    // A special version representing negative infinity.
180*d5c09012SAndroid Build Coastguard Worker    MINIMUM = 2;
181*d5c09012SAndroid Build Coastguard Worker    // A special version representing positive infinity.
182*d5c09012SAndroid Build Coastguard Worker    MAXIMUM = 3;
183*d5c09012SAndroid Build Coastguard Worker  }
184*d5c09012SAndroid Build Coastguard Worker
185*d5c09012SAndroid Build Coastguard Worker  // Required. Distinguishes between sentinel MIN/MAX versions and normal
186*d5c09012SAndroid Build Coastguard Worker  // versions.
187*d5c09012SAndroid Build Coastguard Worker  VersionKind kind = 4;
188*d5c09012SAndroid Build Coastguard Worker
189*d5c09012SAndroid Build Coastguard Worker  // Human readable version string. This string is of the form
190*d5c09012SAndroid Build Coastguard Worker  // <epoch>:<name>-<revision> and is only set when kind is NORMAL.
191*d5c09012SAndroid Build Coastguard Worker  string full_name = 5;
192*d5c09012SAndroid Build Coastguard Worker}
193