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