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/annotations.proto"; 20*d5c09012SAndroid Build Coastguard Workerimport "google/api/client.proto"; 21*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto"; 22*d5c09012SAndroid Build Coastguard Workerimport "google/api/resource.proto"; 23*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/empty.proto"; 24*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/field_mask.proto"; 25*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto"; 26*d5c09012SAndroid Build Coastguard Workerimport "grafeas/v1/attestation.proto"; 27*d5c09012SAndroid Build Coastguard Workerimport "grafeas/v1/build.proto"; 28*d5c09012SAndroid Build Coastguard Workerimport "grafeas/v1/common.proto"; 29*d5c09012SAndroid Build Coastguard Workerimport "grafeas/v1/compliance.proto"; 30*d5c09012SAndroid Build Coastguard Workerimport "grafeas/v1/deployment.proto"; 31*d5c09012SAndroid Build Coastguard Workerimport "grafeas/v1/discovery.proto"; 32*d5c09012SAndroid Build Coastguard Workerimport "grafeas/v1/dsse_attestation.proto"; 33*d5c09012SAndroid Build Coastguard Workerimport "grafeas/v1/image.proto"; 34*d5c09012SAndroid Build Coastguard Workerimport "grafeas/v1/package.proto"; 35*d5c09012SAndroid Build Coastguard Workerimport "grafeas/v1/sbom.proto"; 36*d5c09012SAndroid Build Coastguard Workerimport "grafeas/v1/upgrade.proto"; 37*d5c09012SAndroid Build Coastguard Workerimport "grafeas/v1/vex.proto"; 38*d5c09012SAndroid Build Coastguard Workerimport "grafeas/v1/vulnerability.proto"; 39*d5c09012SAndroid Build Coastguard Worker 40*d5c09012SAndroid Build Coastguard Workeroption go_package = "google.golang.org/genproto/googleapis/grafeas/v1;grafeas"; 41*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true; 42*d5c09012SAndroid Build Coastguard Workeroption java_package = "io.grafeas.v1"; 43*d5c09012SAndroid Build Coastguard Workeroption objc_class_prefix = "GRA"; 44*d5c09012SAndroid Build Coastguard Workeroption (google.api.resource_definition) = { 45*d5c09012SAndroid Build Coastguard Worker type: "grafeas.io/Project" 46*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}" 47*d5c09012SAndroid Build Coastguard Worker}; 48*d5c09012SAndroid Build Coastguard Worker 49*d5c09012SAndroid Build Coastguard Worker// [Grafeas](https://grafeas.io) API. 50*d5c09012SAndroid Build Coastguard Worker// 51*d5c09012SAndroid Build Coastguard Worker// Retrieves analysis results of Cloud components such as Docker container 52*d5c09012SAndroid Build Coastguard Worker// images. 53*d5c09012SAndroid Build Coastguard Worker// 54*d5c09012SAndroid Build Coastguard Worker// Analysis results are stored as a series of occurrences. An `Occurrence` 55*d5c09012SAndroid Build Coastguard Worker// contains information about a specific analysis instance on a resource. An 56*d5c09012SAndroid Build Coastguard Worker// occurrence refers to a `Note`. A note contains details describing the 57*d5c09012SAndroid Build Coastguard Worker// analysis and is generally stored in a separate project, called a `Provider`. 58*d5c09012SAndroid Build Coastguard Worker// Multiple occurrences can refer to the same note. 59*d5c09012SAndroid Build Coastguard Worker// 60*d5c09012SAndroid Build Coastguard Worker// For example, an SSL vulnerability could affect multiple images. In this case, 61*d5c09012SAndroid Build Coastguard Worker// there would be one note for the vulnerability and an occurrence for each 62*d5c09012SAndroid Build Coastguard Worker// image with the vulnerability referring to that note. 63*d5c09012SAndroid Build Coastguard Workerservice Grafeas { 64*d5c09012SAndroid Build Coastguard Worker option (google.api.default_host) = "containeranalysis.googleapis.com"; 65*d5c09012SAndroid Build Coastguard Worker 66*d5c09012SAndroid Build Coastguard Worker // Gets the specified occurrence. 67*d5c09012SAndroid Build Coastguard Worker rpc GetOccurrence(GetOccurrenceRequest) returns (Occurrence) { 68*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 69*d5c09012SAndroid Build Coastguard Worker get: "/v1/{name=projects/*/occurrences/*}" 70*d5c09012SAndroid Build Coastguard Worker additional_bindings { 71*d5c09012SAndroid Build Coastguard Worker get: "/v1/{name=projects/*/locations/*/occurrences/*}" 72*d5c09012SAndroid Build Coastguard Worker } 73*d5c09012SAndroid Build Coastguard Worker }; 74*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "name"; 75*d5c09012SAndroid Build Coastguard Worker } 76*d5c09012SAndroid Build Coastguard Worker 77*d5c09012SAndroid Build Coastguard Worker // Lists occurrences for the specified project. 78*d5c09012SAndroid Build Coastguard Worker rpc ListOccurrences(ListOccurrencesRequest) 79*d5c09012SAndroid Build Coastguard Worker returns (ListOccurrencesResponse) { 80*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 81*d5c09012SAndroid Build Coastguard Worker get: "/v1/{parent=projects/*}/occurrences" 82*d5c09012SAndroid Build Coastguard Worker additional_bindings { 83*d5c09012SAndroid Build Coastguard Worker get: "/v1/{parent=projects/*/locations/*}/occurrences" 84*d5c09012SAndroid Build Coastguard Worker } 85*d5c09012SAndroid Build Coastguard Worker }; 86*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "parent,filter"; 87*d5c09012SAndroid Build Coastguard Worker } 88*d5c09012SAndroid Build Coastguard Worker 89*d5c09012SAndroid Build Coastguard Worker // Deletes the specified occurrence. For example, use this method to delete an 90*d5c09012SAndroid Build Coastguard Worker // occurrence when the occurrence is no longer applicable for the given 91*d5c09012SAndroid Build Coastguard Worker // resource. 92*d5c09012SAndroid Build Coastguard Worker rpc DeleteOccurrence(DeleteOccurrenceRequest) 93*d5c09012SAndroid Build Coastguard Worker returns (google.protobuf.Empty) { 94*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 95*d5c09012SAndroid Build Coastguard Worker delete: "/v1/{name=projects/*/occurrences/*}" 96*d5c09012SAndroid Build Coastguard Worker }; 97*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "name"; 98*d5c09012SAndroid Build Coastguard Worker } 99*d5c09012SAndroid Build Coastguard Worker 100*d5c09012SAndroid Build Coastguard Worker // Creates a new occurrence. 101*d5c09012SAndroid Build Coastguard Worker rpc CreateOccurrence(CreateOccurrenceRequest) returns (Occurrence) { 102*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 103*d5c09012SAndroid Build Coastguard Worker post: "/v1/{parent=projects/*}/occurrences" 104*d5c09012SAndroid Build Coastguard Worker body: "occurrence" 105*d5c09012SAndroid Build Coastguard Worker }; 106*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "parent,occurrence"; 107*d5c09012SAndroid Build Coastguard Worker } 108*d5c09012SAndroid Build Coastguard Worker 109*d5c09012SAndroid Build Coastguard Worker // Creates new occurrences in batch. 110*d5c09012SAndroid Build Coastguard Worker rpc BatchCreateOccurrences(BatchCreateOccurrencesRequest) 111*d5c09012SAndroid Build Coastguard Worker returns (BatchCreateOccurrencesResponse) { 112*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 113*d5c09012SAndroid Build Coastguard Worker post: "/v1/{parent=projects/*}/occurrences:batchCreate" 114*d5c09012SAndroid Build Coastguard Worker body: "*" 115*d5c09012SAndroid Build Coastguard Worker }; 116*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "parent,occurrences"; 117*d5c09012SAndroid Build Coastguard Worker } 118*d5c09012SAndroid Build Coastguard Worker 119*d5c09012SAndroid Build Coastguard Worker // Updates the specified occurrence. 120*d5c09012SAndroid Build Coastguard Worker rpc UpdateOccurrence(UpdateOccurrenceRequest) returns (Occurrence) { 121*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 122*d5c09012SAndroid Build Coastguard Worker patch: "/v1/{name=projects/*/occurrences/*}" 123*d5c09012SAndroid Build Coastguard Worker body: "occurrence" 124*d5c09012SAndroid Build Coastguard Worker }; 125*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "name,occurrence,update_mask"; 126*d5c09012SAndroid Build Coastguard Worker } 127*d5c09012SAndroid Build Coastguard Worker 128*d5c09012SAndroid Build Coastguard Worker // Gets the note attached to the specified occurrence. Consumer projects can 129*d5c09012SAndroid Build Coastguard Worker // use this method to get a note that belongs to a provider project. 130*d5c09012SAndroid Build Coastguard Worker rpc GetOccurrenceNote(GetOccurrenceNoteRequest) returns (Note) { 131*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 132*d5c09012SAndroid Build Coastguard Worker get: "/v1/{name=projects/*/occurrences/*}/notes" 133*d5c09012SAndroid Build Coastguard Worker additional_bindings { 134*d5c09012SAndroid Build Coastguard Worker get: "/v1/{name=projects/*/locations/*/occurrences/*}/notes" 135*d5c09012SAndroid Build Coastguard Worker } 136*d5c09012SAndroid Build Coastguard Worker }; 137*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "name"; 138*d5c09012SAndroid Build Coastguard Worker } 139*d5c09012SAndroid Build Coastguard Worker 140*d5c09012SAndroid Build Coastguard Worker // Gets the specified note. 141*d5c09012SAndroid Build Coastguard Worker rpc GetNote(GetNoteRequest) returns (Note) { 142*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 143*d5c09012SAndroid Build Coastguard Worker get: "/v1/{name=projects/*/notes/*}" 144*d5c09012SAndroid Build Coastguard Worker additional_bindings { get: "/v1/{name=projects/*/locations/*/notes/*}" } 145*d5c09012SAndroid Build Coastguard Worker }; 146*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "name"; 147*d5c09012SAndroid Build Coastguard Worker } 148*d5c09012SAndroid Build Coastguard Worker 149*d5c09012SAndroid Build Coastguard Worker // Lists notes for the specified project. 150*d5c09012SAndroid Build Coastguard Worker rpc ListNotes(ListNotesRequest) returns (ListNotesResponse) { 151*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 152*d5c09012SAndroid Build Coastguard Worker get: "/v1/{parent=projects/*}/notes" 153*d5c09012SAndroid Build Coastguard Worker additional_bindings { get: "/v1/{parent=projects/*/locations/*}/notes" } 154*d5c09012SAndroid Build Coastguard Worker }; 155*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "parent,filter"; 156*d5c09012SAndroid Build Coastguard Worker } 157*d5c09012SAndroid Build Coastguard Worker 158*d5c09012SAndroid Build Coastguard Worker // Deletes the specified note. 159*d5c09012SAndroid Build Coastguard Worker rpc DeleteNote(DeleteNoteRequest) returns (google.protobuf.Empty) { 160*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 161*d5c09012SAndroid Build Coastguard Worker delete: "/v1/{name=projects/*/notes/*}" 162*d5c09012SAndroid Build Coastguard Worker }; 163*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "name"; 164*d5c09012SAndroid Build Coastguard Worker } 165*d5c09012SAndroid Build Coastguard Worker 166*d5c09012SAndroid Build Coastguard Worker // Creates a new note. 167*d5c09012SAndroid Build Coastguard Worker rpc CreateNote(CreateNoteRequest) returns (Note) { 168*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 169*d5c09012SAndroid Build Coastguard Worker post: "/v1/{parent=projects/*}/notes" 170*d5c09012SAndroid Build Coastguard Worker body: "note" 171*d5c09012SAndroid Build Coastguard Worker }; 172*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "parent,note_id,note"; 173*d5c09012SAndroid Build Coastguard Worker } 174*d5c09012SAndroid Build Coastguard Worker 175*d5c09012SAndroid Build Coastguard Worker // Creates new notes in batch. 176*d5c09012SAndroid Build Coastguard Worker rpc BatchCreateNotes(BatchCreateNotesRequest) 177*d5c09012SAndroid Build Coastguard Worker returns (BatchCreateNotesResponse) { 178*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 179*d5c09012SAndroid Build Coastguard Worker post: "/v1/{parent=projects/*}/notes:batchCreate" 180*d5c09012SAndroid Build Coastguard Worker body: "*" 181*d5c09012SAndroid Build Coastguard Worker }; 182*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "parent,notes"; 183*d5c09012SAndroid Build Coastguard Worker } 184*d5c09012SAndroid Build Coastguard Worker 185*d5c09012SAndroid Build Coastguard Worker // Updates the specified note. 186*d5c09012SAndroid Build Coastguard Worker rpc UpdateNote(UpdateNoteRequest) returns (Note) { 187*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 188*d5c09012SAndroid Build Coastguard Worker patch: "/v1/{name=projects/*/notes/*}" 189*d5c09012SAndroid Build Coastguard Worker body: "note" 190*d5c09012SAndroid Build Coastguard Worker }; 191*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "name,note,update_mask"; 192*d5c09012SAndroid Build Coastguard Worker } 193*d5c09012SAndroid Build Coastguard Worker 194*d5c09012SAndroid Build Coastguard Worker // Lists occurrences referencing the specified note. Provider projects can use 195*d5c09012SAndroid Build Coastguard Worker // this method to get all occurrences across consumer projects referencing the 196*d5c09012SAndroid Build Coastguard Worker // specified note. 197*d5c09012SAndroid Build Coastguard Worker rpc ListNoteOccurrences(ListNoteOccurrencesRequest) 198*d5c09012SAndroid Build Coastguard Worker returns (ListNoteOccurrencesResponse) { 199*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 200*d5c09012SAndroid Build Coastguard Worker get: "/v1/{name=projects/*/notes/*}/occurrences" 201*d5c09012SAndroid Build Coastguard Worker additional_bindings { 202*d5c09012SAndroid Build Coastguard Worker get: "/v1/{name=projects/*/locations/*/notes/*}/occurrences" 203*d5c09012SAndroid Build Coastguard Worker } 204*d5c09012SAndroid Build Coastguard Worker }; 205*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "name,filter"; 206*d5c09012SAndroid Build Coastguard Worker } 207*d5c09012SAndroid Build Coastguard Worker} 208*d5c09012SAndroid Build Coastguard Worker 209*d5c09012SAndroid Build Coastguard Worker// An instance of an analysis type that has been found on a resource. 210*d5c09012SAndroid Build Coastguard Workermessage Occurrence { 211*d5c09012SAndroid Build Coastguard Worker option (google.api.resource) = { 212*d5c09012SAndroid Build Coastguard Worker type: "grafeas.io/Occurrence" 213*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/occurrences/{occurrence}" 214*d5c09012SAndroid Build Coastguard Worker }; 215*d5c09012SAndroid Build Coastguard Worker 216*d5c09012SAndroid Build Coastguard Worker // Output only. The name of the occurrence in the form of 217*d5c09012SAndroid Build Coastguard Worker // `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`. 218*d5c09012SAndroid Build Coastguard Worker string name = 1; 219*d5c09012SAndroid Build Coastguard Worker 220*d5c09012SAndroid Build Coastguard Worker // Required. Immutable. A URI that represents the resource for which the 221*d5c09012SAndroid Build Coastguard Worker // occurrence applies. For example, 222*d5c09012SAndroid Build Coastguard Worker // `https://gcr.io/project/image@sha256:123abc` for a Docker image. 223*d5c09012SAndroid Build Coastguard Worker string resource_uri = 2; 224*d5c09012SAndroid Build Coastguard Worker 225*d5c09012SAndroid Build Coastguard Worker // Required. Immutable. The analysis note associated with this occurrence, in 226*d5c09012SAndroid Build Coastguard Worker // the form of `projects/[PROVIDER_ID]/notes/[NOTE_ID]`. This field can be 227*d5c09012SAndroid Build Coastguard Worker // used as a filter in list requests. 228*d5c09012SAndroid Build Coastguard Worker string note_name = 3; 229*d5c09012SAndroid Build Coastguard Worker 230*d5c09012SAndroid Build Coastguard Worker // Output only. This explicitly denotes which of the occurrence details are 231*d5c09012SAndroid Build Coastguard Worker // specified. This field can be used as a filter in list requests. 232*d5c09012SAndroid Build Coastguard Worker grafeas.v1.NoteKind kind = 4; 233*d5c09012SAndroid Build Coastguard Worker 234*d5c09012SAndroid Build Coastguard Worker // A description of actions that can be taken to remedy the note. 235*d5c09012SAndroid Build Coastguard Worker string remediation = 5; 236*d5c09012SAndroid Build Coastguard Worker 237*d5c09012SAndroid Build Coastguard Worker // Output only. The time this occurrence was created. 238*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp create_time = 6; 239*d5c09012SAndroid Build Coastguard Worker 240*d5c09012SAndroid Build Coastguard Worker // Output only. The time this occurrence was last updated. 241*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp update_time = 7; 242*d5c09012SAndroid Build Coastguard Worker 243*d5c09012SAndroid Build Coastguard Worker // Required. Immutable. Describes the details of the note kind found on this 244*d5c09012SAndroid Build Coastguard Worker // resource. 245*d5c09012SAndroid Build Coastguard Worker oneof details { 246*d5c09012SAndroid Build Coastguard Worker // Describes a security vulnerability. 247*d5c09012SAndroid Build Coastguard Worker grafeas.v1.VulnerabilityOccurrence vulnerability = 8; 248*d5c09012SAndroid Build Coastguard Worker // Describes a verifiable build. 249*d5c09012SAndroid Build Coastguard Worker grafeas.v1.BuildOccurrence build = 9; 250*d5c09012SAndroid Build Coastguard Worker // Describes how this resource derives from the basis in the associated 251*d5c09012SAndroid Build Coastguard Worker // note. 252*d5c09012SAndroid Build Coastguard Worker grafeas.v1.ImageOccurrence image = 10; 253*d5c09012SAndroid Build Coastguard Worker // Describes the installation of a package on the linked resource. 254*d5c09012SAndroid Build Coastguard Worker grafeas.v1.PackageOccurrence package = 11; 255*d5c09012SAndroid Build Coastguard Worker // Describes the deployment of an artifact on a runtime. 256*d5c09012SAndroid Build Coastguard Worker grafeas.v1.DeploymentOccurrence deployment = 12; 257*d5c09012SAndroid Build Coastguard Worker // Describes when a resource was discovered. 258*d5c09012SAndroid Build Coastguard Worker grafeas.v1.DiscoveryOccurrence discovery = 13; 259*d5c09012SAndroid Build Coastguard Worker // Describes an attestation of an artifact. 260*d5c09012SAndroid Build Coastguard Worker grafeas.v1.AttestationOccurrence attestation = 14; 261*d5c09012SAndroid Build Coastguard Worker // Describes an available package upgrade on the linked resource. 262*d5c09012SAndroid Build Coastguard Worker grafeas.v1.UpgradeOccurrence upgrade = 15; 263*d5c09012SAndroid Build Coastguard Worker // Describes a compliance violation on a linked resource. 264*d5c09012SAndroid Build Coastguard Worker grafeas.v1.ComplianceOccurrence compliance = 16; 265*d5c09012SAndroid Build Coastguard Worker // Describes an attestation of an artifact using dsse. 266*d5c09012SAndroid Build Coastguard Worker grafeas.v1.DSSEAttestationOccurrence dsse_attestation = 17; 267*d5c09012SAndroid Build Coastguard Worker // Describes a specific SBOM reference occurrences. 268*d5c09012SAndroid Build Coastguard Worker grafeas.v1.SBOMReferenceOccurrence sbom_reference = 19; 269*d5c09012SAndroid Build Coastguard Worker } 270*d5c09012SAndroid Build Coastguard Worker 271*d5c09012SAndroid Build Coastguard Worker // https://github.com/secure-systems-lab/dsse 272*d5c09012SAndroid Build Coastguard Worker grafeas.v1.Envelope envelope = 18; 273*d5c09012SAndroid Build Coastguard Worker} 274*d5c09012SAndroid Build Coastguard Worker 275*d5c09012SAndroid Build Coastguard Worker// A type of analysis that can be done for a resource. 276*d5c09012SAndroid Build Coastguard Workermessage Note { 277*d5c09012SAndroid Build Coastguard Worker option (google.api.resource) = { 278*d5c09012SAndroid Build Coastguard Worker type: "grafeas.io/Note" 279*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/notes/{note}" 280*d5c09012SAndroid Build Coastguard Worker }; 281*d5c09012SAndroid Build Coastguard Worker 282*d5c09012SAndroid Build Coastguard Worker // Output only. The name of the note in the form of 283*d5c09012SAndroid Build Coastguard Worker // `projects/[PROVIDER_ID]/notes/[NOTE_ID]`. 284*d5c09012SAndroid Build Coastguard Worker string name = 1; 285*d5c09012SAndroid Build Coastguard Worker 286*d5c09012SAndroid Build Coastguard Worker // A one sentence description of this note. 287*d5c09012SAndroid Build Coastguard Worker string short_description = 2; 288*d5c09012SAndroid Build Coastguard Worker 289*d5c09012SAndroid Build Coastguard Worker // A detailed description of this note. 290*d5c09012SAndroid Build Coastguard Worker string long_description = 3; 291*d5c09012SAndroid Build Coastguard Worker 292*d5c09012SAndroid Build Coastguard Worker // Output only. The type of analysis. This field can be used as a filter in 293*d5c09012SAndroid Build Coastguard Worker // list requests. 294*d5c09012SAndroid Build Coastguard Worker grafeas.v1.NoteKind kind = 4; 295*d5c09012SAndroid Build Coastguard Worker 296*d5c09012SAndroid Build Coastguard Worker // URLs associated with this note. 297*d5c09012SAndroid Build Coastguard Worker repeated grafeas.v1.RelatedUrl related_url = 5; 298*d5c09012SAndroid Build Coastguard Worker 299*d5c09012SAndroid Build Coastguard Worker // Time of expiration for this note. Empty if note does not expire. 300*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp expiration_time = 6; 301*d5c09012SAndroid Build Coastguard Worker 302*d5c09012SAndroid Build Coastguard Worker // Output only. The time this note was created. This field can be used as a 303*d5c09012SAndroid Build Coastguard Worker // filter in list requests. 304*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp create_time = 7; 305*d5c09012SAndroid Build Coastguard Worker 306*d5c09012SAndroid Build Coastguard Worker // Output only. The time this note was last updated. This field can be used as 307*d5c09012SAndroid Build Coastguard Worker // a filter in list requests. 308*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp update_time = 8; 309*d5c09012SAndroid Build Coastguard Worker 310*d5c09012SAndroid Build Coastguard Worker // Other notes related to this note. 311*d5c09012SAndroid Build Coastguard Worker repeated string related_note_names = 9; 312*d5c09012SAndroid Build Coastguard Worker 313*d5c09012SAndroid Build Coastguard Worker // Required. Immutable. The type of analysis this note represents. 314*d5c09012SAndroid Build Coastguard Worker oneof type { 315*d5c09012SAndroid Build Coastguard Worker // A note describing a package vulnerability. 316*d5c09012SAndroid Build Coastguard Worker grafeas.v1.VulnerabilityNote vulnerability = 10; 317*d5c09012SAndroid Build Coastguard Worker // A note describing build provenance for a verifiable build. 318*d5c09012SAndroid Build Coastguard Worker grafeas.v1.BuildNote build = 11; 319*d5c09012SAndroid Build Coastguard Worker // A note describing a base image. 320*d5c09012SAndroid Build Coastguard Worker grafeas.v1.ImageNote image = 12; 321*d5c09012SAndroid Build Coastguard Worker // A note describing a package hosted by various package managers. 322*d5c09012SAndroid Build Coastguard Worker grafeas.v1.PackageNote package = 13; 323*d5c09012SAndroid Build Coastguard Worker // A note describing something that can be deployed. 324*d5c09012SAndroid Build Coastguard Worker grafeas.v1.DeploymentNote deployment = 14; 325*d5c09012SAndroid Build Coastguard Worker // A note describing the initial analysis of a resource. 326*d5c09012SAndroid Build Coastguard Worker grafeas.v1.DiscoveryNote discovery = 15; 327*d5c09012SAndroid Build Coastguard Worker // A note describing an attestation role. 328*d5c09012SAndroid Build Coastguard Worker grafeas.v1.AttestationNote attestation = 16; 329*d5c09012SAndroid Build Coastguard Worker // A note describing available package upgrades. 330*d5c09012SAndroid Build Coastguard Worker grafeas.v1.UpgradeNote upgrade = 17; 331*d5c09012SAndroid Build Coastguard Worker // A note describing a compliance check. 332*d5c09012SAndroid Build Coastguard Worker grafeas.v1.ComplianceNote compliance = 18; 333*d5c09012SAndroid Build Coastguard Worker // A note describing a dsse attestation note. 334*d5c09012SAndroid Build Coastguard Worker grafeas.v1.DSSEAttestationNote dsse_attestation = 19; 335*d5c09012SAndroid Build Coastguard Worker // A note describing a vulnerability assessment. 336*d5c09012SAndroid Build Coastguard Worker grafeas.v1.VulnerabilityAssessmentNote vulnerability_assessment = 20; 337*d5c09012SAndroid Build Coastguard Worker // A note describing an SBOM reference. 338*d5c09012SAndroid Build Coastguard Worker grafeas.v1.SBOMReferenceNote sbom_reference = 21; 339*d5c09012SAndroid Build Coastguard Worker } 340*d5c09012SAndroid Build Coastguard Worker} 341*d5c09012SAndroid Build Coastguard Worker 342*d5c09012SAndroid Build Coastguard Worker// Request to get an occurrence. 343*d5c09012SAndroid Build Coastguard Workermessage GetOccurrenceRequest { 344*d5c09012SAndroid Build Coastguard Worker // The name of the occurrence in the form of 345*d5c09012SAndroid Build Coastguard Worker // `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`. 346*d5c09012SAndroid Build Coastguard Worker string name = 1 [ 347*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 348*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference).type = "grafeas.io/Occurrence" 349*d5c09012SAndroid Build Coastguard Worker ]; 350*d5c09012SAndroid Build Coastguard Worker} 351*d5c09012SAndroid Build Coastguard Worker 352*d5c09012SAndroid Build Coastguard Worker// Request to list occurrences. 353*d5c09012SAndroid Build Coastguard Workermessage ListOccurrencesRequest { 354*d5c09012SAndroid Build Coastguard Worker // The name of the project to list occurrences for in the form of 355*d5c09012SAndroid Build Coastguard Worker // `projects/[PROJECT_ID]`. 356*d5c09012SAndroid Build Coastguard Worker string parent = 1 [ 357*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 358*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference).type = "grafeas.io/Project" 359*d5c09012SAndroid Build Coastguard Worker ]; 360*d5c09012SAndroid Build Coastguard Worker 361*d5c09012SAndroid Build Coastguard Worker // The filter expression. 362*d5c09012SAndroid Build Coastguard Worker string filter = 2; 363*d5c09012SAndroid Build Coastguard Worker 364*d5c09012SAndroid Build Coastguard Worker // Number of occurrences to return in the list. Must be positive. Max allowed 365*d5c09012SAndroid Build Coastguard Worker // page size is 1000. If not specified, page size defaults to 20. 366*d5c09012SAndroid Build Coastguard Worker int32 page_size = 3; 367*d5c09012SAndroid Build Coastguard Worker 368*d5c09012SAndroid Build Coastguard Worker // Token to provide to skip to a particular spot in the list. 369*d5c09012SAndroid Build Coastguard Worker string page_token = 4; 370*d5c09012SAndroid Build Coastguard Worker} 371*d5c09012SAndroid Build Coastguard Worker 372*d5c09012SAndroid Build Coastguard Worker// Response for listing occurrences. 373*d5c09012SAndroid Build Coastguard Workermessage ListOccurrencesResponse { 374*d5c09012SAndroid Build Coastguard Worker // The occurrences requested. 375*d5c09012SAndroid Build Coastguard Worker repeated Occurrence occurrences = 1; 376*d5c09012SAndroid Build Coastguard Worker // The next pagination token in the list response. It should be used as 377*d5c09012SAndroid Build Coastguard Worker // `page_token` for the following request. An empty value means no more 378*d5c09012SAndroid Build Coastguard Worker // results. 379*d5c09012SAndroid Build Coastguard Worker string next_page_token = 2; 380*d5c09012SAndroid Build Coastguard Worker} 381*d5c09012SAndroid Build Coastguard Worker 382*d5c09012SAndroid Build Coastguard Worker// Request to delete an occurrence. 383*d5c09012SAndroid Build Coastguard Workermessage DeleteOccurrenceRequest { 384*d5c09012SAndroid Build Coastguard Worker // The name of the occurrence in the form of 385*d5c09012SAndroid Build Coastguard Worker // `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`. 386*d5c09012SAndroid Build Coastguard Worker string name = 1 [ 387*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 388*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference).type = "grafeas.io/Occurrence" 389*d5c09012SAndroid Build Coastguard Worker ]; 390*d5c09012SAndroid Build Coastguard Worker} 391*d5c09012SAndroid Build Coastguard Worker 392*d5c09012SAndroid Build Coastguard Worker// Request to create a new occurrence. 393*d5c09012SAndroid Build Coastguard Workermessage CreateOccurrenceRequest { 394*d5c09012SAndroid Build Coastguard Worker // The name of the project in the form of `projects/[PROJECT_ID]`, under which 395*d5c09012SAndroid Build Coastguard Worker // the occurrence is to be created. 396*d5c09012SAndroid Build Coastguard Worker string parent = 1 [ 397*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 398*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference).type = "grafeas.io/Project" 399*d5c09012SAndroid Build Coastguard Worker ]; 400*d5c09012SAndroid Build Coastguard Worker // The occurrence to create. 401*d5c09012SAndroid Build Coastguard Worker Occurrence occurrence = 2 [(google.api.field_behavior) = REQUIRED]; 402*d5c09012SAndroid Build Coastguard Worker} 403*d5c09012SAndroid Build Coastguard Worker 404*d5c09012SAndroid Build Coastguard Worker// Request to update an occurrence. 405*d5c09012SAndroid Build Coastguard Workermessage UpdateOccurrenceRequest { 406*d5c09012SAndroid Build Coastguard Worker // The name of the occurrence in the form of 407*d5c09012SAndroid Build Coastguard Worker // `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`. 408*d5c09012SAndroid Build Coastguard Worker string name = 1 [ 409*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 410*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference).type = "grafeas.io/Occurrence" 411*d5c09012SAndroid Build Coastguard Worker ]; 412*d5c09012SAndroid Build Coastguard Worker // The updated occurrence. 413*d5c09012SAndroid Build Coastguard Worker Occurrence occurrence = 2 [(google.api.field_behavior) = REQUIRED]; 414*d5c09012SAndroid Build Coastguard Worker // The fields to update. 415*d5c09012SAndroid Build Coastguard Worker google.protobuf.FieldMask update_mask = 3; 416*d5c09012SAndroid Build Coastguard Worker} 417*d5c09012SAndroid Build Coastguard Worker 418*d5c09012SAndroid Build Coastguard Worker// Request to get a note. 419*d5c09012SAndroid Build Coastguard Workermessage GetNoteRequest { 420*d5c09012SAndroid Build Coastguard Worker // The name of the note in the form of 421*d5c09012SAndroid Build Coastguard Worker // `projects/[PROVIDER_ID]/notes/[NOTE_ID]`. 422*d5c09012SAndroid Build Coastguard Worker string name = 1 [ 423*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 424*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference).type = "grafeas.io/Note" 425*d5c09012SAndroid Build Coastguard Worker ]; 426*d5c09012SAndroid Build Coastguard Worker} 427*d5c09012SAndroid Build Coastguard Worker 428*d5c09012SAndroid Build Coastguard Worker// Request to get the note to which the specified occurrence is attached. 429*d5c09012SAndroid Build Coastguard Workermessage GetOccurrenceNoteRequest { 430*d5c09012SAndroid Build Coastguard Worker // The name of the occurrence in the form of 431*d5c09012SAndroid Build Coastguard Worker // `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`. 432*d5c09012SAndroid Build Coastguard Worker string name = 1 [ 433*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 434*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference).type = "grafeas.io/Occurrence" 435*d5c09012SAndroid Build Coastguard Worker ]; 436*d5c09012SAndroid Build Coastguard Worker} 437*d5c09012SAndroid Build Coastguard Worker 438*d5c09012SAndroid Build Coastguard Worker// Request to list notes. 439*d5c09012SAndroid Build Coastguard Workermessage ListNotesRequest { 440*d5c09012SAndroid Build Coastguard Worker // The name of the project to list notes for in the form of 441*d5c09012SAndroid Build Coastguard Worker // `projects/[PROJECT_ID]`. 442*d5c09012SAndroid Build Coastguard Worker string parent = 1 [ 443*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 444*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference).type = "grafeas.io/Project" 445*d5c09012SAndroid Build Coastguard Worker ]; 446*d5c09012SAndroid Build Coastguard Worker 447*d5c09012SAndroid Build Coastguard Worker // The filter expression. 448*d5c09012SAndroid Build Coastguard Worker string filter = 2; 449*d5c09012SAndroid Build Coastguard Worker 450*d5c09012SAndroid Build Coastguard Worker // Number of notes to return in the list. Must be positive. Max allowed page 451*d5c09012SAndroid Build Coastguard Worker // size is 1000. If not specified, page size defaults to 20. 452*d5c09012SAndroid Build Coastguard Worker int32 page_size = 3; 453*d5c09012SAndroid Build Coastguard Worker 454*d5c09012SAndroid Build Coastguard Worker // Token to provide to skip to a particular spot in the list. 455*d5c09012SAndroid Build Coastguard Worker string page_token = 4; 456*d5c09012SAndroid Build Coastguard Worker} 457*d5c09012SAndroid Build Coastguard Worker 458*d5c09012SAndroid Build Coastguard Worker// Response for listing notes. 459*d5c09012SAndroid Build Coastguard Workermessage ListNotesResponse { 460*d5c09012SAndroid Build Coastguard Worker // The notes requested. 461*d5c09012SAndroid Build Coastguard Worker repeated Note notes = 1; 462*d5c09012SAndroid Build Coastguard Worker // The next pagination token in the list response. It should be used as 463*d5c09012SAndroid Build Coastguard Worker // `page_token` for the following request. An empty value means no more 464*d5c09012SAndroid Build Coastguard Worker // results. 465*d5c09012SAndroid Build Coastguard Worker string next_page_token = 2; 466*d5c09012SAndroid Build Coastguard Worker} 467*d5c09012SAndroid Build Coastguard Worker 468*d5c09012SAndroid Build Coastguard Worker// Request to delete a note. 469*d5c09012SAndroid Build Coastguard Workermessage DeleteNoteRequest { 470*d5c09012SAndroid Build Coastguard Worker // The name of the note in the form of 471*d5c09012SAndroid Build Coastguard Worker // `projects/[PROVIDER_ID]/notes/[NOTE_ID]`. 472*d5c09012SAndroid Build Coastguard Worker string name = 1 [ 473*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 474*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference).type = "grafeas.io/Note" 475*d5c09012SAndroid Build Coastguard Worker ]; 476*d5c09012SAndroid Build Coastguard Worker} 477*d5c09012SAndroid Build Coastguard Worker 478*d5c09012SAndroid Build Coastguard Worker// Request to create a new note. 479*d5c09012SAndroid Build Coastguard Workermessage CreateNoteRequest { 480*d5c09012SAndroid Build Coastguard Worker // The name of the project in the form of `projects/[PROJECT_ID]`, under which 481*d5c09012SAndroid Build Coastguard Worker // the note is to be created. 482*d5c09012SAndroid Build Coastguard Worker string parent = 1 [ 483*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 484*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference).type = "grafeas.io/Project" 485*d5c09012SAndroid Build Coastguard Worker ]; 486*d5c09012SAndroid Build Coastguard Worker // The ID to use for this note. 487*d5c09012SAndroid Build Coastguard Worker string note_id = 2 [(google.api.field_behavior) = REQUIRED]; 488*d5c09012SAndroid Build Coastguard Worker // The note to create. 489*d5c09012SAndroid Build Coastguard Worker Note note = 3 [(google.api.field_behavior) = REQUIRED]; 490*d5c09012SAndroid Build Coastguard Worker} 491*d5c09012SAndroid Build Coastguard Worker 492*d5c09012SAndroid Build Coastguard Worker// Request to update a note. 493*d5c09012SAndroid Build Coastguard Workermessage UpdateNoteRequest { 494*d5c09012SAndroid Build Coastguard Worker // The name of the note in the form of 495*d5c09012SAndroid Build Coastguard Worker // `projects/[PROVIDER_ID]/notes/[NOTE_ID]`. 496*d5c09012SAndroid Build Coastguard Worker string name = 1 [ 497*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 498*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference).type = "grafeas.io/Note" 499*d5c09012SAndroid Build Coastguard Worker ]; 500*d5c09012SAndroid Build Coastguard Worker // The updated note. 501*d5c09012SAndroid Build Coastguard Worker Note note = 2 [(google.api.field_behavior) = REQUIRED]; 502*d5c09012SAndroid Build Coastguard Worker // The fields to update. 503*d5c09012SAndroid Build Coastguard Worker google.protobuf.FieldMask update_mask = 3; 504*d5c09012SAndroid Build Coastguard Worker} 505*d5c09012SAndroid Build Coastguard Worker 506*d5c09012SAndroid Build Coastguard Worker// Request to list occurrences for a note. 507*d5c09012SAndroid Build Coastguard Workermessage ListNoteOccurrencesRequest { 508*d5c09012SAndroid Build Coastguard Worker // The name of the note to list occurrences for in the form of 509*d5c09012SAndroid Build Coastguard Worker // `projects/[PROVIDER_ID]/notes/[NOTE_ID]`. 510*d5c09012SAndroid Build Coastguard Worker string name = 1 [ 511*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 512*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference).type = "grafeas.io/Note" 513*d5c09012SAndroid Build Coastguard Worker ]; 514*d5c09012SAndroid Build Coastguard Worker // The filter expression. 515*d5c09012SAndroid Build Coastguard Worker string filter = 2; 516*d5c09012SAndroid Build Coastguard Worker // Number of occurrences to return in the list. 517*d5c09012SAndroid Build Coastguard Worker int32 page_size = 3; 518*d5c09012SAndroid Build Coastguard Worker // Token to provide to skip to a particular spot in the list. 519*d5c09012SAndroid Build Coastguard Worker string page_token = 4; 520*d5c09012SAndroid Build Coastguard Worker} 521*d5c09012SAndroid Build Coastguard Worker 522*d5c09012SAndroid Build Coastguard Worker// Response for listing occurrences for a note. 523*d5c09012SAndroid Build Coastguard Workermessage ListNoteOccurrencesResponse { 524*d5c09012SAndroid Build Coastguard Worker // The occurrences attached to the specified note. 525*d5c09012SAndroid Build Coastguard Worker repeated Occurrence occurrences = 1; 526*d5c09012SAndroid Build Coastguard Worker // Token to provide to skip to a particular spot in the list. 527*d5c09012SAndroid Build Coastguard Worker string next_page_token = 2; 528*d5c09012SAndroid Build Coastguard Worker} 529*d5c09012SAndroid Build Coastguard Worker 530*d5c09012SAndroid Build Coastguard Worker// Request to create notes in batch. 531*d5c09012SAndroid Build Coastguard Workermessage BatchCreateNotesRequest { 532*d5c09012SAndroid Build Coastguard Worker // The name of the project in the form of `projects/[PROJECT_ID]`, under which 533*d5c09012SAndroid Build Coastguard Worker // the notes are to be created. 534*d5c09012SAndroid Build Coastguard Worker string parent = 1 [ 535*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 536*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference).type = "grafeas.io/Project" 537*d5c09012SAndroid Build Coastguard Worker ]; 538*d5c09012SAndroid Build Coastguard Worker 539*d5c09012SAndroid Build Coastguard Worker // The notes to create. Max allowed length is 1000. 540*d5c09012SAndroid Build Coastguard Worker map<string, Note> notes = 2 [(google.api.field_behavior) = REQUIRED]; 541*d5c09012SAndroid Build Coastguard Worker} 542*d5c09012SAndroid Build Coastguard Worker 543*d5c09012SAndroid Build Coastguard Worker// Response for creating notes in batch. 544*d5c09012SAndroid Build Coastguard Workermessage BatchCreateNotesResponse { 545*d5c09012SAndroid Build Coastguard Worker // The notes that were created. 546*d5c09012SAndroid Build Coastguard Worker repeated Note notes = 1; 547*d5c09012SAndroid Build Coastguard Worker} 548*d5c09012SAndroid Build Coastguard Worker 549*d5c09012SAndroid Build Coastguard Worker// Request to create occurrences in batch. 550*d5c09012SAndroid Build Coastguard Workermessage BatchCreateOccurrencesRequest { 551*d5c09012SAndroid Build Coastguard Worker // The name of the project in the form of `projects/[PROJECT_ID]`, under which 552*d5c09012SAndroid Build Coastguard Worker // the occurrences are to be created. 553*d5c09012SAndroid Build Coastguard Worker string parent = 1 [ 554*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 555*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference).type = "grafeas.io/Project" 556*d5c09012SAndroid Build Coastguard Worker ]; 557*d5c09012SAndroid Build Coastguard Worker 558*d5c09012SAndroid Build Coastguard Worker // The occurrences to create. Max allowed length is 1000. 559*d5c09012SAndroid Build Coastguard Worker repeated Occurrence occurrences = 2 [(google.api.field_behavior) = REQUIRED]; 560*d5c09012SAndroid Build Coastguard Worker} 561*d5c09012SAndroid Build Coastguard Worker 562*d5c09012SAndroid Build Coastguard Worker// Response for creating occurrences in batch. 563*d5c09012SAndroid Build Coastguard Workermessage BatchCreateOccurrencesResponse { 564*d5c09012SAndroid Build Coastguard Worker // The occurrences that were created. 565*d5c09012SAndroid Build Coastguard Worker repeated Occurrence occurrences = 1; 566*d5c09012SAndroid Build Coastguard Worker} 567