xref: /aosp_15_r20/external/googleapis/grafeas/v1/discovery.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 "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