blob: 808347d5e405007911a9f4728891f7c23ce0d568 [file] [edit]
// Copyright 2025 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.36.11
// protoc v6.33.2
// source: google/cloud/websecurityscanner/v1/finding.proto
package websecurityscannerpb
import (
reflect "reflect"
sync "sync"
unsafe "unsafe"
_ "google.golang.org/genproto/googleapis/api/annotations"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// The severity level of a vulnerability.
type Finding_Severity int32
const (
// No severity specified. The default value.
Finding_SEVERITY_UNSPECIFIED Finding_Severity = 0
// Critical severity.
Finding_CRITICAL Finding_Severity = 1
// High severity.
Finding_HIGH Finding_Severity = 2
// Medium severity.
Finding_MEDIUM Finding_Severity = 3
// Low severity.
Finding_LOW Finding_Severity = 4
)
// Enum value maps for Finding_Severity.
var (
Finding_Severity_name = map[int32]string{
0: "SEVERITY_UNSPECIFIED",
1: "CRITICAL",
2: "HIGH",
3: "MEDIUM",
4: "LOW",
}
Finding_Severity_value = map[string]int32{
"SEVERITY_UNSPECIFIED": 0,
"CRITICAL": 1,
"HIGH": 2,
"MEDIUM": 3,
"LOW": 4,
}
)
func (x Finding_Severity) Enum() *Finding_Severity {
p := new(Finding_Severity)
*p = x
return p
}
func (x Finding_Severity) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Finding_Severity) Descriptor() protoreflect.EnumDescriptor {
return file_google_cloud_websecurityscanner_v1_finding_proto_enumTypes[0].Descriptor()
}
func (Finding_Severity) Type() protoreflect.EnumType {
return &file_google_cloud_websecurityscanner_v1_finding_proto_enumTypes[0]
}
func (x Finding_Severity) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Finding_Severity.Descriptor instead.
func (Finding_Severity) EnumDescriptor() ([]byte, []int) {
return file_google_cloud_websecurityscanner_v1_finding_proto_rawDescGZIP(), []int{0, 0}
}
// A Finding resource represents a vulnerability instance identified during a
// ScanRun.
type Finding struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Output only. The resource name of the Finding. The name follows the format of
// 'projects/{projectId}/scanConfigs/{scanConfigId}/scanruns/{scanRunId}/findings/{findingId}'.
// The finding IDs are generated by the system.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Output only. The type of the Finding.
// Detailed and up-to-date information on findings can be found here:
// https://cloud.google.com/security-command-center/docs/how-to-remediate-web-security-scanner-findings
FindingType string `protobuf:"bytes,2,opt,name=finding_type,json=findingType,proto3" json:"finding_type,omitempty"`
// Output only. The severity level of the reported vulnerability.
Severity Finding_Severity `protobuf:"varint,17,opt,name=severity,proto3,enum=google.cloud.websecurityscanner.v1.Finding_Severity" json:"severity,omitempty"`
// Output only. The http method of the request that triggered the vulnerability, in
// uppercase.
HttpMethod string `protobuf:"bytes,3,opt,name=http_method,json=httpMethod,proto3" json:"http_method,omitempty"`
// Output only. The URL produced by the server-side fuzzer and used in the request that
// triggered the vulnerability.
FuzzedUrl string `protobuf:"bytes,4,opt,name=fuzzed_url,json=fuzzedUrl,proto3" json:"fuzzed_url,omitempty"`
// Output only. The body of the request that triggered the vulnerability.
Body string `protobuf:"bytes,5,opt,name=body,proto3" json:"body,omitempty"`
// Output only. The description of the vulnerability.
Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"`
// Output only. The URL containing human-readable payload that user can leverage to
// reproduce the vulnerability.
ReproductionUrl string `protobuf:"bytes,7,opt,name=reproduction_url,json=reproductionUrl,proto3" json:"reproduction_url,omitempty"`
// Output only. If the vulnerability was originated from nested IFrame, the immediate
// parent IFrame is reported.
FrameUrl string `protobuf:"bytes,8,opt,name=frame_url,json=frameUrl,proto3" json:"frame_url,omitempty"`
// Output only. The URL where the browser lands when the vulnerability is detected.
FinalUrl string `protobuf:"bytes,9,opt,name=final_url,json=finalUrl,proto3" json:"final_url,omitempty"`
// Output only. The tracking ID uniquely identifies a vulnerability instance across
// multiple ScanRuns.
TrackingId string `protobuf:"bytes,10,opt,name=tracking_id,json=trackingId,proto3" json:"tracking_id,omitempty"`
// Output only. An addon containing information reported for a vulnerability with an HTML
// form, if any.
Form *Form `protobuf:"bytes,16,opt,name=form,proto3" json:"form,omitempty"`
// Output only. An addon containing information about outdated libraries.
OutdatedLibrary *OutdatedLibrary `protobuf:"bytes,11,opt,name=outdated_library,json=outdatedLibrary,proto3" json:"outdated_library,omitempty"`
// Output only. An addon containing detailed information regarding any resource causing the
// vulnerability such as JavaScript sources, image, audio files, etc.
ViolatingResource *ViolatingResource `protobuf:"bytes,12,opt,name=violating_resource,json=violatingResource,proto3" json:"violating_resource,omitempty"`
// Output only. An addon containing information about vulnerable or missing HTTP headers.
VulnerableHeaders *VulnerableHeaders `protobuf:"bytes,15,opt,name=vulnerable_headers,json=vulnerableHeaders,proto3" json:"vulnerable_headers,omitempty"`
// Output only. An addon containing information about request parameters which were found
// to be vulnerable.
VulnerableParameters *VulnerableParameters `protobuf:"bytes,13,opt,name=vulnerable_parameters,json=vulnerableParameters,proto3" json:"vulnerable_parameters,omitempty"`
// Output only. An addon containing information reported for an XSS, if any.
Xss *Xss `protobuf:"bytes,14,opt,name=xss,proto3" json:"xss,omitempty"`
// Output only. An addon containing information reported for an XXE, if any.
Xxe *Xxe `protobuf:"bytes,18,opt,name=xxe,proto3" json:"xxe,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *Finding) Reset() {
*x = Finding{}
mi := &file_google_cloud_websecurityscanner_v1_finding_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *Finding) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Finding) ProtoMessage() {}
func (x *Finding) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_websecurityscanner_v1_finding_proto_msgTypes[0]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Finding.ProtoReflect.Descriptor instead.
func (*Finding) Descriptor() ([]byte, []int) {
return file_google_cloud_websecurityscanner_v1_finding_proto_rawDescGZIP(), []int{0}
}
func (x *Finding) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Finding) GetFindingType() string {
if x != nil {
return x.FindingType
}
return ""
}
func (x *Finding) GetSeverity() Finding_Severity {
if x != nil {
return x.Severity
}
return Finding_SEVERITY_UNSPECIFIED
}
func (x *Finding) GetHttpMethod() string {
if x != nil {
return x.HttpMethod
}
return ""
}
func (x *Finding) GetFuzzedUrl() string {
if x != nil {
return x.FuzzedUrl
}
return ""
}
func (x *Finding) GetBody() string {
if x != nil {
return x.Body
}
return ""
}
func (x *Finding) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *Finding) GetReproductionUrl() string {
if x != nil {
return x.ReproductionUrl
}
return ""
}
func (x *Finding) GetFrameUrl() string {
if x != nil {
return x.FrameUrl
}
return ""
}
func (x *Finding) GetFinalUrl() string {
if x != nil {
return x.FinalUrl
}
return ""
}
func (x *Finding) GetTrackingId() string {
if x != nil {
return x.TrackingId
}
return ""
}
func (x *Finding) GetForm() *Form {
if x != nil {
return x.Form
}
return nil
}
func (x *Finding) GetOutdatedLibrary() *OutdatedLibrary {
if x != nil {
return x.OutdatedLibrary
}
return nil
}
func (x *Finding) GetViolatingResource() *ViolatingResource {
if x != nil {
return x.ViolatingResource
}
return nil
}
func (x *Finding) GetVulnerableHeaders() *VulnerableHeaders {
if x != nil {
return x.VulnerableHeaders
}
return nil
}
func (x *Finding) GetVulnerableParameters() *VulnerableParameters {
if x != nil {
return x.VulnerableParameters
}
return nil
}
func (x *Finding) GetXss() *Xss {
if x != nil {
return x.Xss
}
return nil
}
func (x *Finding) GetXxe() *Xxe {
if x != nil {
return x.Xxe
}
return nil
}
var File_google_cloud_websecurityscanner_v1_finding_proto protoreflect.FileDescriptor
const file_google_cloud_websecurityscanner_v1_finding_proto_rawDesc = "" +
"\n" +
"0google/cloud/websecurityscanner/v1/finding.proto\x12\"google.cloud.websecurityscanner.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a6google/cloud/websecurityscanner/v1/finding_addon.proto\"\xc1\t\n" +
"\aFinding\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\x12!\n" +
"\ffinding_type\x18\x02 \x01(\tR\vfindingType\x12U\n" +
"\bseverity\x18\x11 \x01(\x0e24.google.cloud.websecurityscanner.v1.Finding.SeverityB\x03\xe0A\x03R\bseverity\x12\x1f\n" +
"\vhttp_method\x18\x03 \x01(\tR\n" +
"httpMethod\x12\x1d\n" +
"\n" +
"fuzzed_url\x18\x04 \x01(\tR\tfuzzedUrl\x12\x12\n" +
"\x04body\x18\x05 \x01(\tR\x04body\x12 \n" +
"\vdescription\x18\x06 \x01(\tR\vdescription\x12)\n" +
"\x10reproduction_url\x18\a \x01(\tR\x0freproductionUrl\x12\x1b\n" +
"\tframe_url\x18\b \x01(\tR\bframeUrl\x12\x1b\n" +
"\tfinal_url\x18\t \x01(\tR\bfinalUrl\x12\x1f\n" +
"\vtracking_id\x18\n" +
" \x01(\tR\n" +
"trackingId\x12<\n" +
"\x04form\x18\x10 \x01(\v2(.google.cloud.websecurityscanner.v1.FormR\x04form\x12^\n" +
"\x10outdated_library\x18\v \x01(\v23.google.cloud.websecurityscanner.v1.OutdatedLibraryR\x0foutdatedLibrary\x12d\n" +
"\x12violating_resource\x18\f \x01(\v25.google.cloud.websecurityscanner.v1.ViolatingResourceR\x11violatingResource\x12d\n" +
"\x12vulnerable_headers\x18\x0f \x01(\v25.google.cloud.websecurityscanner.v1.VulnerableHeadersR\x11vulnerableHeaders\x12m\n" +
"\x15vulnerable_parameters\x18\r \x01(\v28.google.cloud.websecurityscanner.v1.VulnerableParametersR\x14vulnerableParameters\x129\n" +
"\x03xss\x18\x0e \x01(\v2'.google.cloud.websecurityscanner.v1.XssR\x03xss\x12>\n" +
"\x03xxe\x18\x12 \x01(\v2'.google.cloud.websecurityscanner.v1.XxeB\x03\xe0A\x03R\x03xxe\"Q\n" +
"\bSeverity\x12\x18\n" +
"\x14SEVERITY_UNSPECIFIED\x10\x00\x12\f\n" +
"\bCRITICAL\x10\x01\x12\b\n" +
"\x04HIGH\x10\x02\x12\n" +
"\n" +
"\x06MEDIUM\x10\x03\x12\a\n" +
"\x03LOW\x10\x04:\x84\x01\xeaA\x80\x01\n" +
")websecurityscanner.googleapis.com/Finding\x12Sprojects/{project}/scanConfigs/{scan_config}/scanRuns/{scan_run}/findings/{finding}B\x82\x02\n" +
"&com.google.cloud.websecurityscanner.v1B\fFindingProtoP\x01ZVcloud.google.com/go/websecurityscanner/apiv1/websecurityscannerpb;websecurityscannerpb\xaa\x02\"Google.Cloud.WebSecurityScanner.V1\xca\x02\"Google\\Cloud\\WebSecurityScanner\\V1\xea\x02%Google::Cloud::WebSecurityScanner::V1b\x06proto3"
var (
file_google_cloud_websecurityscanner_v1_finding_proto_rawDescOnce sync.Once
file_google_cloud_websecurityscanner_v1_finding_proto_rawDescData []byte
)
func file_google_cloud_websecurityscanner_v1_finding_proto_rawDescGZIP() []byte {
file_google_cloud_websecurityscanner_v1_finding_proto_rawDescOnce.Do(func() {
file_google_cloud_websecurityscanner_v1_finding_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_google_cloud_websecurityscanner_v1_finding_proto_rawDesc), len(file_google_cloud_websecurityscanner_v1_finding_proto_rawDesc)))
})
return file_google_cloud_websecurityscanner_v1_finding_proto_rawDescData
}
var file_google_cloud_websecurityscanner_v1_finding_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_google_cloud_websecurityscanner_v1_finding_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_google_cloud_websecurityscanner_v1_finding_proto_goTypes = []any{
(Finding_Severity)(0), // 0: google.cloud.websecurityscanner.v1.Finding.Severity
(*Finding)(nil), // 1: google.cloud.websecurityscanner.v1.Finding
(*Form)(nil), // 2: google.cloud.websecurityscanner.v1.Form
(*OutdatedLibrary)(nil), // 3: google.cloud.websecurityscanner.v1.OutdatedLibrary
(*ViolatingResource)(nil), // 4: google.cloud.websecurityscanner.v1.ViolatingResource
(*VulnerableHeaders)(nil), // 5: google.cloud.websecurityscanner.v1.VulnerableHeaders
(*VulnerableParameters)(nil), // 6: google.cloud.websecurityscanner.v1.VulnerableParameters
(*Xss)(nil), // 7: google.cloud.websecurityscanner.v1.Xss
(*Xxe)(nil), // 8: google.cloud.websecurityscanner.v1.Xxe
}
var file_google_cloud_websecurityscanner_v1_finding_proto_depIdxs = []int32{
0, // 0: google.cloud.websecurityscanner.v1.Finding.severity:type_name -> google.cloud.websecurityscanner.v1.Finding.Severity
2, // 1: google.cloud.websecurityscanner.v1.Finding.form:type_name -> google.cloud.websecurityscanner.v1.Form
3, // 2: google.cloud.websecurityscanner.v1.Finding.outdated_library:type_name -> google.cloud.websecurityscanner.v1.OutdatedLibrary
4, // 3: google.cloud.websecurityscanner.v1.Finding.violating_resource:type_name -> google.cloud.websecurityscanner.v1.ViolatingResource
5, // 4: google.cloud.websecurityscanner.v1.Finding.vulnerable_headers:type_name -> google.cloud.websecurityscanner.v1.VulnerableHeaders
6, // 5: google.cloud.websecurityscanner.v1.Finding.vulnerable_parameters:type_name -> google.cloud.websecurityscanner.v1.VulnerableParameters
7, // 6: google.cloud.websecurityscanner.v1.Finding.xss:type_name -> google.cloud.websecurityscanner.v1.Xss
8, // 7: google.cloud.websecurityscanner.v1.Finding.xxe:type_name -> google.cloud.websecurityscanner.v1.Xxe
8, // [8:8] is the sub-list for method output_type
8, // [8:8] is the sub-list for method input_type
8, // [8:8] is the sub-list for extension type_name
8, // [8:8] is the sub-list for extension extendee
0, // [0:8] is the sub-list for field type_name
}
func init() { file_google_cloud_websecurityscanner_v1_finding_proto_init() }
func file_google_cloud_websecurityscanner_v1_finding_proto_init() {
if File_google_cloud_websecurityscanner_v1_finding_proto != nil {
return
}
file_google_cloud_websecurityscanner_v1_finding_addon_proto_init()
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: unsafe.Slice(unsafe.StringData(file_google_cloud_websecurityscanner_v1_finding_proto_rawDesc), len(file_google_cloud_websecurityscanner_v1_finding_proto_rawDesc)),
NumEnums: 1,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_google_cloud_websecurityscanner_v1_finding_proto_goTypes,
DependencyIndexes: file_google_cloud_websecurityscanner_v1_finding_proto_depIdxs,
EnumInfos: file_google_cloud_websecurityscanner_v1_finding_proto_enumTypes,
MessageInfos: file_google_cloud_websecurityscanner_v1_finding_proto_msgTypes,
}.Build()
File_google_cloud_websecurityscanner_v1_finding_proto = out.File
file_google_cloud_websecurityscanner_v1_finding_proto_goTypes = nil
file_google_cloud_websecurityscanner_v1_finding_proto_depIdxs = nil
}