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 "google/protobuf/timestamp.proto"; 21*d5c09012SAndroid Build Coastguard Workerimport "google/rpc/status.proto"; 22*d5c09012SAndroid Build Coastguard Workerimport "grafeas/v1/common.proto"; 23*d5c09012SAndroid Build Coastguard Worker 24*d5c09012SAndroid Build Coastguard Workeroption go_package = "google.golang.org/genproto/googleapis/grafeas/v1;grafeas"; 25*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true; 26*d5c09012SAndroid Build Coastguard Workeroption java_package = "io.grafeas.v1"; 27*d5c09012SAndroid Build Coastguard Workeroption objc_class_prefix = "GRA"; 28*d5c09012SAndroid Build Coastguard Worker 29*d5c09012SAndroid Build Coastguard Worker// A note that indicates a type of analysis a provider would perform. This note 30*d5c09012SAndroid Build Coastguard Worker// exists in a provider's project. A `Discovery` occurrence is created in a 31*d5c09012SAndroid Build Coastguard Worker// consumer's project at the start of analysis. 32*d5c09012SAndroid Build Coastguard Workermessage DiscoveryNote { 33*d5c09012SAndroid Build Coastguard Worker // Required. Immutable. The kind of analysis that is handled by this 34*d5c09012SAndroid Build Coastguard Worker // discovery. 35*d5c09012SAndroid Build Coastguard Worker grafeas.v1.NoteKind analysis_kind = 1; 36*d5c09012SAndroid Build Coastguard Worker} 37*d5c09012SAndroid Build Coastguard Worker 38*d5c09012SAndroid Build Coastguard Worker// Provides information about the analysis status of a discovered resource. 39*d5c09012SAndroid Build Coastguard Workermessage DiscoveryOccurrence { 40*d5c09012SAndroid Build Coastguard Worker // Whether the resource is continuously analyzed. 41*d5c09012SAndroid Build Coastguard Worker enum ContinuousAnalysis { 42*d5c09012SAndroid Build Coastguard Worker // Unknown. 43*d5c09012SAndroid Build Coastguard Worker CONTINUOUS_ANALYSIS_UNSPECIFIED = 0; 44*d5c09012SAndroid Build Coastguard Worker // The resource is continuously analyzed. 45*d5c09012SAndroid Build Coastguard Worker ACTIVE = 1; 46*d5c09012SAndroid Build Coastguard Worker // The resource is ignored for continuous analysis. 47*d5c09012SAndroid Build Coastguard Worker INACTIVE = 2; 48*d5c09012SAndroid Build Coastguard Worker } 49*d5c09012SAndroid Build Coastguard Worker 50*d5c09012SAndroid Build Coastguard Worker // Whether the resource is continuously analyzed. 51*d5c09012SAndroid Build Coastguard Worker ContinuousAnalysis continuous_analysis = 1; 52*d5c09012SAndroid Build Coastguard Worker 53*d5c09012SAndroid Build Coastguard Worker // Analysis status for a resource. Currently for initial analysis only (not 54*d5c09012SAndroid Build Coastguard Worker // updated in continuous analysis). 55*d5c09012SAndroid Build Coastguard Worker enum AnalysisStatus { 56*d5c09012SAndroid Build Coastguard Worker option allow_alias = true; 57*d5c09012SAndroid Build Coastguard Worker 58*d5c09012SAndroid Build Coastguard Worker // Unknown. 59*d5c09012SAndroid Build Coastguard Worker ANALYSIS_STATUS_UNSPECIFIED = 0; 60*d5c09012SAndroid Build Coastguard Worker // Resource is known but no action has been taken yet. 61*d5c09012SAndroid Build Coastguard Worker PENDING = 1; 62*d5c09012SAndroid Build Coastguard Worker // Resource is being analyzed. 63*d5c09012SAndroid Build Coastguard Worker SCANNING = 2; 64*d5c09012SAndroid Build Coastguard Worker // Analysis has finished successfully. 65*d5c09012SAndroid Build Coastguard Worker FINISHED_SUCCESS = 3; 66*d5c09012SAndroid Build Coastguard Worker // Analysis has completed. 67*d5c09012SAndroid Build Coastguard Worker COMPLETE = 3; 68*d5c09012SAndroid Build Coastguard Worker // Analysis has finished unsuccessfully, the analysis itself is in a bad 69*d5c09012SAndroid Build Coastguard Worker // state. 70*d5c09012SAndroid Build Coastguard Worker FINISHED_FAILED = 4; 71*d5c09012SAndroid Build Coastguard Worker // The resource is known not to be supported. 72*d5c09012SAndroid Build Coastguard Worker FINISHED_UNSUPPORTED = 5; 73*d5c09012SAndroid Build Coastguard Worker } 74*d5c09012SAndroid Build Coastguard Worker 75*d5c09012SAndroid Build Coastguard Worker // The status of discovery for the resource. 76*d5c09012SAndroid Build Coastguard Worker AnalysisStatus analysis_status = 2; 77*d5c09012SAndroid Build Coastguard Worker 78*d5c09012SAndroid Build Coastguard Worker // Indicates which analysis completed successfully. Multiple types of 79*d5c09012SAndroid Build Coastguard Worker // analysis can be performed on a single resource. 80*d5c09012SAndroid Build Coastguard Worker message AnalysisCompleted { 81*d5c09012SAndroid Build Coastguard Worker repeated string analysis_type = 1; 82*d5c09012SAndroid Build Coastguard Worker } 83*d5c09012SAndroid Build Coastguard Worker 84*d5c09012SAndroid Build Coastguard Worker AnalysisCompleted analysis_completed = 7; 85*d5c09012SAndroid Build Coastguard Worker 86*d5c09012SAndroid Build Coastguard Worker // Indicates any errors encountered during analysis of a resource. There 87*d5c09012SAndroid Build Coastguard Worker // could be 0 or more of these errors. 88*d5c09012SAndroid Build Coastguard Worker repeated google.rpc.Status analysis_error = 8; 89*d5c09012SAndroid Build Coastguard Worker 90*d5c09012SAndroid Build Coastguard Worker // When an error is encountered this will contain a LocalizedMessage under 91*d5c09012SAndroid Build Coastguard Worker // details to show to the user. The LocalizedMessage is output only and 92*d5c09012SAndroid Build Coastguard Worker // populated by the API. 93*d5c09012SAndroid Build Coastguard Worker google.rpc.Status analysis_status_error = 3; 94*d5c09012SAndroid Build Coastguard Worker 95*d5c09012SAndroid Build Coastguard Worker // The CPE of the resource being scanned. 96*d5c09012SAndroid Build Coastguard Worker string cpe = 4; 97*d5c09012SAndroid Build Coastguard Worker 98*d5c09012SAndroid Build Coastguard Worker // The last time this resource was scanned. 99*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp last_scan_time = 5; 100*d5c09012SAndroid Build Coastguard Worker 101*d5c09012SAndroid Build Coastguard Worker // The time occurrences related to this discovery occurrence were archived. 102*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp archive_time = 6 103*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OUTPUT_ONLY]; 104*d5c09012SAndroid Build Coastguard Worker 105*d5c09012SAndroid Build Coastguard Worker // The status of an SBOM generation. 106*d5c09012SAndroid Build Coastguard Worker message SBOMStatus { 107*d5c09012SAndroid Build Coastguard Worker // An enum indicating the progress of the SBOM generation. 108*d5c09012SAndroid Build Coastguard Worker enum SBOMState { 109*d5c09012SAndroid Build Coastguard Worker // Default unknown state. 110*d5c09012SAndroid Build Coastguard Worker SBOM_STATE_UNSPECIFIED = 0; 111*d5c09012SAndroid Build Coastguard Worker // SBOM scanning is pending. 112*d5c09012SAndroid Build Coastguard Worker PENDING = 1; 113*d5c09012SAndroid Build Coastguard Worker // SBOM scanning has completed. 114*d5c09012SAndroid Build Coastguard Worker COMPLETE = 2; 115*d5c09012SAndroid Build Coastguard Worker } 116*d5c09012SAndroid Build Coastguard Worker 117*d5c09012SAndroid Build Coastguard Worker // The progress of the SBOM generation. 118*d5c09012SAndroid Build Coastguard Worker SBOMState sbom_state = 1; 119*d5c09012SAndroid Build Coastguard Worker // If there was an error generating an SBOM, this will indicate what that 120*d5c09012SAndroid Build Coastguard Worker // error was. 121*d5c09012SAndroid Build Coastguard Worker string error = 2; 122*d5c09012SAndroid Build Coastguard Worker } 123*d5c09012SAndroid Build Coastguard Worker 124*d5c09012SAndroid Build Coastguard Worker // The status of an SBOM generation. 125*d5c09012SAndroid Build Coastguard Worker SBOMStatus sbom_status = 9; 126*d5c09012SAndroid Build Coastguard Worker} 127