// Code generated by protoc-gen-go. DO NOT EDIT.
// source: google/cloud/websecurityscanner/v1beta/finding.proto

package websecurityscanner

import (
	fmt "fmt"
	math "math"

	proto "github.com/golang/protobuf/proto"
	_ "google.golang.org/genproto/googleapis/api/annotations"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

// A Finding resource represents a vulnerability instance identified during a
// ScanRun.
type Finding struct {
	// 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-scanner/docs/scan-result-details
	FindingType string `protobuf:"bytes,2,opt,name=finding_type,json=findingType,proto3" json:"finding_type,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"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Finding) Reset()         { *m = Finding{} }
func (m *Finding) String() string { return proto.CompactTextString(m) }
func (*Finding) ProtoMessage()    {}
func (*Finding) Descriptor() ([]byte, []int) {
	return fileDescriptor_a1082375f5efc351, []int{0}
}

func (m *Finding) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Finding.Unmarshal(m, b)
}
func (m *Finding) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Finding.Marshal(b, m, deterministic)
}
func (m *Finding) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Finding.Merge(m, src)
}
func (m *Finding) XXX_Size() int {
	return xxx_messageInfo_Finding.Size(m)
}
func (m *Finding) XXX_DiscardUnknown() {
	xxx_messageInfo_Finding.DiscardUnknown(m)
}

var xxx_messageInfo_Finding proto.InternalMessageInfo

func (m *Finding) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *Finding) GetFindingType() string {
	if m != nil {
		return m.FindingType
	}
	return ""
}

func (m *Finding) GetHttpMethod() string {
	if m != nil {
		return m.HttpMethod
	}
	return ""
}

func (m *Finding) GetFuzzedUrl() string {
	if m != nil {
		return m.FuzzedUrl
	}
	return ""
}

func (m *Finding) GetBody() string {
	if m != nil {
		return m.Body
	}
	return ""
}

func (m *Finding) GetDescription() string {
	if m != nil {
		return m.Description
	}
	return ""
}

func (m *Finding) GetReproductionUrl() string {
	if m != nil {
		return m.ReproductionUrl
	}
	return ""
}

func (m *Finding) GetFrameUrl() string {
	if m != nil {
		return m.FrameUrl
	}
	return ""
}

func (m *Finding) GetFinalUrl() string {
	if m != nil {
		return m.FinalUrl
	}
	return ""
}

func (m *Finding) GetTrackingId() string {
	if m != nil {
		return m.TrackingId
	}
	return ""
}

func (m *Finding) GetForm() *Form {
	if m != nil {
		return m.Form
	}
	return nil
}

func (m *Finding) GetOutdatedLibrary() *OutdatedLibrary {
	if m != nil {
		return m.OutdatedLibrary
	}
	return nil
}

func (m *Finding) GetViolatingResource() *ViolatingResource {
	if m != nil {
		return m.ViolatingResource
	}
	return nil
}

func (m *Finding) GetVulnerableHeaders() *VulnerableHeaders {
	if m != nil {
		return m.VulnerableHeaders
	}
	return nil
}

func (m *Finding) GetVulnerableParameters() *VulnerableParameters {
	if m != nil {
		return m.VulnerableParameters
	}
	return nil
}

func (m *Finding) GetXss() *Xss {
	if m != nil {
		return m.Xss
	}
	return nil
}

func init() {
	proto.RegisterType((*Finding)(nil), "google.cloud.websecurityscanner.v1beta.Finding")
}

func init() {
	proto.RegisterFile("google/cloud/websecurityscanner/v1beta/finding.proto", fileDescriptor_a1082375f5efc351)
}

var fileDescriptor_a1082375f5efc351 = []byte{
	// 542 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x94, 0x6d, 0x6b, 0x13, 0x41,
	0x14, 0x85, 0x49, 0x1b, 0xd3, 0x66, 0x36, 0x9a, 0x74, 0x50, 0x18, 0xaa, 0xd2, 0xe8, 0x87, 0x52,
	0x5f, 0xd8, 0xc5, 0x17, 0x10, 0xdf, 0x40, 0x2a, 0x54, 0x05, 0xc5, 0xb0, 0xd5, 0x5a, 0x24, 0x10,
	0x66, 0x77, 0x6e, 0x36, 0x8b, 0xbb, 0x33, 0xeb, 0xec, 0x6c, 0x34, 0xfd, 0x73, 0x7e, 0xf7, 0x97,
	0xf8, 0x33, 0x64, 0xee, 0x6c, 0x4a, 0x6c, 0x85, 0x26, 0xdf, 0x66, 0xcf, 0xb9, 0xe7, 0x3c, 0x5c,
	0x86, 0x59, 0xf2, 0x38, 0x51, 0x2a, 0xc9, 0x20, 0x88, 0x33, 0x55, 0x89, 0xe0, 0x07, 0x44, 0x25,
	0xc4, 0x95, 0x4e, 0xcd, 0xac, 0x8c, 0xb9, 0x94, 0xa0, 0x83, 0xe9, 0x83, 0x08, 0x0c, 0x0f, 0xc6,
	0xa9, 0x14, 0xa9, 0x4c, 0xfc, 0x42, 0x2b, 0xa3, 0xe8, 0xae, 0x4b, 0xf9, 0x98, 0xf2, 0xcf, 0xa7,
	0x7c, 0x97, 0xda, 0xbe, 0x51, 0xb7, 0xf3, 0x22, 0x0d, 0xb8, 0x94, 0xca, 0x70, 0x93, 0x2a, 0x59,
	0xba, 0x96, 0xed, 0x67, 0xab, 0xb1, 0x47, 0x5c, 0x08, 0x25, 0x5d, 0xf6, 0xf6, 0x9f, 0x16, 0xd9,
	0x38, 0x70, 0x3a, 0xa5, 0xa4, 0x29, 0x79, 0x0e, 0xac, 0xd1, 0x6f, 0xec, 0xb5, 0x43, 0x3c, 0xd3,
	0x5b, 0xa4, 0x33, 0x8f, 0x99, 0x59, 0x01, 0x6c, 0x0d, 0x3d, 0xaf, 0xd6, 0x3e, 0xcd, 0x0a, 0xa0,
	0x3b, 0xc4, 0x9b, 0x18, 0x53, 0x8c, 0x72, 0x30, 0x13, 0x25, 0xd8, 0x3a, 0x4e, 0x10, 0x2b, 0x7d,
	0x40, 0x85, 0xde, 0x24, 0x64, 0x5c, 0x9d, 0x9c, 0x80, 0x18, 0x55, 0x3a, 0x63, 0x4d, 0xf4, 0xdb,
	0x4e, 0xf9, 0xac, 0x33, 0x8b, 0x8d, 0x94, 0x98, 0xb1, 0x4b, 0x0e, 0x6b, 0xcf, 0xb4, 0x4f, 0x3c,
	0x01, 0x65, 0xac, 0xd3, 0xc2, 0x2e, 0xca, 0x5a, 0x8e, 0xba, 0x20, 0xd1, 0x3b, 0xa4, 0xa7, 0xa1,
	0xd0, 0x4a, 0x54, 0xb1, 0xfd, 0xc6, 0xea, 0x0d, 0x1c, 0xeb, 0x2e, 0xea, 0x16, 0x70, 0x9d, 0xb4,
	0xc7, 0x9a, 0xe7, 0x80, 0x33, 0x9b, 0x38, 0xb3, 0x89, 0xc2, 0xdc, 0x4c, 0x25, 0xcf, 0xd0, 0x6c,
	0xd7, 0xa6, 0x15, 0xac, 0xb9, 0x43, 0x3c, 0xa3, 0x79, 0xfc, 0xcd, 0xae, 0x9f, 0x0a, 0x46, 0xdc,
	0x6a, 0x73, 0xe9, 0x9d, 0xa0, 0xaf, 0x48, 0x73, 0xac, 0x74, 0xce, 0x7a, 0xfd, 0xc6, 0x9e, 0xf7,
	0xf0, 0xbe, 0xbf, 0xdc, 0x7d, 0xfa, 0x07, 0x4a, 0xe7, 0x21, 0x26, 0x69, 0x44, 0x7a, 0xaa, 0x32,
	0x82, 0x1b, 0x10, 0xa3, 0x2c, 0x8d, 0x34, 0xd7, 0x33, 0xe6, 0x61, 0xdb, 0x93, 0x65, 0xdb, 0x3e,
	0xd6, 0xf9, 0xf7, 0x2e, 0x1e, 0x76, 0xd5, 0xbf, 0x02, 0x9d, 0x10, 0x3a, 0x4d, 0x55, 0xc6, 0x8d,
	0xdd, 0x43, 0x43, 0xa9, 0x2a, 0x1d, 0x03, 0xeb, 0x20, 0xe5, 0xe9, 0xb2, 0x94, 0xa3, 0x79, 0x43,
	0x58, 0x17, 0x84, 0x5b, 0xd3, 0xb3, 0x12, 0x92, 0xaa, 0x4c, 0x82, 0xe6, 0x51, 0x06, 0xa3, 0x09,
	0x70, 0x01, 0xba, 0x64, 0xdd, 0x15, 0x49, 0xa7, 0x0d, 0x6f, 0x5d, 0x41, 0xb8, 0x35, 0x3d, 0x2b,
	0xd1, 0xef, 0xe4, 0xda, 0x02, 0xa9, 0xe0, 0xf6, 0x3e, 0x8d, 0x85, 0x5d, 0x46, 0xd8, 0x8b, 0xd5,
	0x61, 0x83, 0xd3, 0x8e, 0xf0, 0xea, 0xf4, 0x3f, 0x2a, 0x7d, 0x49, 0xd6, 0x7f, 0x96, 0x25, 0xbb,
	0x82, 0x80, 0x7b, 0xcb, 0x02, 0x8e, 0xcb, 0x32, 0xb4, 0xb9, 0xfd, 0x5f, 0x0d, 0x72, 0x37, 0x56,
	0xf9, 0x92, 0xb9, 0xfd, 0x4e, 0xfd, 0x2c, 0x07, 0xf6, 0x9d, 0x0e, 0x1a, 0x5f, 0x8f, 0xeb, 0x5c,
	0xa2, 0x32, 0x2e, 0x13, 0x5f, 0xe9, 0x24, 0x48, 0x40, 0xe2, 0x2b, 0x0e, 0x9c, 0xc5, 0x8b, 0xb4,
	0xbc, 0xe8, 0x27, 0xf0, 0xfc, 0xbc, 0xf3, 0x7b, 0x6d, 0xf7, 0x0d, 0xe6, 0x87, 0xaf, 0x6d, 0x76,
	0xf8, 0x05, 0xa2, 0xc3, 0x7a, 0xe2, 0xd0, 0x4d, 0x0c, 0x8f, 0x30, 0x1b, 0xb5, 0x90, 0xf6, 0xe8,
	0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x55, 0xb5, 0xe6, 0x89, 0xed, 0x04, 0x00, 0x00,
}
