1// Copyright 2019 Google LLC.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14//
15
16// Code generated by protoc-gen-go. DO NOT EDIT.
17// versions:
18// 	protoc-gen-go v1.22.0
19// 	protoc        v3.11.2
20// source: google/cloud/webrisk/v1beta1/webrisk.proto
21
22package webrisk
23
24import (
25	context "context"
26	reflect "reflect"
27	sync "sync"
28
29	proto "github.com/golang/protobuf/proto"
30	timestamp "github.com/golang/protobuf/ptypes/timestamp"
31	_ "google.golang.org/genproto/googleapis/api/annotations"
32	grpc "google.golang.org/grpc"
33	codes "google.golang.org/grpc/codes"
34	status "google.golang.org/grpc/status"
35	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
36	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
37)
38
39const (
40	// Verify that this generated code is sufficiently up-to-date.
41	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
42	// Verify that runtime/protoimpl is sufficiently up-to-date.
43	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
44)
45
46// This is a compile-time assertion that a sufficiently up-to-date version
47// of the legacy proto package is being used.
48const _ = proto.ProtoPackageIsVersion4
49
50// The type of threat. This maps dirrectly to the threat list a threat may
51// belong to.
52type ThreatType int32
53
54const (
55	// Unknown.
56	ThreatType_THREAT_TYPE_UNSPECIFIED ThreatType = 0
57	// Malware targeting any platform.
58	ThreatType_MALWARE ThreatType = 1
59	// Social engineering targeting any platform.
60	ThreatType_SOCIAL_ENGINEERING ThreatType = 2
61	// Unwanted software targeting any platform.
62	ThreatType_UNWANTED_SOFTWARE ThreatType = 3
63)
64
65// Enum value maps for ThreatType.
66var (
67	ThreatType_name = map[int32]string{
68		0: "THREAT_TYPE_UNSPECIFIED",
69		1: "MALWARE",
70		2: "SOCIAL_ENGINEERING",
71		3: "UNWANTED_SOFTWARE",
72	}
73	ThreatType_value = map[string]int32{
74		"THREAT_TYPE_UNSPECIFIED": 0,
75		"MALWARE":                 1,
76		"SOCIAL_ENGINEERING":      2,
77		"UNWANTED_SOFTWARE":       3,
78	}
79)
80
81func (x ThreatType) Enum() *ThreatType {
82	p := new(ThreatType)
83	*p = x
84	return p
85}
86
87func (x ThreatType) String() string {
88	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
89}
90
91func (ThreatType) Descriptor() protoreflect.EnumDescriptor {
92	return file_google_cloud_webrisk_v1beta1_webrisk_proto_enumTypes[0].Descriptor()
93}
94
95func (ThreatType) Type() protoreflect.EnumType {
96	return &file_google_cloud_webrisk_v1beta1_webrisk_proto_enumTypes[0]
97}
98
99func (x ThreatType) Number() protoreflect.EnumNumber {
100	return protoreflect.EnumNumber(x)
101}
102
103// Deprecated: Use ThreatType.Descriptor instead.
104func (ThreatType) EnumDescriptor() ([]byte, []int) {
105	return file_google_cloud_webrisk_v1beta1_webrisk_proto_rawDescGZIP(), []int{0}
106}
107
108// The ways in which threat entry sets can be compressed.
109type CompressionType int32
110
111const (
112	// Unknown.
113	CompressionType_COMPRESSION_TYPE_UNSPECIFIED CompressionType = 0
114	// Raw, uncompressed data.
115	CompressionType_RAW CompressionType = 1
116	// Rice-Golomb encoded data.
117	CompressionType_RICE CompressionType = 2
118)
119
120// Enum value maps for CompressionType.
121var (
122	CompressionType_name = map[int32]string{
123		0: "COMPRESSION_TYPE_UNSPECIFIED",
124		1: "RAW",
125		2: "RICE",
126	}
127	CompressionType_value = map[string]int32{
128		"COMPRESSION_TYPE_UNSPECIFIED": 0,
129		"RAW":                          1,
130		"RICE":                         2,
131	}
132)
133
134func (x CompressionType) Enum() *CompressionType {
135	p := new(CompressionType)
136	*p = x
137	return p
138}
139
140func (x CompressionType) String() string {
141	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
142}
143
144func (CompressionType) Descriptor() protoreflect.EnumDescriptor {
145	return file_google_cloud_webrisk_v1beta1_webrisk_proto_enumTypes[1].Descriptor()
146}
147
148func (CompressionType) Type() protoreflect.EnumType {
149	return &file_google_cloud_webrisk_v1beta1_webrisk_proto_enumTypes[1]
150}
151
152func (x CompressionType) Number() protoreflect.EnumNumber {
153	return protoreflect.EnumNumber(x)
154}
155
156// Deprecated: Use CompressionType.Descriptor instead.
157func (CompressionType) EnumDescriptor() ([]byte, []int) {
158	return file_google_cloud_webrisk_v1beta1_webrisk_proto_rawDescGZIP(), []int{1}
159}
160
161// The type of response sent to the client.
162type ComputeThreatListDiffResponse_ResponseType int32
163
164const (
165	// Unknown.
166	ComputeThreatListDiffResponse_RESPONSE_TYPE_UNSPECIFIED ComputeThreatListDiffResponse_ResponseType = 0
167	// Partial updates are applied to the client's existing local database.
168	ComputeThreatListDiffResponse_DIFF ComputeThreatListDiffResponse_ResponseType = 1
169	// Full updates resets the client's entire local database. This means
170	// that either the client had no state, was seriously out-of-date,
171	// or the client is believed to be corrupt.
172	ComputeThreatListDiffResponse_RESET ComputeThreatListDiffResponse_ResponseType = 2
173)
174
175// Enum value maps for ComputeThreatListDiffResponse_ResponseType.
176var (
177	ComputeThreatListDiffResponse_ResponseType_name = map[int32]string{
178		0: "RESPONSE_TYPE_UNSPECIFIED",
179		1: "DIFF",
180		2: "RESET",
181	}
182	ComputeThreatListDiffResponse_ResponseType_value = map[string]int32{
183		"RESPONSE_TYPE_UNSPECIFIED": 0,
184		"DIFF":                      1,
185		"RESET":                     2,
186	}
187)
188
189func (x ComputeThreatListDiffResponse_ResponseType) Enum() *ComputeThreatListDiffResponse_ResponseType {
190	p := new(ComputeThreatListDiffResponse_ResponseType)
191	*p = x
192	return p
193}
194
195func (x ComputeThreatListDiffResponse_ResponseType) String() string {
196	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
197}
198
199func (ComputeThreatListDiffResponse_ResponseType) Descriptor() protoreflect.EnumDescriptor {
200	return file_google_cloud_webrisk_v1beta1_webrisk_proto_enumTypes[2].Descriptor()
201}
202
203func (ComputeThreatListDiffResponse_ResponseType) Type() protoreflect.EnumType {
204	return &file_google_cloud_webrisk_v1beta1_webrisk_proto_enumTypes[2]
205}
206
207func (x ComputeThreatListDiffResponse_ResponseType) Number() protoreflect.EnumNumber {
208	return protoreflect.EnumNumber(x)
209}
210
211// Deprecated: Use ComputeThreatListDiffResponse_ResponseType.Descriptor instead.
212func (ComputeThreatListDiffResponse_ResponseType) EnumDescriptor() ([]byte, []int) {
213	return file_google_cloud_webrisk_v1beta1_webrisk_proto_rawDescGZIP(), []int{1, 0}
214}
215
216// Describes an API diff request.
217type ComputeThreatListDiffRequest struct {
218	state         protoimpl.MessageState
219	sizeCache     protoimpl.SizeCache
220	unknownFields protoimpl.UnknownFields
221
222	// The ThreatList to update.
223	ThreatType ThreatType `protobuf:"varint,1,opt,name=threat_type,json=threatType,proto3,enum=google.cloud.webrisk.v1beta1.ThreatType" json:"threat_type,omitempty"`
224	// The current version token of the client for the requested list (the
225	// client version that was received from the last successful diff).
226	VersionToken []byte `protobuf:"bytes,2,opt,name=version_token,json=versionToken,proto3" json:"version_token,omitempty"`
227	// Required. The constraints associated with this request.
228	Constraints *ComputeThreatListDiffRequest_Constraints `protobuf:"bytes,3,opt,name=constraints,proto3" json:"constraints,omitempty"`
229}
230
231func (x *ComputeThreatListDiffRequest) Reset() {
232	*x = ComputeThreatListDiffRequest{}
233	if protoimpl.UnsafeEnabled {
234		mi := &file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[0]
235		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
236		ms.StoreMessageInfo(mi)
237	}
238}
239
240func (x *ComputeThreatListDiffRequest) String() string {
241	return protoimpl.X.MessageStringOf(x)
242}
243
244func (*ComputeThreatListDiffRequest) ProtoMessage() {}
245
246func (x *ComputeThreatListDiffRequest) ProtoReflect() protoreflect.Message {
247	mi := &file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[0]
248	if protoimpl.UnsafeEnabled && x != nil {
249		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
250		if ms.LoadMessageInfo() == nil {
251			ms.StoreMessageInfo(mi)
252		}
253		return ms
254	}
255	return mi.MessageOf(x)
256}
257
258// Deprecated: Use ComputeThreatListDiffRequest.ProtoReflect.Descriptor instead.
259func (*ComputeThreatListDiffRequest) Descriptor() ([]byte, []int) {
260	return file_google_cloud_webrisk_v1beta1_webrisk_proto_rawDescGZIP(), []int{0}
261}
262
263func (x *ComputeThreatListDiffRequest) GetThreatType() ThreatType {
264	if x != nil {
265		return x.ThreatType
266	}
267	return ThreatType_THREAT_TYPE_UNSPECIFIED
268}
269
270func (x *ComputeThreatListDiffRequest) GetVersionToken() []byte {
271	if x != nil {
272		return x.VersionToken
273	}
274	return nil
275}
276
277func (x *ComputeThreatListDiffRequest) GetConstraints() *ComputeThreatListDiffRequest_Constraints {
278	if x != nil {
279		return x.Constraints
280	}
281	return nil
282}
283
284type ComputeThreatListDiffResponse struct {
285	state         protoimpl.MessageState
286	sizeCache     protoimpl.SizeCache
287	unknownFields protoimpl.UnknownFields
288
289	// The type of response. This may indicate that an action must be taken by the
290	// client when the response is received.
291	ResponseType ComputeThreatListDiffResponse_ResponseType `protobuf:"varint,4,opt,name=response_type,json=responseType,proto3,enum=google.cloud.webrisk.v1beta1.ComputeThreatListDiffResponse_ResponseType" json:"response_type,omitempty"`
292	// A set of entries to add to a local threat type's list.
293	Additions *ThreatEntryAdditions `protobuf:"bytes,5,opt,name=additions,proto3" json:"additions,omitempty"`
294	// A set of entries to remove from a local threat type's list.
295	// This field may be empty.
296	Removals *ThreatEntryRemovals `protobuf:"bytes,6,opt,name=removals,proto3" json:"removals,omitempty"`
297	// The new opaque client version token.
298	NewVersionToken []byte `protobuf:"bytes,7,opt,name=new_version_token,json=newVersionToken,proto3" json:"new_version_token,omitempty"`
299	// The expected SHA256 hash of the client state; that is, of the sorted list
300	// of all hashes present in the database after applying the provided diff.
301	// If the client state doesn't match the expected state, the client must
302	// disregard this diff and retry later.
303	Checksum *ComputeThreatListDiffResponse_Checksum `protobuf:"bytes,8,opt,name=checksum,proto3" json:"checksum,omitempty"`
304	// The soonest the client should wait before issuing any diff
305	// request. Querying sooner is unlikely to produce a meaningful diff.
306	// Waiting longer is acceptable considering the use case.
307	// If this field is not set clients may update as soon as they want.
308	RecommendedNextDiff *timestamp.Timestamp `protobuf:"bytes,2,opt,name=recommended_next_diff,json=recommendedNextDiff,proto3" json:"recommended_next_diff,omitempty"`
309}
310
311func (x *ComputeThreatListDiffResponse) Reset() {
312	*x = ComputeThreatListDiffResponse{}
313	if protoimpl.UnsafeEnabled {
314		mi := &file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[1]
315		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
316		ms.StoreMessageInfo(mi)
317	}
318}
319
320func (x *ComputeThreatListDiffResponse) String() string {
321	return protoimpl.X.MessageStringOf(x)
322}
323
324func (*ComputeThreatListDiffResponse) ProtoMessage() {}
325
326func (x *ComputeThreatListDiffResponse) ProtoReflect() protoreflect.Message {
327	mi := &file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[1]
328	if protoimpl.UnsafeEnabled && x != nil {
329		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
330		if ms.LoadMessageInfo() == nil {
331			ms.StoreMessageInfo(mi)
332		}
333		return ms
334	}
335	return mi.MessageOf(x)
336}
337
338// Deprecated: Use ComputeThreatListDiffResponse.ProtoReflect.Descriptor instead.
339func (*ComputeThreatListDiffResponse) Descriptor() ([]byte, []int) {
340	return file_google_cloud_webrisk_v1beta1_webrisk_proto_rawDescGZIP(), []int{1}
341}
342
343func (x *ComputeThreatListDiffResponse) GetResponseType() ComputeThreatListDiffResponse_ResponseType {
344	if x != nil {
345		return x.ResponseType
346	}
347	return ComputeThreatListDiffResponse_RESPONSE_TYPE_UNSPECIFIED
348}
349
350func (x *ComputeThreatListDiffResponse) GetAdditions() *ThreatEntryAdditions {
351	if x != nil {
352		return x.Additions
353	}
354	return nil
355}
356
357func (x *ComputeThreatListDiffResponse) GetRemovals() *ThreatEntryRemovals {
358	if x != nil {
359		return x.Removals
360	}
361	return nil
362}
363
364func (x *ComputeThreatListDiffResponse) GetNewVersionToken() []byte {
365	if x != nil {
366		return x.NewVersionToken
367	}
368	return nil
369}
370
371func (x *ComputeThreatListDiffResponse) GetChecksum() *ComputeThreatListDiffResponse_Checksum {
372	if x != nil {
373		return x.Checksum
374	}
375	return nil
376}
377
378func (x *ComputeThreatListDiffResponse) GetRecommendedNextDiff() *timestamp.Timestamp {
379	if x != nil {
380		return x.RecommendedNextDiff
381	}
382	return nil
383}
384
385// Request to check URI entries against threatLists.
386type SearchUrisRequest struct {
387	state         protoimpl.MessageState
388	sizeCache     protoimpl.SizeCache
389	unknownFields protoimpl.UnknownFields
390
391	// Required. The URI to be checked for matches.
392	Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
393	// Required. The ThreatLists to search in.
394	ThreatTypes []ThreatType `protobuf:"varint,2,rep,packed,name=threat_types,json=threatTypes,proto3,enum=google.cloud.webrisk.v1beta1.ThreatType" json:"threat_types,omitempty"`
395}
396
397func (x *SearchUrisRequest) Reset() {
398	*x = SearchUrisRequest{}
399	if protoimpl.UnsafeEnabled {
400		mi := &file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[2]
401		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
402		ms.StoreMessageInfo(mi)
403	}
404}
405
406func (x *SearchUrisRequest) String() string {
407	return protoimpl.X.MessageStringOf(x)
408}
409
410func (*SearchUrisRequest) ProtoMessage() {}
411
412func (x *SearchUrisRequest) ProtoReflect() protoreflect.Message {
413	mi := &file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[2]
414	if protoimpl.UnsafeEnabled && x != nil {
415		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
416		if ms.LoadMessageInfo() == nil {
417			ms.StoreMessageInfo(mi)
418		}
419		return ms
420	}
421	return mi.MessageOf(x)
422}
423
424// Deprecated: Use SearchUrisRequest.ProtoReflect.Descriptor instead.
425func (*SearchUrisRequest) Descriptor() ([]byte, []int) {
426	return file_google_cloud_webrisk_v1beta1_webrisk_proto_rawDescGZIP(), []int{2}
427}
428
429func (x *SearchUrisRequest) GetUri() string {
430	if x != nil {
431		return x.Uri
432	}
433	return ""
434}
435
436func (x *SearchUrisRequest) GetThreatTypes() []ThreatType {
437	if x != nil {
438		return x.ThreatTypes
439	}
440	return nil
441}
442
443type SearchUrisResponse struct {
444	state         protoimpl.MessageState
445	sizeCache     protoimpl.SizeCache
446	unknownFields protoimpl.UnknownFields
447
448	// The threat list matches. This may be empty if the URI is on no list.
449	Threat *SearchUrisResponse_ThreatUri `protobuf:"bytes,1,opt,name=threat,proto3" json:"threat,omitempty"`
450}
451
452func (x *SearchUrisResponse) Reset() {
453	*x = SearchUrisResponse{}
454	if protoimpl.UnsafeEnabled {
455		mi := &file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[3]
456		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
457		ms.StoreMessageInfo(mi)
458	}
459}
460
461func (x *SearchUrisResponse) String() string {
462	return protoimpl.X.MessageStringOf(x)
463}
464
465func (*SearchUrisResponse) ProtoMessage() {}
466
467func (x *SearchUrisResponse) ProtoReflect() protoreflect.Message {
468	mi := &file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[3]
469	if protoimpl.UnsafeEnabled && x != nil {
470		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
471		if ms.LoadMessageInfo() == nil {
472			ms.StoreMessageInfo(mi)
473		}
474		return ms
475	}
476	return mi.MessageOf(x)
477}
478
479// Deprecated: Use SearchUrisResponse.ProtoReflect.Descriptor instead.
480func (*SearchUrisResponse) Descriptor() ([]byte, []int) {
481	return file_google_cloud_webrisk_v1beta1_webrisk_proto_rawDescGZIP(), []int{3}
482}
483
484func (x *SearchUrisResponse) GetThreat() *SearchUrisResponse_ThreatUri {
485	if x != nil {
486		return x.Threat
487	}
488	return nil
489}
490
491// Request to return full hashes matched by the provided hash prefixes.
492type SearchHashesRequest struct {
493	state         protoimpl.MessageState
494	sizeCache     protoimpl.SizeCache
495	unknownFields protoimpl.UnknownFields
496
497	// A hash prefix, consisting of the most significant 4-32 bytes of a SHA256
498	// hash. For JSON requests, this field is base64-encoded.
499	HashPrefix []byte `protobuf:"bytes,1,opt,name=hash_prefix,json=hashPrefix,proto3" json:"hash_prefix,omitempty"`
500	// Required. The ThreatLists to search in.
501	ThreatTypes []ThreatType `protobuf:"varint,2,rep,packed,name=threat_types,json=threatTypes,proto3,enum=google.cloud.webrisk.v1beta1.ThreatType" json:"threat_types,omitempty"`
502}
503
504func (x *SearchHashesRequest) Reset() {
505	*x = SearchHashesRequest{}
506	if protoimpl.UnsafeEnabled {
507		mi := &file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[4]
508		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
509		ms.StoreMessageInfo(mi)
510	}
511}
512
513func (x *SearchHashesRequest) String() string {
514	return protoimpl.X.MessageStringOf(x)
515}
516
517func (*SearchHashesRequest) ProtoMessage() {}
518
519func (x *SearchHashesRequest) ProtoReflect() protoreflect.Message {
520	mi := &file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[4]
521	if protoimpl.UnsafeEnabled && x != nil {
522		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
523		if ms.LoadMessageInfo() == nil {
524			ms.StoreMessageInfo(mi)
525		}
526		return ms
527	}
528	return mi.MessageOf(x)
529}
530
531// Deprecated: Use SearchHashesRequest.ProtoReflect.Descriptor instead.
532func (*SearchHashesRequest) Descriptor() ([]byte, []int) {
533	return file_google_cloud_webrisk_v1beta1_webrisk_proto_rawDescGZIP(), []int{4}
534}
535
536func (x *SearchHashesRequest) GetHashPrefix() []byte {
537	if x != nil {
538		return x.HashPrefix
539	}
540	return nil
541}
542
543func (x *SearchHashesRequest) GetThreatTypes() []ThreatType {
544	if x != nil {
545		return x.ThreatTypes
546	}
547	return nil
548}
549
550type SearchHashesResponse struct {
551	state         protoimpl.MessageState
552	sizeCache     protoimpl.SizeCache
553	unknownFields protoimpl.UnknownFields
554
555	// The full hashes that matched the requested prefixes.
556	// The hash will be populated in the key.
557	Threats []*SearchHashesResponse_ThreatHash `protobuf:"bytes,1,rep,name=threats,proto3" json:"threats,omitempty"`
558	// For requested entities that did not match the threat list, how long to
559	// cache the response until.
560	NegativeExpireTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=negative_expire_time,json=negativeExpireTime,proto3" json:"negative_expire_time,omitempty"`
561}
562
563func (x *SearchHashesResponse) Reset() {
564	*x = SearchHashesResponse{}
565	if protoimpl.UnsafeEnabled {
566		mi := &file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[5]
567		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
568		ms.StoreMessageInfo(mi)
569	}
570}
571
572func (x *SearchHashesResponse) String() string {
573	return protoimpl.X.MessageStringOf(x)
574}
575
576func (*SearchHashesResponse) ProtoMessage() {}
577
578func (x *SearchHashesResponse) ProtoReflect() protoreflect.Message {
579	mi := &file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[5]
580	if protoimpl.UnsafeEnabled && x != nil {
581		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
582		if ms.LoadMessageInfo() == nil {
583			ms.StoreMessageInfo(mi)
584		}
585		return ms
586	}
587	return mi.MessageOf(x)
588}
589
590// Deprecated: Use SearchHashesResponse.ProtoReflect.Descriptor instead.
591func (*SearchHashesResponse) Descriptor() ([]byte, []int) {
592	return file_google_cloud_webrisk_v1beta1_webrisk_proto_rawDescGZIP(), []int{5}
593}
594
595func (x *SearchHashesResponse) GetThreats() []*SearchHashesResponse_ThreatHash {
596	if x != nil {
597		return x.Threats
598	}
599	return nil
600}
601
602func (x *SearchHashesResponse) GetNegativeExpireTime() *timestamp.Timestamp {
603	if x != nil {
604		return x.NegativeExpireTime
605	}
606	return nil
607}
608
609// Contains the set of entries to add to a local database.
610// May contain a combination of compressed and raw data in a single response.
611type ThreatEntryAdditions struct {
612	state         protoimpl.MessageState
613	sizeCache     protoimpl.SizeCache
614	unknownFields protoimpl.UnknownFields
615
616	// The raw SHA256-formatted entries.
617	// Repeated to allow returning sets of hashes with different prefix sizes.
618	RawHashes []*RawHashes `protobuf:"bytes,1,rep,name=raw_hashes,json=rawHashes,proto3" json:"raw_hashes,omitempty"`
619	// The encoded 4-byte prefixes of SHA256-formatted entries, using a
620	// Golomb-Rice encoding. The hashes are converted to uint32, sorted in
621	// ascending order, then delta encoded and stored as encoded_data.
622	RiceHashes *RiceDeltaEncoding `protobuf:"bytes,2,opt,name=rice_hashes,json=riceHashes,proto3" json:"rice_hashes,omitempty"`
623}
624
625func (x *ThreatEntryAdditions) Reset() {
626	*x = ThreatEntryAdditions{}
627	if protoimpl.UnsafeEnabled {
628		mi := &file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[6]
629		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
630		ms.StoreMessageInfo(mi)
631	}
632}
633
634func (x *ThreatEntryAdditions) String() string {
635	return protoimpl.X.MessageStringOf(x)
636}
637
638func (*ThreatEntryAdditions) ProtoMessage() {}
639
640func (x *ThreatEntryAdditions) ProtoReflect() protoreflect.Message {
641	mi := &file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[6]
642	if protoimpl.UnsafeEnabled && x != nil {
643		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
644		if ms.LoadMessageInfo() == nil {
645			ms.StoreMessageInfo(mi)
646		}
647		return ms
648	}
649	return mi.MessageOf(x)
650}
651
652// Deprecated: Use ThreatEntryAdditions.ProtoReflect.Descriptor instead.
653func (*ThreatEntryAdditions) Descriptor() ([]byte, []int) {
654	return file_google_cloud_webrisk_v1beta1_webrisk_proto_rawDescGZIP(), []int{6}
655}
656
657func (x *ThreatEntryAdditions) GetRawHashes() []*RawHashes {
658	if x != nil {
659		return x.RawHashes
660	}
661	return nil
662}
663
664func (x *ThreatEntryAdditions) GetRiceHashes() *RiceDeltaEncoding {
665	if x != nil {
666		return x.RiceHashes
667	}
668	return nil
669}
670
671// Contains the set of entries to remove from a local database.
672type ThreatEntryRemovals struct {
673	state         protoimpl.MessageState
674	sizeCache     protoimpl.SizeCache
675	unknownFields protoimpl.UnknownFields
676
677	// The raw removal indices for a local list.
678	RawIndices *RawIndices `protobuf:"bytes,1,opt,name=raw_indices,json=rawIndices,proto3" json:"raw_indices,omitempty"`
679	// The encoded local, lexicographically-sorted list indices, using a
680	// Golomb-Rice encoding. Used for sending compressed removal indices. The
681	// removal indices (uint32) are sorted in ascending order, then delta encoded
682	// and stored as encoded_data.
683	RiceIndices *RiceDeltaEncoding `protobuf:"bytes,2,opt,name=rice_indices,json=riceIndices,proto3" json:"rice_indices,omitempty"`
684}
685
686func (x *ThreatEntryRemovals) Reset() {
687	*x = ThreatEntryRemovals{}
688	if protoimpl.UnsafeEnabled {
689		mi := &file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[7]
690		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
691		ms.StoreMessageInfo(mi)
692	}
693}
694
695func (x *ThreatEntryRemovals) String() string {
696	return protoimpl.X.MessageStringOf(x)
697}
698
699func (*ThreatEntryRemovals) ProtoMessage() {}
700
701func (x *ThreatEntryRemovals) ProtoReflect() protoreflect.Message {
702	mi := &file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[7]
703	if protoimpl.UnsafeEnabled && x != nil {
704		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
705		if ms.LoadMessageInfo() == nil {
706			ms.StoreMessageInfo(mi)
707		}
708		return ms
709	}
710	return mi.MessageOf(x)
711}
712
713// Deprecated: Use ThreatEntryRemovals.ProtoReflect.Descriptor instead.
714func (*ThreatEntryRemovals) Descriptor() ([]byte, []int) {
715	return file_google_cloud_webrisk_v1beta1_webrisk_proto_rawDescGZIP(), []int{7}
716}
717
718func (x *ThreatEntryRemovals) GetRawIndices() *RawIndices {
719	if x != nil {
720		return x.RawIndices
721	}
722	return nil
723}
724
725func (x *ThreatEntryRemovals) GetRiceIndices() *RiceDeltaEncoding {
726	if x != nil {
727		return x.RiceIndices
728	}
729	return nil
730}
731
732// A set of raw indices to remove from a local list.
733type RawIndices struct {
734	state         protoimpl.MessageState
735	sizeCache     protoimpl.SizeCache
736	unknownFields protoimpl.UnknownFields
737
738	// The indices to remove from a lexicographically-sorted local list.
739	Indices []int32 `protobuf:"varint,1,rep,packed,name=indices,proto3" json:"indices,omitempty"`
740}
741
742func (x *RawIndices) Reset() {
743	*x = RawIndices{}
744	if protoimpl.UnsafeEnabled {
745		mi := &file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[8]
746		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
747		ms.StoreMessageInfo(mi)
748	}
749}
750
751func (x *RawIndices) String() string {
752	return protoimpl.X.MessageStringOf(x)
753}
754
755func (*RawIndices) ProtoMessage() {}
756
757func (x *RawIndices) ProtoReflect() protoreflect.Message {
758	mi := &file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[8]
759	if protoimpl.UnsafeEnabled && x != nil {
760		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
761		if ms.LoadMessageInfo() == nil {
762			ms.StoreMessageInfo(mi)
763		}
764		return ms
765	}
766	return mi.MessageOf(x)
767}
768
769// Deprecated: Use RawIndices.ProtoReflect.Descriptor instead.
770func (*RawIndices) Descriptor() ([]byte, []int) {
771	return file_google_cloud_webrisk_v1beta1_webrisk_proto_rawDescGZIP(), []int{8}
772}
773
774func (x *RawIndices) GetIndices() []int32 {
775	if x != nil {
776		return x.Indices
777	}
778	return nil
779}
780
781// The uncompressed threat entries in hash format.
782// Hashes can be anywhere from 4 to 32 bytes in size. A large majority are 4
783// bytes, but some hashes are lengthened if they collide with the hash of a
784// popular URI.
785//
786// Used for sending ThreatEntryAdditons to clients that do not support
787// compression, or when sending non-4-byte hashes to clients that do support
788// compression.
789type RawHashes struct {
790	state         protoimpl.MessageState
791	sizeCache     protoimpl.SizeCache
792	unknownFields protoimpl.UnknownFields
793
794	// The number of bytes for each prefix encoded below.  This field can be
795	// anywhere from 4 (shortest prefix) to 32 (full SHA256 hash).
796	PrefixSize int32 `protobuf:"varint,1,opt,name=prefix_size,json=prefixSize,proto3" json:"prefix_size,omitempty"`
797	// The hashes, in binary format, concatenated into one long string. Hashes are
798	// sorted in lexicographic order. For JSON API users, hashes are
799	// base64-encoded.
800	RawHashes []byte `protobuf:"bytes,2,opt,name=raw_hashes,json=rawHashes,proto3" json:"raw_hashes,omitempty"`
801}
802
803func (x *RawHashes) Reset() {
804	*x = RawHashes{}
805	if protoimpl.UnsafeEnabled {
806		mi := &file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[9]
807		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
808		ms.StoreMessageInfo(mi)
809	}
810}
811
812func (x *RawHashes) String() string {
813	return protoimpl.X.MessageStringOf(x)
814}
815
816func (*RawHashes) ProtoMessage() {}
817
818func (x *RawHashes) ProtoReflect() protoreflect.Message {
819	mi := &file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[9]
820	if protoimpl.UnsafeEnabled && x != nil {
821		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
822		if ms.LoadMessageInfo() == nil {
823			ms.StoreMessageInfo(mi)
824		}
825		return ms
826	}
827	return mi.MessageOf(x)
828}
829
830// Deprecated: Use RawHashes.ProtoReflect.Descriptor instead.
831func (*RawHashes) Descriptor() ([]byte, []int) {
832	return file_google_cloud_webrisk_v1beta1_webrisk_proto_rawDescGZIP(), []int{9}
833}
834
835func (x *RawHashes) GetPrefixSize() int32 {
836	if x != nil {
837		return x.PrefixSize
838	}
839	return 0
840}
841
842func (x *RawHashes) GetRawHashes() []byte {
843	if x != nil {
844		return x.RawHashes
845	}
846	return nil
847}
848
849// The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or
850// compressed removal indices.
851type RiceDeltaEncoding struct {
852	state         protoimpl.MessageState
853	sizeCache     protoimpl.SizeCache
854	unknownFields protoimpl.UnknownFields
855
856	// The offset of the first entry in the encoded data, or, if only a single
857	// integer was encoded, that single integer's value. If the field is empty or
858	// missing, assume zero.
859	FirstValue int64 `protobuf:"varint,1,opt,name=first_value,json=firstValue,proto3" json:"first_value,omitempty"`
860	// The Golomb-Rice parameter, which is a number between 2 and 28. This field
861	// is missing (that is, zero) if `num_entries` is zero.
862	RiceParameter int32 `protobuf:"varint,2,opt,name=rice_parameter,json=riceParameter,proto3" json:"rice_parameter,omitempty"`
863	// The number of entries that are delta encoded in the encoded data. If only a
864	// single integer was encoded, this will be zero and the single value will be
865	// stored in `first_value`.
866	EntryCount int32 `protobuf:"varint,3,opt,name=entry_count,json=entryCount,proto3" json:"entry_count,omitempty"`
867	// The encoded deltas that are encoded using the Golomb-Rice coder.
868	EncodedData []byte `protobuf:"bytes,4,opt,name=encoded_data,json=encodedData,proto3" json:"encoded_data,omitempty"`
869}
870
871func (x *RiceDeltaEncoding) Reset() {
872	*x = RiceDeltaEncoding{}
873	if protoimpl.UnsafeEnabled {
874		mi := &file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[10]
875		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
876		ms.StoreMessageInfo(mi)
877	}
878}
879
880func (x *RiceDeltaEncoding) String() string {
881	return protoimpl.X.MessageStringOf(x)
882}
883
884func (*RiceDeltaEncoding) ProtoMessage() {}
885
886func (x *RiceDeltaEncoding) ProtoReflect() protoreflect.Message {
887	mi := &file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[10]
888	if protoimpl.UnsafeEnabled && x != nil {
889		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
890		if ms.LoadMessageInfo() == nil {
891			ms.StoreMessageInfo(mi)
892		}
893		return ms
894	}
895	return mi.MessageOf(x)
896}
897
898// Deprecated: Use RiceDeltaEncoding.ProtoReflect.Descriptor instead.
899func (*RiceDeltaEncoding) Descriptor() ([]byte, []int) {
900	return file_google_cloud_webrisk_v1beta1_webrisk_proto_rawDescGZIP(), []int{10}
901}
902
903func (x *RiceDeltaEncoding) GetFirstValue() int64 {
904	if x != nil {
905		return x.FirstValue
906	}
907	return 0
908}
909
910func (x *RiceDeltaEncoding) GetRiceParameter() int32 {
911	if x != nil {
912		return x.RiceParameter
913	}
914	return 0
915}
916
917func (x *RiceDeltaEncoding) GetEntryCount() int32 {
918	if x != nil {
919		return x.EntryCount
920	}
921	return 0
922}
923
924func (x *RiceDeltaEncoding) GetEncodedData() []byte {
925	if x != nil {
926		return x.EncodedData
927	}
928	return nil
929}
930
931// The constraints for this diff.
932type ComputeThreatListDiffRequest_Constraints struct {
933	state         protoimpl.MessageState
934	sizeCache     protoimpl.SizeCache
935	unknownFields protoimpl.UnknownFields
936
937	// The maximum size in number of entries. The diff will not contain more
938	// entries than this value.  This should be a power of 2 between 2**10 and
939	// 2**20.  If zero, no diff size limit is set.
940	MaxDiffEntries int32 `protobuf:"varint,1,opt,name=max_diff_entries,json=maxDiffEntries,proto3" json:"max_diff_entries,omitempty"`
941	// Sets the maximum number of entries that the client is willing to have
942	// in the local database. This should be a power of 2 between 2**10 and
943	// 2**20. If zero, no database size limit is set.
944	MaxDatabaseEntries int32 `protobuf:"varint,2,opt,name=max_database_entries,json=maxDatabaseEntries,proto3" json:"max_database_entries,omitempty"`
945	// The compression types supported by the client.
946	SupportedCompressions []CompressionType `protobuf:"varint,3,rep,packed,name=supported_compressions,json=supportedCompressions,proto3,enum=google.cloud.webrisk.v1beta1.CompressionType" json:"supported_compressions,omitempty"`
947}
948
949func (x *ComputeThreatListDiffRequest_Constraints) Reset() {
950	*x = ComputeThreatListDiffRequest_Constraints{}
951	if protoimpl.UnsafeEnabled {
952		mi := &file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[11]
953		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
954		ms.StoreMessageInfo(mi)
955	}
956}
957
958func (x *ComputeThreatListDiffRequest_Constraints) String() string {
959	return protoimpl.X.MessageStringOf(x)
960}
961
962func (*ComputeThreatListDiffRequest_Constraints) ProtoMessage() {}
963
964func (x *ComputeThreatListDiffRequest_Constraints) ProtoReflect() protoreflect.Message {
965	mi := &file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[11]
966	if protoimpl.UnsafeEnabled && x != nil {
967		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
968		if ms.LoadMessageInfo() == nil {
969			ms.StoreMessageInfo(mi)
970		}
971		return ms
972	}
973	return mi.MessageOf(x)
974}
975
976// Deprecated: Use ComputeThreatListDiffRequest_Constraints.ProtoReflect.Descriptor instead.
977func (*ComputeThreatListDiffRequest_Constraints) Descriptor() ([]byte, []int) {
978	return file_google_cloud_webrisk_v1beta1_webrisk_proto_rawDescGZIP(), []int{0, 0}
979}
980
981func (x *ComputeThreatListDiffRequest_Constraints) GetMaxDiffEntries() int32 {
982	if x != nil {
983		return x.MaxDiffEntries
984	}
985	return 0
986}
987
988func (x *ComputeThreatListDiffRequest_Constraints) GetMaxDatabaseEntries() int32 {
989	if x != nil {
990		return x.MaxDatabaseEntries
991	}
992	return 0
993}
994
995func (x *ComputeThreatListDiffRequest_Constraints) GetSupportedCompressions() []CompressionType {
996	if x != nil {
997		return x.SupportedCompressions
998	}
999	return nil
1000}
1001
1002// The expected state of a client's local database.
1003type ComputeThreatListDiffResponse_Checksum struct {
1004	state         protoimpl.MessageState
1005	sizeCache     protoimpl.SizeCache
1006	unknownFields protoimpl.UnknownFields
1007
1008	// The SHA256 hash of the client state; that is, of the sorted list of all
1009	// hashes present in the database.
1010	Sha256 []byte `protobuf:"bytes,1,opt,name=sha256,proto3" json:"sha256,omitempty"`
1011}
1012
1013func (x *ComputeThreatListDiffResponse_Checksum) Reset() {
1014	*x = ComputeThreatListDiffResponse_Checksum{}
1015	if protoimpl.UnsafeEnabled {
1016		mi := &file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[12]
1017		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1018		ms.StoreMessageInfo(mi)
1019	}
1020}
1021
1022func (x *ComputeThreatListDiffResponse_Checksum) String() string {
1023	return protoimpl.X.MessageStringOf(x)
1024}
1025
1026func (*ComputeThreatListDiffResponse_Checksum) ProtoMessage() {}
1027
1028func (x *ComputeThreatListDiffResponse_Checksum) ProtoReflect() protoreflect.Message {
1029	mi := &file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[12]
1030	if protoimpl.UnsafeEnabled && x != nil {
1031		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1032		if ms.LoadMessageInfo() == nil {
1033			ms.StoreMessageInfo(mi)
1034		}
1035		return ms
1036	}
1037	return mi.MessageOf(x)
1038}
1039
1040// Deprecated: Use ComputeThreatListDiffResponse_Checksum.ProtoReflect.Descriptor instead.
1041func (*ComputeThreatListDiffResponse_Checksum) Descriptor() ([]byte, []int) {
1042	return file_google_cloud_webrisk_v1beta1_webrisk_proto_rawDescGZIP(), []int{1, 0}
1043}
1044
1045func (x *ComputeThreatListDiffResponse_Checksum) GetSha256() []byte {
1046	if x != nil {
1047		return x.Sha256
1048	}
1049	return nil
1050}
1051
1052// Contains threat information on a matching uri.
1053type SearchUrisResponse_ThreatUri struct {
1054	state         protoimpl.MessageState
1055	sizeCache     protoimpl.SizeCache
1056	unknownFields protoimpl.UnknownFields
1057
1058	// The ThreatList this threat belongs to.
1059	ThreatTypes []ThreatType `protobuf:"varint,1,rep,packed,name=threat_types,json=threatTypes,proto3,enum=google.cloud.webrisk.v1beta1.ThreatType" json:"threat_types,omitempty"`
1060	// The cache lifetime for the returned match. Clients must not cache this
1061	// response past this timestamp to avoid false positives.
1062	ExpireTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"`
1063}
1064
1065func (x *SearchUrisResponse_ThreatUri) Reset() {
1066	*x = SearchUrisResponse_ThreatUri{}
1067	if protoimpl.UnsafeEnabled {
1068		mi := &file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[13]
1069		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1070		ms.StoreMessageInfo(mi)
1071	}
1072}
1073
1074func (x *SearchUrisResponse_ThreatUri) String() string {
1075	return protoimpl.X.MessageStringOf(x)
1076}
1077
1078func (*SearchUrisResponse_ThreatUri) ProtoMessage() {}
1079
1080func (x *SearchUrisResponse_ThreatUri) ProtoReflect() protoreflect.Message {
1081	mi := &file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[13]
1082	if protoimpl.UnsafeEnabled && x != nil {
1083		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1084		if ms.LoadMessageInfo() == nil {
1085			ms.StoreMessageInfo(mi)
1086		}
1087		return ms
1088	}
1089	return mi.MessageOf(x)
1090}
1091
1092// Deprecated: Use SearchUrisResponse_ThreatUri.ProtoReflect.Descriptor instead.
1093func (*SearchUrisResponse_ThreatUri) Descriptor() ([]byte, []int) {
1094	return file_google_cloud_webrisk_v1beta1_webrisk_proto_rawDescGZIP(), []int{3, 0}
1095}
1096
1097func (x *SearchUrisResponse_ThreatUri) GetThreatTypes() []ThreatType {
1098	if x != nil {
1099		return x.ThreatTypes
1100	}
1101	return nil
1102}
1103
1104func (x *SearchUrisResponse_ThreatUri) GetExpireTime() *timestamp.Timestamp {
1105	if x != nil {
1106		return x.ExpireTime
1107	}
1108	return nil
1109}
1110
1111// Contains threat information on a matching hash.
1112type SearchHashesResponse_ThreatHash struct {
1113	state         protoimpl.MessageState
1114	sizeCache     protoimpl.SizeCache
1115	unknownFields protoimpl.UnknownFields
1116
1117	// The ThreatList this threat belongs to.
1118	// This must contain at least one entry.
1119	ThreatTypes []ThreatType `protobuf:"varint,1,rep,packed,name=threat_types,json=threatTypes,proto3,enum=google.cloud.webrisk.v1beta1.ThreatType" json:"threat_types,omitempty"`
1120	// A 32 byte SHA256 hash. This field is in binary format. For JSON
1121	// requests, hashes are base64-encoded.
1122	Hash []byte `protobuf:"bytes,2,opt,name=hash,proto3" json:"hash,omitempty"`
1123	// The cache lifetime for the returned match. Clients must not cache this
1124	// response past this timestamp to avoid false positives.
1125	ExpireTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"`
1126}
1127
1128func (x *SearchHashesResponse_ThreatHash) Reset() {
1129	*x = SearchHashesResponse_ThreatHash{}
1130	if protoimpl.UnsafeEnabled {
1131		mi := &file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[14]
1132		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1133		ms.StoreMessageInfo(mi)
1134	}
1135}
1136
1137func (x *SearchHashesResponse_ThreatHash) String() string {
1138	return protoimpl.X.MessageStringOf(x)
1139}
1140
1141func (*SearchHashesResponse_ThreatHash) ProtoMessage() {}
1142
1143func (x *SearchHashesResponse_ThreatHash) ProtoReflect() protoreflect.Message {
1144	mi := &file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[14]
1145	if protoimpl.UnsafeEnabled && x != nil {
1146		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1147		if ms.LoadMessageInfo() == nil {
1148			ms.StoreMessageInfo(mi)
1149		}
1150		return ms
1151	}
1152	return mi.MessageOf(x)
1153}
1154
1155// Deprecated: Use SearchHashesResponse_ThreatHash.ProtoReflect.Descriptor instead.
1156func (*SearchHashesResponse_ThreatHash) Descriptor() ([]byte, []int) {
1157	return file_google_cloud_webrisk_v1beta1_webrisk_proto_rawDescGZIP(), []int{5, 0}
1158}
1159
1160func (x *SearchHashesResponse_ThreatHash) GetThreatTypes() []ThreatType {
1161	if x != nil {
1162		return x.ThreatTypes
1163	}
1164	return nil
1165}
1166
1167func (x *SearchHashesResponse_ThreatHash) GetHash() []byte {
1168	if x != nil {
1169		return x.Hash
1170	}
1171	return nil
1172}
1173
1174func (x *SearchHashesResponse_ThreatHash) GetExpireTime() *timestamp.Timestamp {
1175	if x != nil {
1176		return x.ExpireTime
1177	}
1178	return nil
1179}
1180
1181var File_google_cloud_webrisk_v1beta1_webrisk_proto protoreflect.FileDescriptor
1182
1183var file_google_cloud_webrisk_v1beta1_webrisk_proto_rawDesc = []byte{
1184	0x0a, 0x2a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x77,
1185	0x65, 0x62, 0x72, 0x69, 0x73, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x77,
1186	0x65, 0x62, 0x72, 0x69, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1c, 0x67, 0x6f,
1187	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x65, 0x62, 0x72, 0x69,
1188	0x73, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67,
1189	0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,
1190	0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
1191	0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74,
1192	0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69,
1193	0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f,
1194	0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
1195	0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72,
1196	0x6f, 0x74, 0x6f, 0x22, 0xd4, 0x03, 0x0a, 0x1c, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x54,
1197	0x68, 0x72, 0x65, 0x61, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x71,
1198	0x75, 0x65, 0x73, 0x74, 0x12, 0x4e, 0x0a, 0x0b, 0x74, 0x68, 0x72, 0x65, 0x61, 0x74, 0x5f, 0x74,
1199	0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
1200	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x65, 0x62, 0x72, 0x69, 0x73, 0x6b,
1201	0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x74, 0x54,
1202	0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x74, 0x68, 0x72, 0x65, 0x61, 0x74,
1203	0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f,
1204	0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x76, 0x65, 0x72,
1205	0x73, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x6d, 0x0a, 0x0b, 0x63, 0x6f, 0x6e,
1206	0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46,
1207	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x65,
1208	0x62, 0x72, 0x69, 0x73, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f,
1209	0x6d, 0x70, 0x75, 0x74, 0x65, 0x54, 0x68, 0x72, 0x65, 0x61, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x44,
1210	0x69, 0x66, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x74,
1211	0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x6f, 0x6e,
1212	0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x1a, 0xcf, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6e,
1213	0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f,
1214	0x64, 0x69, 0x66, 0x66, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01,
1215	0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x44, 0x69, 0x66, 0x66, 0x45, 0x6e, 0x74, 0x72, 0x69,
1216	0x65, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61,
1217	0x73, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
1218	0x52, 0x12, 0x6d, 0x61, 0x78, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x45, 0x6e, 0x74,
1219	0x72, 0x69, 0x65, 0x73, 0x12, 0x64, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65,
1220	0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03,
1221	0x20, 0x03, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
1222	0x6f, 0x75, 0x64, 0x2e, 0x77, 0x65, 0x62, 0x72, 0x69, 0x73, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65,
1223	0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54,
1224	0x79, 0x70, 0x65, 0x52, 0x15, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x43, 0x6f,
1225	0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xf5, 0x04, 0x0a, 0x1d, 0x43,
1226	0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x54, 0x68, 0x72, 0x65, 0x61, 0x74, 0x4c, 0x69, 0x73, 0x74,
1227	0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x0d,
1228	0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20,
1229	0x01, 0x28, 0x0e, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
1230	0x75, 0x64, 0x2e, 0x77, 0x65, 0x62, 0x72, 0x69, 0x73, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
1231	0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x54, 0x68, 0x72, 0x65, 0x61, 0x74,
1232	0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
1233	0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x72,
1234	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x50, 0x0a, 0x09, 0x61,
1235	0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32,
1236	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x65,
1237	0x62, 0x72, 0x69, 0x73, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x68,
1238	0x72, 0x65, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f,
1239	0x6e, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4d, 0x0a,
1240	0x08, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32,
1241	0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77,
1242	0x65, 0x62, 0x72, 0x69, 0x73, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54,
1243	0x68, 0x72, 0x65, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61,
1244	0x6c, 0x73, 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x12, 0x2a, 0x0a, 0x11,
1245	0x6e, 0x65, 0x77, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65,
1246	0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x6e, 0x65, 0x77, 0x56, 0x65, 0x72, 0x73,
1247	0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x60, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63,
1248	0x6b, 0x73, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x67, 0x6f, 0x6f,
1249	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x65, 0x62, 0x72, 0x69, 0x73,
1250	0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74,
1251	0x65, 0x54, 0x68, 0x72, 0x65, 0x61, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x66, 0x66, 0x52,
1252	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d,
1253	0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x4e, 0x0a, 0x15, 0x72, 0x65,
1254	0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x64,
1255	0x69, 0x66, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
1256	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65,
1257	0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x13, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64,
1258	0x65, 0x64, 0x4e, 0x65, 0x78, 0x74, 0x44, 0x69, 0x66, 0x66, 0x1a, 0x22, 0x0a, 0x08, 0x43, 0x68,
1259	0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36,
1260	0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x22, 0x42,
1261	0x0a, 0x0c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d,
1262	0x0a, 0x19, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f,
1263	0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a,
1264	0x04, 0x44, 0x49, 0x46, 0x46, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45, 0x53, 0x45, 0x54,
1265	0x10, 0x02, 0x22, 0x7c, 0x0a, 0x11, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, 0x72, 0x69, 0x73,
1266	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01,
1267	0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x50,
1268	0x0a, 0x0c, 0x74, 0x68, 0x72, 0x65, 0x61, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x02,
1269	0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
1270	0x6f, 0x75, 0x64, 0x2e, 0x77, 0x65, 0x62, 0x72, 0x69, 0x73, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65,
1271	0x74, 0x61, 0x31, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03,
1272	0xe0, 0x41, 0x02, 0x52, 0x0b, 0x74, 0x68, 0x72, 0x65, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73,
1273	0x22, 0x80, 0x02, 0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, 0x72, 0x69, 0x73, 0x52,
1274	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x06, 0x74, 0x68, 0x72, 0x65, 0x61,
1275	0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
1276	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x65, 0x62, 0x72, 0x69, 0x73, 0x6b, 0x2e, 0x76,
1277	0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, 0x72, 0x69,
1278	0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x74,
1279	0x55, 0x72, 0x69, 0x52, 0x06, 0x74, 0x68, 0x72, 0x65, 0x61, 0x74, 0x1a, 0x95, 0x01, 0x0a, 0x09,
1280	0x54, 0x68, 0x72, 0x65, 0x61, 0x74, 0x55, 0x72, 0x69, 0x12, 0x4b, 0x0a, 0x0c, 0x74, 0x68, 0x72,
1281	0x65, 0x61, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32,
1282	0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77,
1283	0x65, 0x62, 0x72, 0x69, 0x73, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54,
1284	0x68, 0x72, 0x65, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x74, 0x68, 0x72, 0x65, 0x61,
1285	0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65,
1286	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
1287	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
1288	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54,
1289	0x69, 0x6d, 0x65, 0x22, 0x88, 0x01, 0x0a, 0x13, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61,
1290	0x73, 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x68,
1291	0x61, 0x73, 0x68, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c,
1292	0x52, 0x0a, 0x68, 0x61, 0x73, 0x68, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x50, 0x0a, 0x0c,
1293	0x74, 0x68, 0x72, 0x65, 0x61, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03,
1294	0x28, 0x0e, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
1295	0x64, 0x2e, 0x77, 0x65, 0x62, 0x72, 0x69, 0x73, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
1296	0x31, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41,
1297	0x02, 0x52, 0x0b, 0x74, 0x68, 0x72, 0x65, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0xea,
1298	0x02, 0x0a, 0x14, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x52,
1299	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x07, 0x74, 0x68, 0x72, 0x65, 0x61,
1300	0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
1301	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x65, 0x62, 0x72, 0x69, 0x73, 0x6b, 0x2e,
1302	0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61,
1303	0x73, 0x68, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x68, 0x72,
1304	0x65, 0x61, 0x74, 0x48, 0x61, 0x73, 0x68, 0x52, 0x07, 0x74, 0x68, 0x72, 0x65, 0x61, 0x74, 0x73,
1305	0x12, 0x4c, 0x0a, 0x14, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70,
1306	0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
1307	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
1308	0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x12, 0x6e, 0x65, 0x67, 0x61,
1309	0x74, 0x69, 0x76, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0xaa,
1310	0x01, 0x0a, 0x0a, 0x54, 0x68, 0x72, 0x65, 0x61, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x4b, 0x0a,
1311	0x0c, 0x74, 0x68, 0x72, 0x65, 0x61, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20,
1312	0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
1313	0x75, 0x64, 0x2e, 0x77, 0x65, 0x62, 0x72, 0x69, 0x73, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
1314	0x61, 0x31, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x74,
1315	0x68, 0x72, 0x65, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61,
1316	0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x3b,
1317	0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20,
1318	0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
1319	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52,
1320	0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x14,
1321	0x54, 0x68, 0x72, 0x65, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x41, 0x64, 0x64, 0x69, 0x74,
1322	0x69, 0x6f, 0x6e, 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x72, 0x61, 0x77, 0x5f, 0x68, 0x61, 0x73, 0x68,
1323	0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
1324	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x65, 0x62, 0x72, 0x69, 0x73, 0x6b, 0x2e,
1325	0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x61, 0x77, 0x48, 0x61, 0x73, 0x68, 0x65,
1326	0x73, 0x52, 0x09, 0x72, 0x61, 0x77, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x0b,
1327	0x72, 0x69, 0x63, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28,
1328	0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
1329	0x2e, 0x77, 0x65, 0x62, 0x72, 0x69, 0x73, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
1330	0x2e, 0x52, 0x69, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69,
1331	0x6e, 0x67, 0x52, 0x0a, 0x72, 0x69, 0x63, 0x65, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x22, 0xb4,
1332	0x01, 0x0a, 0x13, 0x54, 0x68, 0x72, 0x65, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65,
1333	0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x12, 0x49, 0x0a, 0x0b, 0x72, 0x61, 0x77, 0x5f, 0x69, 0x6e,
1334	0x64, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f,
1335	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x65, 0x62, 0x72, 0x69,
1336	0x73, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x61, 0x77, 0x49, 0x6e,
1337	0x64, 0x69, 0x63, 0x65, 0x73, 0x52, 0x0a, 0x72, 0x61, 0x77, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65,
1338	0x73, 0x12, 0x52, 0x0a, 0x0c, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65,
1339	0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
1340	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x65, 0x62, 0x72, 0x69, 0x73, 0x6b, 0x2e, 0x76,
1341	0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x69, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x74, 0x61,
1342	0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x0b, 0x72, 0x69, 0x63, 0x65, 0x49, 0x6e,
1343	0x64, 0x69, 0x63, 0x65, 0x73, 0x22, 0x26, 0x0a, 0x0a, 0x52, 0x61, 0x77, 0x49, 0x6e, 0x64, 0x69,
1344	0x63, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01,
1345	0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x22, 0x4b, 0x0a,
1346	0x09, 0x52, 0x61, 0x77, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72,
1347	0x65, 0x66, 0x69, 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
1348	0x0a, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72,
1349	0x61, 0x77, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52,
1350	0x09, 0x72, 0x61, 0x77, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x22, 0x9f, 0x01, 0x0a, 0x11, 0x52,
1351	0x69, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67,
1352	0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
1353	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75,
1354	0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65,
1355	0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x69, 0x63, 0x65, 0x50,
1356	0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x72,
1357	0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x65,
1358	0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x63,
1359	0x6f, 0x64, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52,
1360	0x0b, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x2a, 0x65, 0x0a, 0x0a,
1361	0x54, 0x68, 0x72, 0x65, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x48,
1362	0x52, 0x45, 0x41, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
1363	0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x4d, 0x41, 0x4c, 0x57, 0x41,
1364	0x52, 0x45, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x4f, 0x43, 0x49, 0x41, 0x4c, 0x5f, 0x45,
1365	0x4e, 0x47, 0x49, 0x4e, 0x45, 0x45, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11,
1366	0x55, 0x4e, 0x57, 0x41, 0x4e, 0x54, 0x45, 0x44, 0x5f, 0x53, 0x4f, 0x46, 0x54, 0x57, 0x41, 0x52,
1367	0x45, 0x10, 0x03, 0x2a, 0x46, 0x0a, 0x0f, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69,
1368	0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45,
1369	0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45,
1370	0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x52, 0x41, 0x57, 0x10,
1371	0x01, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x49, 0x43, 0x45, 0x10, 0x02, 0x32, 0x9e, 0x05, 0x0a, 0x15,
1372	0x57, 0x65, 0x62, 0x52, 0x69, 0x73, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x56, 0x31,
1373	0x42, 0x65, 0x74, 0x61, 0x31, 0x12, 0xe2, 0x01, 0x0a, 0x15, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74,
1374	0x65, 0x54, 0x68, 0x72, 0x65, 0x61, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x66, 0x66, 0x12,
1375	0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77,
1376	0x65, 0x62, 0x72, 0x69, 0x73, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43,
1377	0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x54, 0x68, 0x72, 0x65, 0x61, 0x74, 0x4c, 0x69, 0x73, 0x74,
1378	0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x67, 0x6f,
1379	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x65, 0x62, 0x72, 0x69,
1380	0x73, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x75,
1381	0x74, 0x65, 0x54, 0x68, 0x72, 0x65, 0x61, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x66, 0x66,
1382	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x50, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22,
1383	0x12, 0x20, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x74, 0x68, 0x72, 0x65, 0x61,
1384	0x74, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x44, 0x69,
1385	0x66, 0x66, 0xda, 0x41, 0x25, 0x74, 0x68, 0x72, 0x65, 0x61, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65,
1386	0x2c, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2c, 0x63,
1387	0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x12, 0xa0, 0x01, 0x0a, 0x0a, 0x53,
1388	0x65, 0x61, 0x72, 0x63, 0x68, 0x55, 0x72, 0x69, 0x73, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
1389	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x65, 0x62, 0x72, 0x69, 0x73, 0x6b,
1390	0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55,
1391	0x72, 0x69, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x6f, 0x6f,
1392	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x65, 0x62, 0x72, 0x69, 0x73,
1393	0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68,
1394	0x55, 0x72, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3,
1395	0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x75,
1396	0x72, 0x69, 0x73, 0x3a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0xda, 0x41, 0x10, 0x75, 0x72, 0x69,
1397	0x2c, 0x74, 0x68, 0x72, 0x65, 0x61, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0xb0, 0x01,
1398	0x0a, 0x0c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x31,
1399	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x65,
1400	0x62, 0x72, 0x69, 0x73, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x65,
1401	0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
1402	0x74, 0x1a, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
1403	0x2e, 0x77, 0x65, 0x62, 0x72, 0x69, 0x73, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
1404	0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x52, 0x65, 0x73,
1405	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f,
1406	0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x3a, 0x73,
1407	0x65, 0x61, 0x72, 0x63, 0x68, 0xda, 0x41, 0x18, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x70, 0x72, 0x65,
1408	0x66, 0x69, 0x78, 0x2c, 0x74, 0x68, 0x72, 0x65, 0x61, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73,
1409	0x1a, 0x4a, 0xca, 0x41, 0x16, 0x77, 0x65, 0x62, 0x72, 0x69, 0x73, 0x6b, 0x2e, 0x67, 0x6f, 0x6f,
1410	0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 0x68, 0x74,
1411	0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
1412	0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c,
1413	0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0xd8, 0x01, 0x0a,
1414	0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x77, 0x65, 0x62, 0x72,
1415	0x69, 0x73, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0c, 0x57, 0x65, 0x62,
1416	0x52, 0x69, 0x73, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x67, 0x6f, 0x6f,
1417	0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67,
1418	0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70,
1419	0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x77, 0x65, 0x62, 0x72, 0x69, 0x73, 0x6b,
1420	0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x77, 0x65, 0x62, 0x72, 0x69, 0x73, 0x6b,
1421	0xa2, 0x02, 0x04, 0x47, 0x43, 0x57, 0x52, 0xaa, 0x02, 0x1c, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
1422	0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x57, 0x65, 0x62, 0x52, 0x69, 0x73, 0x6b, 0x2e, 0x56,
1423	0x31, 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1c, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c,
1424	0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x57, 0x65, 0x62, 0x52, 0x69, 0x73, 0x6b, 0x5c, 0x56, 0x31,
1425	0x62, 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a,
1426	0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x57, 0x65, 0x62, 0x52, 0x69, 0x73, 0x6b, 0x3a, 0x3a,
1427	0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
1428}
1429
1430var (
1431	file_google_cloud_webrisk_v1beta1_webrisk_proto_rawDescOnce sync.Once
1432	file_google_cloud_webrisk_v1beta1_webrisk_proto_rawDescData = file_google_cloud_webrisk_v1beta1_webrisk_proto_rawDesc
1433)
1434
1435func file_google_cloud_webrisk_v1beta1_webrisk_proto_rawDescGZIP() []byte {
1436	file_google_cloud_webrisk_v1beta1_webrisk_proto_rawDescOnce.Do(func() {
1437		file_google_cloud_webrisk_v1beta1_webrisk_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_webrisk_v1beta1_webrisk_proto_rawDescData)
1438	})
1439	return file_google_cloud_webrisk_v1beta1_webrisk_proto_rawDescData
1440}
1441
1442var file_google_cloud_webrisk_v1beta1_webrisk_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
1443var file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes = make([]protoimpl.MessageInfo, 15)
1444var file_google_cloud_webrisk_v1beta1_webrisk_proto_goTypes = []interface{}{
1445	(ThreatType)(0),      // 0: google.cloud.webrisk.v1beta1.ThreatType
1446	(CompressionType)(0), // 1: google.cloud.webrisk.v1beta1.CompressionType
1447	(ComputeThreatListDiffResponse_ResponseType)(0),  // 2: google.cloud.webrisk.v1beta1.ComputeThreatListDiffResponse.ResponseType
1448	(*ComputeThreatListDiffRequest)(nil),             // 3: google.cloud.webrisk.v1beta1.ComputeThreatListDiffRequest
1449	(*ComputeThreatListDiffResponse)(nil),            // 4: google.cloud.webrisk.v1beta1.ComputeThreatListDiffResponse
1450	(*SearchUrisRequest)(nil),                        // 5: google.cloud.webrisk.v1beta1.SearchUrisRequest
1451	(*SearchUrisResponse)(nil),                       // 6: google.cloud.webrisk.v1beta1.SearchUrisResponse
1452	(*SearchHashesRequest)(nil),                      // 7: google.cloud.webrisk.v1beta1.SearchHashesRequest
1453	(*SearchHashesResponse)(nil),                     // 8: google.cloud.webrisk.v1beta1.SearchHashesResponse
1454	(*ThreatEntryAdditions)(nil),                     // 9: google.cloud.webrisk.v1beta1.ThreatEntryAdditions
1455	(*ThreatEntryRemovals)(nil),                      // 10: google.cloud.webrisk.v1beta1.ThreatEntryRemovals
1456	(*RawIndices)(nil),                               // 11: google.cloud.webrisk.v1beta1.RawIndices
1457	(*RawHashes)(nil),                                // 12: google.cloud.webrisk.v1beta1.RawHashes
1458	(*RiceDeltaEncoding)(nil),                        // 13: google.cloud.webrisk.v1beta1.RiceDeltaEncoding
1459	(*ComputeThreatListDiffRequest_Constraints)(nil), // 14: google.cloud.webrisk.v1beta1.ComputeThreatListDiffRequest.Constraints
1460	(*ComputeThreatListDiffResponse_Checksum)(nil),   // 15: google.cloud.webrisk.v1beta1.ComputeThreatListDiffResponse.Checksum
1461	(*SearchUrisResponse_ThreatUri)(nil),             // 16: google.cloud.webrisk.v1beta1.SearchUrisResponse.ThreatUri
1462	(*SearchHashesResponse_ThreatHash)(nil),          // 17: google.cloud.webrisk.v1beta1.SearchHashesResponse.ThreatHash
1463	(*timestamp.Timestamp)(nil),                      // 18: google.protobuf.Timestamp
1464}
1465var file_google_cloud_webrisk_v1beta1_webrisk_proto_depIdxs = []int32{
1466	0,  // 0: google.cloud.webrisk.v1beta1.ComputeThreatListDiffRequest.threat_type:type_name -> google.cloud.webrisk.v1beta1.ThreatType
1467	14, // 1: google.cloud.webrisk.v1beta1.ComputeThreatListDiffRequest.constraints:type_name -> google.cloud.webrisk.v1beta1.ComputeThreatListDiffRequest.Constraints
1468	2,  // 2: google.cloud.webrisk.v1beta1.ComputeThreatListDiffResponse.response_type:type_name -> google.cloud.webrisk.v1beta1.ComputeThreatListDiffResponse.ResponseType
1469	9,  // 3: google.cloud.webrisk.v1beta1.ComputeThreatListDiffResponse.additions:type_name -> google.cloud.webrisk.v1beta1.ThreatEntryAdditions
1470	10, // 4: google.cloud.webrisk.v1beta1.ComputeThreatListDiffResponse.removals:type_name -> google.cloud.webrisk.v1beta1.ThreatEntryRemovals
1471	15, // 5: google.cloud.webrisk.v1beta1.ComputeThreatListDiffResponse.checksum:type_name -> google.cloud.webrisk.v1beta1.ComputeThreatListDiffResponse.Checksum
1472	18, // 6: google.cloud.webrisk.v1beta1.ComputeThreatListDiffResponse.recommended_next_diff:type_name -> google.protobuf.Timestamp
1473	0,  // 7: google.cloud.webrisk.v1beta1.SearchUrisRequest.threat_types:type_name -> google.cloud.webrisk.v1beta1.ThreatType
1474	16, // 8: google.cloud.webrisk.v1beta1.SearchUrisResponse.threat:type_name -> google.cloud.webrisk.v1beta1.SearchUrisResponse.ThreatUri
1475	0,  // 9: google.cloud.webrisk.v1beta1.SearchHashesRequest.threat_types:type_name -> google.cloud.webrisk.v1beta1.ThreatType
1476	17, // 10: google.cloud.webrisk.v1beta1.SearchHashesResponse.threats:type_name -> google.cloud.webrisk.v1beta1.SearchHashesResponse.ThreatHash
1477	18, // 11: google.cloud.webrisk.v1beta1.SearchHashesResponse.negative_expire_time:type_name -> google.protobuf.Timestamp
1478	12, // 12: google.cloud.webrisk.v1beta1.ThreatEntryAdditions.raw_hashes:type_name -> google.cloud.webrisk.v1beta1.RawHashes
1479	13, // 13: google.cloud.webrisk.v1beta1.ThreatEntryAdditions.rice_hashes:type_name -> google.cloud.webrisk.v1beta1.RiceDeltaEncoding
1480	11, // 14: google.cloud.webrisk.v1beta1.ThreatEntryRemovals.raw_indices:type_name -> google.cloud.webrisk.v1beta1.RawIndices
1481	13, // 15: google.cloud.webrisk.v1beta1.ThreatEntryRemovals.rice_indices:type_name -> google.cloud.webrisk.v1beta1.RiceDeltaEncoding
1482	1,  // 16: google.cloud.webrisk.v1beta1.ComputeThreatListDiffRequest.Constraints.supported_compressions:type_name -> google.cloud.webrisk.v1beta1.CompressionType
1483	0,  // 17: google.cloud.webrisk.v1beta1.SearchUrisResponse.ThreatUri.threat_types:type_name -> google.cloud.webrisk.v1beta1.ThreatType
1484	18, // 18: google.cloud.webrisk.v1beta1.SearchUrisResponse.ThreatUri.expire_time:type_name -> google.protobuf.Timestamp
1485	0,  // 19: google.cloud.webrisk.v1beta1.SearchHashesResponse.ThreatHash.threat_types:type_name -> google.cloud.webrisk.v1beta1.ThreatType
1486	18, // 20: google.cloud.webrisk.v1beta1.SearchHashesResponse.ThreatHash.expire_time:type_name -> google.protobuf.Timestamp
1487	3,  // 21: google.cloud.webrisk.v1beta1.WebRiskServiceV1Beta1.ComputeThreatListDiff:input_type -> google.cloud.webrisk.v1beta1.ComputeThreatListDiffRequest
1488	5,  // 22: google.cloud.webrisk.v1beta1.WebRiskServiceV1Beta1.SearchUris:input_type -> google.cloud.webrisk.v1beta1.SearchUrisRequest
1489	7,  // 23: google.cloud.webrisk.v1beta1.WebRiskServiceV1Beta1.SearchHashes:input_type -> google.cloud.webrisk.v1beta1.SearchHashesRequest
1490	4,  // 24: google.cloud.webrisk.v1beta1.WebRiskServiceV1Beta1.ComputeThreatListDiff:output_type -> google.cloud.webrisk.v1beta1.ComputeThreatListDiffResponse
1491	6,  // 25: google.cloud.webrisk.v1beta1.WebRiskServiceV1Beta1.SearchUris:output_type -> google.cloud.webrisk.v1beta1.SearchUrisResponse
1492	8,  // 26: google.cloud.webrisk.v1beta1.WebRiskServiceV1Beta1.SearchHashes:output_type -> google.cloud.webrisk.v1beta1.SearchHashesResponse
1493	24, // [24:27] is the sub-list for method output_type
1494	21, // [21:24] is the sub-list for method input_type
1495	21, // [21:21] is the sub-list for extension type_name
1496	21, // [21:21] is the sub-list for extension extendee
1497	0,  // [0:21] is the sub-list for field type_name
1498}
1499
1500func init() { file_google_cloud_webrisk_v1beta1_webrisk_proto_init() }
1501func file_google_cloud_webrisk_v1beta1_webrisk_proto_init() {
1502	if File_google_cloud_webrisk_v1beta1_webrisk_proto != nil {
1503		return
1504	}
1505	if !protoimpl.UnsafeEnabled {
1506		file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
1507			switch v := v.(*ComputeThreatListDiffRequest); i {
1508			case 0:
1509				return &v.state
1510			case 1:
1511				return &v.sizeCache
1512			case 2:
1513				return &v.unknownFields
1514			default:
1515				return nil
1516			}
1517		}
1518		file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
1519			switch v := v.(*ComputeThreatListDiffResponse); i {
1520			case 0:
1521				return &v.state
1522			case 1:
1523				return &v.sizeCache
1524			case 2:
1525				return &v.unknownFields
1526			default:
1527				return nil
1528			}
1529		}
1530		file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
1531			switch v := v.(*SearchUrisRequest); i {
1532			case 0:
1533				return &v.state
1534			case 1:
1535				return &v.sizeCache
1536			case 2:
1537				return &v.unknownFields
1538			default:
1539				return nil
1540			}
1541		}
1542		file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
1543			switch v := v.(*SearchUrisResponse); i {
1544			case 0:
1545				return &v.state
1546			case 1:
1547				return &v.sizeCache
1548			case 2:
1549				return &v.unknownFields
1550			default:
1551				return nil
1552			}
1553		}
1554		file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
1555			switch v := v.(*SearchHashesRequest); i {
1556			case 0:
1557				return &v.state
1558			case 1:
1559				return &v.sizeCache
1560			case 2:
1561				return &v.unknownFields
1562			default:
1563				return nil
1564			}
1565		}
1566		file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
1567			switch v := v.(*SearchHashesResponse); i {
1568			case 0:
1569				return &v.state
1570			case 1:
1571				return &v.sizeCache
1572			case 2:
1573				return &v.unknownFields
1574			default:
1575				return nil
1576			}
1577		}
1578		file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
1579			switch v := v.(*ThreatEntryAdditions); i {
1580			case 0:
1581				return &v.state
1582			case 1:
1583				return &v.sizeCache
1584			case 2:
1585				return &v.unknownFields
1586			default:
1587				return nil
1588			}
1589		}
1590		file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
1591			switch v := v.(*ThreatEntryRemovals); i {
1592			case 0:
1593				return &v.state
1594			case 1:
1595				return &v.sizeCache
1596			case 2:
1597				return &v.unknownFields
1598			default:
1599				return nil
1600			}
1601		}
1602		file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
1603			switch v := v.(*RawIndices); i {
1604			case 0:
1605				return &v.state
1606			case 1:
1607				return &v.sizeCache
1608			case 2:
1609				return &v.unknownFields
1610			default:
1611				return nil
1612			}
1613		}
1614		file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
1615			switch v := v.(*RawHashes); i {
1616			case 0:
1617				return &v.state
1618			case 1:
1619				return &v.sizeCache
1620			case 2:
1621				return &v.unknownFields
1622			default:
1623				return nil
1624			}
1625		}
1626		file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
1627			switch v := v.(*RiceDeltaEncoding); i {
1628			case 0:
1629				return &v.state
1630			case 1:
1631				return &v.sizeCache
1632			case 2:
1633				return &v.unknownFields
1634			default:
1635				return nil
1636			}
1637		}
1638		file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
1639			switch v := v.(*ComputeThreatListDiffRequest_Constraints); i {
1640			case 0:
1641				return &v.state
1642			case 1:
1643				return &v.sizeCache
1644			case 2:
1645				return &v.unknownFields
1646			default:
1647				return nil
1648			}
1649		}
1650		file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
1651			switch v := v.(*ComputeThreatListDiffResponse_Checksum); i {
1652			case 0:
1653				return &v.state
1654			case 1:
1655				return &v.sizeCache
1656			case 2:
1657				return &v.unknownFields
1658			default:
1659				return nil
1660			}
1661		}
1662		file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
1663			switch v := v.(*SearchUrisResponse_ThreatUri); i {
1664			case 0:
1665				return &v.state
1666			case 1:
1667				return &v.sizeCache
1668			case 2:
1669				return &v.unknownFields
1670			default:
1671				return nil
1672			}
1673		}
1674		file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
1675			switch v := v.(*SearchHashesResponse_ThreatHash); i {
1676			case 0:
1677				return &v.state
1678			case 1:
1679				return &v.sizeCache
1680			case 2:
1681				return &v.unknownFields
1682			default:
1683				return nil
1684			}
1685		}
1686	}
1687	type x struct{}
1688	out := protoimpl.TypeBuilder{
1689		File: protoimpl.DescBuilder{
1690			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
1691			RawDescriptor: file_google_cloud_webrisk_v1beta1_webrisk_proto_rawDesc,
1692			NumEnums:      3,
1693			NumMessages:   15,
1694			NumExtensions: 0,
1695			NumServices:   1,
1696		},
1697		GoTypes:           file_google_cloud_webrisk_v1beta1_webrisk_proto_goTypes,
1698		DependencyIndexes: file_google_cloud_webrisk_v1beta1_webrisk_proto_depIdxs,
1699		EnumInfos:         file_google_cloud_webrisk_v1beta1_webrisk_proto_enumTypes,
1700		MessageInfos:      file_google_cloud_webrisk_v1beta1_webrisk_proto_msgTypes,
1701	}.Build()
1702	File_google_cloud_webrisk_v1beta1_webrisk_proto = out.File
1703	file_google_cloud_webrisk_v1beta1_webrisk_proto_rawDesc = nil
1704	file_google_cloud_webrisk_v1beta1_webrisk_proto_goTypes = nil
1705	file_google_cloud_webrisk_v1beta1_webrisk_proto_depIdxs = nil
1706}
1707
1708// Reference imports to suppress errors if they are not otherwise used.
1709var _ context.Context
1710var _ grpc.ClientConnInterface
1711
1712// This is a compile-time assertion to ensure that this generated file
1713// is compatible with the grpc package it is being compiled against.
1714const _ = grpc.SupportPackageIsVersion6
1715
1716// WebRiskServiceV1Beta1Client is the client API for WebRiskServiceV1Beta1 service.
1717//
1718// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
1719type WebRiskServiceV1Beta1Client interface {
1720	// Gets the most recent threat list diffs.
1721	ComputeThreatListDiff(ctx context.Context, in *ComputeThreatListDiffRequest, opts ...grpc.CallOption) (*ComputeThreatListDiffResponse, error)
1722	// This method is used to check whether a URI is on a given threatList.
1723	SearchUris(ctx context.Context, in *SearchUrisRequest, opts ...grpc.CallOption) (*SearchUrisResponse, error)
1724	// Gets the full hashes that match the requested hash prefix.
1725	// This is used after a hash prefix is looked up in a threatList
1726	// and there is a match. The client side threatList only holds partial hashes
1727	// so the client must query this method to determine if there is a full
1728	// hash match of a threat.
1729	SearchHashes(ctx context.Context, in *SearchHashesRequest, opts ...grpc.CallOption) (*SearchHashesResponse, error)
1730}
1731
1732type webRiskServiceV1Beta1Client struct {
1733	cc grpc.ClientConnInterface
1734}
1735
1736func NewWebRiskServiceV1Beta1Client(cc grpc.ClientConnInterface) WebRiskServiceV1Beta1Client {
1737	return &webRiskServiceV1Beta1Client{cc}
1738}
1739
1740func (c *webRiskServiceV1Beta1Client) ComputeThreatListDiff(ctx context.Context, in *ComputeThreatListDiffRequest, opts ...grpc.CallOption) (*ComputeThreatListDiffResponse, error) {
1741	out := new(ComputeThreatListDiffResponse)
1742	err := c.cc.Invoke(ctx, "/google.cloud.webrisk.v1beta1.WebRiskServiceV1Beta1/ComputeThreatListDiff", in, out, opts...)
1743	if err != nil {
1744		return nil, err
1745	}
1746	return out, nil
1747}
1748
1749func (c *webRiskServiceV1Beta1Client) SearchUris(ctx context.Context, in *SearchUrisRequest, opts ...grpc.CallOption) (*SearchUrisResponse, error) {
1750	out := new(SearchUrisResponse)
1751	err := c.cc.Invoke(ctx, "/google.cloud.webrisk.v1beta1.WebRiskServiceV1Beta1/SearchUris", in, out, opts...)
1752	if err != nil {
1753		return nil, err
1754	}
1755	return out, nil
1756}
1757
1758func (c *webRiskServiceV1Beta1Client) SearchHashes(ctx context.Context, in *SearchHashesRequest, opts ...grpc.CallOption) (*SearchHashesResponse, error) {
1759	out := new(SearchHashesResponse)
1760	err := c.cc.Invoke(ctx, "/google.cloud.webrisk.v1beta1.WebRiskServiceV1Beta1/SearchHashes", in, out, opts...)
1761	if err != nil {
1762		return nil, err
1763	}
1764	return out, nil
1765}
1766
1767// WebRiskServiceV1Beta1Server is the server API for WebRiskServiceV1Beta1 service.
1768type WebRiskServiceV1Beta1Server interface {
1769	// Gets the most recent threat list diffs.
1770	ComputeThreatListDiff(context.Context, *ComputeThreatListDiffRequest) (*ComputeThreatListDiffResponse, error)
1771	// This method is used to check whether a URI is on a given threatList.
1772	SearchUris(context.Context, *SearchUrisRequest) (*SearchUrisResponse, error)
1773	// Gets the full hashes that match the requested hash prefix.
1774	// This is used after a hash prefix is looked up in a threatList
1775	// and there is a match. The client side threatList only holds partial hashes
1776	// so the client must query this method to determine if there is a full
1777	// hash match of a threat.
1778	SearchHashes(context.Context, *SearchHashesRequest) (*SearchHashesResponse, error)
1779}
1780
1781// UnimplementedWebRiskServiceV1Beta1Server can be embedded to have forward compatible implementations.
1782type UnimplementedWebRiskServiceV1Beta1Server struct {
1783}
1784
1785func (*UnimplementedWebRiskServiceV1Beta1Server) ComputeThreatListDiff(context.Context, *ComputeThreatListDiffRequest) (*ComputeThreatListDiffResponse, error) {
1786	return nil, status.Errorf(codes.Unimplemented, "method ComputeThreatListDiff not implemented")
1787}
1788func (*UnimplementedWebRiskServiceV1Beta1Server) SearchUris(context.Context, *SearchUrisRequest) (*SearchUrisResponse, error) {
1789	return nil, status.Errorf(codes.Unimplemented, "method SearchUris not implemented")
1790}
1791func (*UnimplementedWebRiskServiceV1Beta1Server) SearchHashes(context.Context, *SearchHashesRequest) (*SearchHashesResponse, error) {
1792	return nil, status.Errorf(codes.Unimplemented, "method SearchHashes not implemented")
1793}
1794
1795func RegisterWebRiskServiceV1Beta1Server(s *grpc.Server, srv WebRiskServiceV1Beta1Server) {
1796	s.RegisterService(&_WebRiskServiceV1Beta1_serviceDesc, srv)
1797}
1798
1799func _WebRiskServiceV1Beta1_ComputeThreatListDiff_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1800	in := new(ComputeThreatListDiffRequest)
1801	if err := dec(in); err != nil {
1802		return nil, err
1803	}
1804	if interceptor == nil {
1805		return srv.(WebRiskServiceV1Beta1Server).ComputeThreatListDiff(ctx, in)
1806	}
1807	info := &grpc.UnaryServerInfo{
1808		Server:     srv,
1809		FullMethod: "/google.cloud.webrisk.v1beta1.WebRiskServiceV1Beta1/ComputeThreatListDiff",
1810	}
1811	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1812		return srv.(WebRiskServiceV1Beta1Server).ComputeThreatListDiff(ctx, req.(*ComputeThreatListDiffRequest))
1813	}
1814	return interceptor(ctx, in, info, handler)
1815}
1816
1817func _WebRiskServiceV1Beta1_SearchUris_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1818	in := new(SearchUrisRequest)
1819	if err := dec(in); err != nil {
1820		return nil, err
1821	}
1822	if interceptor == nil {
1823		return srv.(WebRiskServiceV1Beta1Server).SearchUris(ctx, in)
1824	}
1825	info := &grpc.UnaryServerInfo{
1826		Server:     srv,
1827		FullMethod: "/google.cloud.webrisk.v1beta1.WebRiskServiceV1Beta1/SearchUris",
1828	}
1829	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1830		return srv.(WebRiskServiceV1Beta1Server).SearchUris(ctx, req.(*SearchUrisRequest))
1831	}
1832	return interceptor(ctx, in, info, handler)
1833}
1834
1835func _WebRiskServiceV1Beta1_SearchHashes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1836	in := new(SearchHashesRequest)
1837	if err := dec(in); err != nil {
1838		return nil, err
1839	}
1840	if interceptor == nil {
1841		return srv.(WebRiskServiceV1Beta1Server).SearchHashes(ctx, in)
1842	}
1843	info := &grpc.UnaryServerInfo{
1844		Server:     srv,
1845		FullMethod: "/google.cloud.webrisk.v1beta1.WebRiskServiceV1Beta1/SearchHashes",
1846	}
1847	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1848		return srv.(WebRiskServiceV1Beta1Server).SearchHashes(ctx, req.(*SearchHashesRequest))
1849	}
1850	return interceptor(ctx, in, info, handler)
1851}
1852
1853var _WebRiskServiceV1Beta1_serviceDesc = grpc.ServiceDesc{
1854	ServiceName: "google.cloud.webrisk.v1beta1.WebRiskServiceV1Beta1",
1855	HandlerType: (*WebRiskServiceV1Beta1Server)(nil),
1856	Methods: []grpc.MethodDesc{
1857		{
1858			MethodName: "ComputeThreatListDiff",
1859			Handler:    _WebRiskServiceV1Beta1_ComputeThreatListDiff_Handler,
1860		},
1861		{
1862			MethodName: "SearchUris",
1863			Handler:    _WebRiskServiceV1Beta1_SearchUris_Handler,
1864		},
1865		{
1866			MethodName: "SearchHashes",
1867			Handler:    _WebRiskServiceV1Beta1_SearchHashes_Handler,
1868		},
1869	},
1870	Streams:  []grpc.StreamDesc{},
1871	Metadata: "google/cloud/webrisk/v1beta1/webrisk.proto",
1872}
1873