google-cloud-web_risk-v1 0.7.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -192,6 +192,44 @@ module Google
192
192
  result
193
193
  end
194
194
 
195
+ ##
196
+ # Baseline implementation for the submit_uri REST call
197
+ #
198
+ # @param request_pb [::Google::Cloud::WebRisk::V1::SubmitUriRequest]
199
+ # A request object representing the call parameters. Required.
200
+ # @param options [::Gapic::CallOptions]
201
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
202
+ #
203
+ # @yield [result, operation] Access the result along with the TransportOperation object
204
+ # @yieldparam result [::Google::Longrunning::Operation]
205
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
206
+ #
207
+ # @return [::Google::Longrunning::Operation]
208
+ # A result object deserialized from the server's reply
209
+ def submit_uri request_pb, options = nil
210
+ raise ::ArgumentError, "request must be provided" if request_pb.nil?
211
+
212
+ verb, uri, query_string_params, body = ServiceStub.transcode_submit_uri_request request_pb
213
+ query_string_params = if query_string_params.any?
214
+ query_string_params.to_h { |p| p.split("=", 2) }
215
+ else
216
+ {}
217
+ end
218
+
219
+ response = @client_stub.make_http_request(
220
+ verb,
221
+ uri: uri,
222
+ body: body || "",
223
+ params: query_string_params,
224
+ options: options
225
+ )
226
+ operation = ::Gapic::Rest::TransportOperation.new response
227
+ result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true
228
+
229
+ yield result, operation if block_given?
230
+ result
231
+ end
232
+
195
233
  ##
196
234
  # @private
197
235
  #
@@ -270,6 +308,28 @@ module Google
270
308
  )
271
309
  transcoder.transcode request_pb
272
310
  end
311
+
312
+ ##
313
+ # @private
314
+ #
315
+ # GRPC transcoding helper method for the submit_uri REST call
316
+ #
317
+ # @param request_pb [::Google::Cloud::WebRisk::V1::SubmitUriRequest]
318
+ # A request object representing the call parameters. Required.
319
+ # @return [Array(String, [String, nil], Hash{String => String})]
320
+ # Uri, Body, Query string parameters
321
+ def self.transcode_submit_uri_request request_pb
322
+ transcoder = Gapic::Rest::GrpcTranscoder.new
323
+ .with_bindings(
324
+ uri_method: :post,
325
+ uri_template: "/v1/{parent}/uris:submit",
326
+ body: "*",
327
+ matches: [
328
+ ["parent", %r{^projects/[^/]+/?$}, false]
329
+ ]
330
+ )
331
+ transcoder.transcode request_pb
332
+ end
273
333
  end
274
334
  end
275
335
  end
@@ -24,6 +24,7 @@ require "google/cloud/web_risk/v1/version"
24
24
 
25
25
  require "google/cloud/web_risk/v1/web_risk_service/credentials"
26
26
  require "google/cloud/web_risk/v1/web_risk_service/paths"
27
+ require "google/cloud/web_risk/v1/web_risk_service/rest/operations"
27
28
  require "google/cloud/web_risk/v1/web_risk_service/rest/client"
28
29
 
29
30
  module Google
@@ -24,6 +24,7 @@ require "google/cloud/web_risk/v1/version"
24
24
 
25
25
  require "google/cloud/web_risk/v1/web_risk_service/credentials"
26
26
  require "google/cloud/web_risk/v1/web_risk_service/paths"
27
+ require "google/cloud/web_risk/v1/web_risk_service/operations"
27
28
  require "google/cloud/web_risk/v1/web_risk_service/client"
28
29
  require "google/cloud/web_risk/v1/web_risk_service/rest"
29
30
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
2
3
  # source: google/cloud/webrisk/v1/webrisk.proto
3
4
 
@@ -7,101 +8,35 @@ require 'google/api/annotations_pb'
7
8
  require 'google/api/client_pb'
8
9
  require 'google/api/field_behavior_pb'
9
10
  require 'google/api/resource_pb'
11
+ require 'google/longrunning/operations_pb'
10
12
  require 'google/protobuf/timestamp_pb'
11
13
 
12
- Google::Protobuf::DescriptorPool.generated_pool.build do
13
- add_file("google/cloud/webrisk/v1/webrisk.proto", :syntax => :proto3) do
14
- add_message "google.cloud.webrisk.v1.ComputeThreatListDiffRequest" do
15
- optional :threat_type, :enum, 1, "google.cloud.webrisk.v1.ThreatType"
16
- optional :version_token, :bytes, 2
17
- optional :constraints, :message, 3, "google.cloud.webrisk.v1.ComputeThreatListDiffRequest.Constraints"
18
- end
19
- add_message "google.cloud.webrisk.v1.ComputeThreatListDiffRequest.Constraints" do
20
- optional :max_diff_entries, :int32, 1
21
- optional :max_database_entries, :int32, 2
22
- repeated :supported_compressions, :enum, 3, "google.cloud.webrisk.v1.CompressionType"
23
- end
24
- add_message "google.cloud.webrisk.v1.ComputeThreatListDiffResponse" do
25
- optional :response_type, :enum, 4, "google.cloud.webrisk.v1.ComputeThreatListDiffResponse.ResponseType"
26
- optional :additions, :message, 5, "google.cloud.webrisk.v1.ThreatEntryAdditions"
27
- optional :removals, :message, 6, "google.cloud.webrisk.v1.ThreatEntryRemovals"
28
- optional :new_version_token, :bytes, 7
29
- optional :checksum, :message, 8, "google.cloud.webrisk.v1.ComputeThreatListDiffResponse.Checksum"
30
- optional :recommended_next_diff, :message, 2, "google.protobuf.Timestamp"
31
- end
32
- add_message "google.cloud.webrisk.v1.ComputeThreatListDiffResponse.Checksum" do
33
- optional :sha256, :bytes, 1
34
- end
35
- add_enum "google.cloud.webrisk.v1.ComputeThreatListDiffResponse.ResponseType" do
36
- value :RESPONSE_TYPE_UNSPECIFIED, 0
37
- value :DIFF, 1
38
- value :RESET, 2
39
- end
40
- add_message "google.cloud.webrisk.v1.SearchUrisRequest" do
41
- optional :uri, :string, 1
42
- repeated :threat_types, :enum, 2, "google.cloud.webrisk.v1.ThreatType"
43
- end
44
- add_message "google.cloud.webrisk.v1.SearchUrisResponse" do
45
- optional :threat, :message, 1, "google.cloud.webrisk.v1.SearchUrisResponse.ThreatUri"
46
- end
47
- add_message "google.cloud.webrisk.v1.SearchUrisResponse.ThreatUri" do
48
- repeated :threat_types, :enum, 1, "google.cloud.webrisk.v1.ThreatType"
49
- optional :expire_time, :message, 2, "google.protobuf.Timestamp"
50
- end
51
- add_message "google.cloud.webrisk.v1.SearchHashesRequest" do
52
- optional :hash_prefix, :bytes, 1
53
- repeated :threat_types, :enum, 2, "google.cloud.webrisk.v1.ThreatType"
54
- end
55
- add_message "google.cloud.webrisk.v1.SearchHashesResponse" do
56
- repeated :threats, :message, 1, "google.cloud.webrisk.v1.SearchHashesResponse.ThreatHash"
57
- optional :negative_expire_time, :message, 2, "google.protobuf.Timestamp"
58
- end
59
- add_message "google.cloud.webrisk.v1.SearchHashesResponse.ThreatHash" do
60
- repeated :threat_types, :enum, 1, "google.cloud.webrisk.v1.ThreatType"
61
- optional :hash, :bytes, 2
62
- optional :expire_time, :message, 3, "google.protobuf.Timestamp"
63
- end
64
- add_message "google.cloud.webrisk.v1.ThreatEntryAdditions" do
65
- repeated :raw_hashes, :message, 1, "google.cloud.webrisk.v1.RawHashes"
66
- optional :rice_hashes, :message, 2, "google.cloud.webrisk.v1.RiceDeltaEncoding"
67
- end
68
- add_message "google.cloud.webrisk.v1.ThreatEntryRemovals" do
69
- optional :raw_indices, :message, 1, "google.cloud.webrisk.v1.RawIndices"
70
- optional :rice_indices, :message, 2, "google.cloud.webrisk.v1.RiceDeltaEncoding"
71
- end
72
- add_message "google.cloud.webrisk.v1.RawIndices" do
73
- repeated :indices, :int32, 1
74
- end
75
- add_message "google.cloud.webrisk.v1.RawHashes" do
76
- optional :prefix_size, :int32, 1
77
- optional :raw_hashes, :bytes, 2
78
- end
79
- add_message "google.cloud.webrisk.v1.RiceDeltaEncoding" do
80
- optional :first_value, :int64, 1
81
- optional :rice_parameter, :int32, 2
82
- optional :entry_count, :int32, 3
83
- optional :encoded_data, :bytes, 4
84
- end
85
- add_message "google.cloud.webrisk.v1.Submission" do
86
- optional :uri, :string, 1
87
- end
88
- add_message "google.cloud.webrisk.v1.CreateSubmissionRequest" do
89
- optional :parent, :string, 1
90
- optional :submission, :message, 2, "google.cloud.webrisk.v1.Submission"
91
- end
92
- add_enum "google.cloud.webrisk.v1.ThreatType" do
93
- value :THREAT_TYPE_UNSPECIFIED, 0
94
- value :MALWARE, 1
95
- value :SOCIAL_ENGINEERING, 2
96
- value :UNWANTED_SOFTWARE, 3
97
- value :SOCIAL_ENGINEERING_EXTENDED_COVERAGE, 4
98
- end
99
- add_enum "google.cloud.webrisk.v1.CompressionType" do
100
- value :COMPRESSION_TYPE_UNSPECIFIED, 0
101
- value :RAW, 1
102
- value :RICE, 2
14
+
15
+ descriptor_data = "\n%google/cloud/webrisk/v1/webrisk.proto\x12\x17google.cloud.webrisk.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a#google/longrunning/operations.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xe3\x02\n\x1c\x43omputeThreatListDiffRequest\x12=\n\x0bthreat_type\x18\x01 \x01(\x0e\x32#.google.cloud.webrisk.v1.ThreatTypeB\x03\xe0\x41\x02\x12\x15\n\rversion_token\x18\x02 \x01(\x0c\x12[\n\x0b\x63onstraints\x18\x03 \x01(\x0b\x32\x41.google.cloud.webrisk.v1.ComputeThreatListDiffRequest.ConstraintsB\x03\xe0\x41\x02\x1a\x8f\x01\n\x0b\x43onstraints\x12\x18\n\x10max_diff_entries\x18\x01 \x01(\x05\x12\x1c\n\x14max_database_entries\x18\x02 \x01(\x05\x12H\n\x16supported_compressions\x18\x03 \x03(\x0e\x32(.google.cloud.webrisk.v1.CompressionType\"\x86\x04\n\x1d\x43omputeThreatListDiffResponse\x12Z\n\rresponse_type\x18\x04 \x01(\x0e\x32\x43.google.cloud.webrisk.v1.ComputeThreatListDiffResponse.ResponseType\x12@\n\tadditions\x18\x05 \x01(\x0b\x32-.google.cloud.webrisk.v1.ThreatEntryAdditions\x12>\n\x08removals\x18\x06 \x01(\x0b\x32,.google.cloud.webrisk.v1.ThreatEntryRemovals\x12\x19\n\x11new_version_token\x18\x07 \x01(\x0c\x12Q\n\x08\x63hecksum\x18\x08 \x01(\x0b\x32?.google.cloud.webrisk.v1.ComputeThreatListDiffResponse.Checksum\x12\x39\n\x15recommended_next_diff\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a\x1a\n\x08\x43hecksum\x12\x0e\n\x06sha256\x18\x01 \x01(\x0c\"B\n\x0cResponseType\x12\x1d\n\x19RESPONSE_TYPE_UNSPECIFIED\x10\x00\x12\x08\n\x04\x44IFF\x10\x01\x12\t\n\x05RESET\x10\x02\"e\n\x11SearchUrisRequest\x12\x10\n\x03uri\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12>\n\x0cthreat_types\x18\x02 \x03(\x0e\x32#.google.cloud.webrisk.v1.ThreatTypeB\x03\xe0\x41\x02\"\xd4\x01\n\x12SearchUrisResponse\x12\x45\n\x06threat\x18\x01 \x01(\x0b\x32\x35.google.cloud.webrisk.v1.SearchUrisResponse.ThreatUri\x1aw\n\tThreatUri\x12\x39\n\x0cthreat_types\x18\x01 \x03(\x0e\x32#.google.cloud.webrisk.v1.ThreatType\x12/\n\x0b\x65xpire_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"j\n\x13SearchHashesRequest\x12\x13\n\x0bhash_prefix\x18\x01 \x01(\x0c\x12>\n\x0cthreat_types\x18\x02 \x03(\x0e\x32#.google.cloud.webrisk.v1.ThreatTypeB\x03\xe0\x41\x02\"\xa4\x02\n\x14SearchHashesResponse\x12I\n\x07threats\x18\x01 \x03(\x0b\x32\x38.google.cloud.webrisk.v1.SearchHashesResponse.ThreatHash\x12\x38\n\x14negative_expire_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a\x86\x01\n\nThreatHash\x12\x39\n\x0cthreat_types\x18\x01 \x03(\x0e\x32#.google.cloud.webrisk.v1.ThreatType\x12\x0c\n\x04hash\x18\x02 \x01(\x0c\x12/\n\x0b\x65xpire_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x8f\x01\n\x14ThreatEntryAdditions\x12\x36\n\nraw_hashes\x18\x01 \x03(\x0b\x32\".google.cloud.webrisk.v1.RawHashes\x12?\n\x0brice_hashes\x18\x02 \x01(\x0b\x32*.google.cloud.webrisk.v1.RiceDeltaEncoding\"\x91\x01\n\x13ThreatEntryRemovals\x12\x38\n\x0braw_indices\x18\x01 \x01(\x0b\x32#.google.cloud.webrisk.v1.RawIndices\x12@\n\x0crice_indices\x18\x02 \x01(\x0b\x32*.google.cloud.webrisk.v1.RiceDeltaEncoding\"\x1d\n\nRawIndices\x12\x0f\n\x07indices\x18\x01 \x03(\x05\"4\n\tRawHashes\x12\x13\n\x0bprefix_size\x18\x01 \x01(\x05\x12\x12\n\nraw_hashes\x18\x02 \x01(\x0c\"k\n\x11RiceDeltaEncoding\x12\x13\n\x0b\x66irst_value\x18\x01 \x01(\x03\x12\x16\n\x0erice_parameter\x18\x02 \x01(\x05\x12\x13\n\x0b\x65ntry_count\x18\x03 \x01(\x05\x12\x14\n\x0c\x65ncoded_data\x18\x04 \x01(\x0c\"^\n\nSubmission\x12\x10\n\x03uri\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12>\n\x0cthreat_types\x18\x02 \x03(\x0e\x32#.google.cloud.webrisk.v1.ThreatTypeB\x03\xe0\x41\x03\"\xa5\x06\n\nThreatInfo\x12\x41\n\nabuse_type\x18\x01 \x01(\x0e\x32-.google.cloud.webrisk.v1.ThreatInfo.AbuseType\x12I\n\x11threat_confidence\x18\x02 \x01(\x0b\x32..google.cloud.webrisk.v1.ThreatInfo.Confidence\x12U\n\x14threat_justification\x18\x03 \x01(\x0b\x32\x37.google.cloud.webrisk.v1.ThreatInfo.ThreatJustification\x1a\xcb\x01\n\nConfidence\x12\x0f\n\x05score\x18\x01 \x01(\x02H\x00\x12O\n\x05level\x18\x02 \x01(\x0e\x32>.google.cloud.webrisk.v1.ThreatInfo.Confidence.ConfidenceLevelH\x00\"R\n\x0f\x43onfidenceLevel\x12 \n\x1c\x43ONFIDENCE_LEVEL_UNSPECIFIED\x10\x00\x12\x07\n\x03LOW\x10\x01\x12\n\n\x06MEDIUM\x10\x02\x12\x08\n\x04HIGH\x10\x03\x42\x07\n\x05value\x1a\xfe\x01\n\x13ThreatJustification\x12Z\n\x06labels\x18\x01 \x03(\x0e\x32J.google.cloud.webrisk.v1.ThreatInfo.ThreatJustification.JustificationLabel\x12\x10\n\x08\x63omments\x18\x02 \x03(\t\"y\n\x12JustificationLabel\x12#\n\x1fJUSTIFICATION_LABEL_UNSPECIFIED\x10\x00\x12\x17\n\x13MANUAL_VERIFICATION\x10\x01\x12\x0f\n\x0bUSER_REPORT\x10\x02\x12\x14\n\x10\x41UTOMATED_REPORT\x10\x03\"c\n\tAbuseType\x12\x1a\n\x16\x41\x42USE_TYPE_UNSPECIFIED\x10\x00\x12\x0b\n\x07MALWARE\x10\x01\x12\x16\n\x12SOCIAL_ENGINEERING\x10\x02\x12\x15\n\x11UNWANTED_SOFTWARE\x10\x03\"\xc0\x01\n\x0fThreatDiscovery\x12\x43\n\x08platform\x18\x01 \x01(\x0e\x32\x31.google.cloud.webrisk.v1.ThreatDiscovery.Platform\x12\x14\n\x0cregion_codes\x18\x02 \x03(\t\"R\n\x08Platform\x12\x18\n\x14PLATFORM_UNSPECIFIED\x10\x00\x12\x0b\n\x07\x41NDROID\x10\x01\x12\x07\n\x03IOS\x10\x02\x12\t\n\x05MACOS\x10\x03\x12\x0b\n\x07WINDOWS\x10\x04\"\x9c\x01\n\x17\x43reateSubmissionRequest\x12\x43\n\x06parent\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+cloudresourcemanager.googleapis.com/Project\x12<\n\nsubmission\x18\x02 \x01(\x0b\x32#.google.cloud.webrisk.v1.SubmissionB\x03\xe0\x41\x02\"\x93\x02\n\x10SubmitUriRequest\x12\x43\n\x06parent\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+cloudresourcemanager.googleapis.com/Project\x12<\n\nsubmission\x18\x02 \x01(\x0b\x32#.google.cloud.webrisk.v1.SubmissionB\x03\xe0\x41\x02\x12\x38\n\x0bthreat_info\x18\x03 \x01(\x0b\x32#.google.cloud.webrisk.v1.ThreatInfo\x12\x42\n\x10threat_discovery\x18\x04 \x01(\x0b\x32(.google.cloud.webrisk.v1.ThreatDiscovery\"\x99\x02\n\x11SubmitUriMetadata\x12?\n\x05state\x18\x01 \x01(\x0e\x32\x30.google.cloud.webrisk.v1.SubmitUriMetadata.State\x12/\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"a\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\r\n\tSUCCEEDED\x10\x02\x12\r\n\tCANCELLED\x10\x03\x12\n\n\x06\x46\x41ILED\x10\x04\x12\n\n\x06\x43LOSED\x10\x05*\x8f\x01\n\nThreatType\x12\x1b\n\x17THREAT_TYPE_UNSPECIFIED\x10\x00\x12\x0b\n\x07MALWARE\x10\x01\x12\x16\n\x12SOCIAL_ENGINEERING\x10\x02\x12\x15\n\x11UNWANTED_SOFTWARE\x10\x03\x12(\n$SOCIAL_ENGINEERING_EXTENDED_COVERAGE\x10\x04*F\n\x0f\x43ompressionType\x12 \n\x1c\x43OMPRESSION_TYPE_UNSPECIFIED\x10\x00\x12\x07\n\x03RAW\x10\x01\x12\x08\n\x04RICE\x10\x02\x32\xcd\x07\n\x0eWebRiskService\x12\xd3\x01\n\x15\x43omputeThreatListDiff\x12\x35.google.cloud.webrisk.v1.ComputeThreatListDiffRequest\x1a\x36.google.cloud.webrisk.v1.ComputeThreatListDiffResponse\"K\x82\xd3\xe4\x93\x02\x1d\x12\x1b/v1/threatLists:computeDiff\xda\x41%threat_type,version_token,constraints\x12\x91\x01\n\nSearchUris\x12*.google.cloud.webrisk.v1.SearchUrisRequest\x1a+.google.cloud.webrisk.v1.SearchUrisResponse\"*\x82\xd3\xe4\x93\x02\x11\x12\x0f/v1/uris:search\xda\x41\x10uri,threat_types\x12\xa1\x01\n\x0cSearchHashes\x12,.google.cloud.webrisk.v1.SearchHashesRequest\x1a-.google.cloud.webrisk.v1.SearchHashesResponse\"4\x82\xd3\xe4\x93\x02\x13\x12\x11/v1/hashes:search\xda\x41\x18hash_prefix,threat_types\x12\xb6\x01\n\x10\x43reateSubmission\x12\x30.google.cloud.webrisk.v1.CreateSubmissionRequest\x1a#.google.cloud.webrisk.v1.Submission\"K\x82\xd3\xe4\x93\x02\x31\"#/v1/{parent=projects/*}/submissions:\nsubmission\xda\x41\x11parent,submission\x12\xa7\x01\n\tSubmitUri\x12).google.cloud.webrisk.v1.SubmitUriRequest\x1a\x1d.google.longrunning.Operation\"P\x82\xd3\xe4\x93\x02(\"#/v1/{parent=projects/*}/uris:submit:\x01*\xca\x41\x1f\n\nSubmission\x12\x11SubmitUriMetadata\x1aJ\xca\x41\x16webrisk.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xb6\x01\n\x15\x63om.google.webrisk.v1B\x0cWebRiskProtoP\x01Z5cloud.google.com/go/webrisk/apiv1/webriskpb;webriskpb\xa2\x02\x04GCWR\xaa\x02\x17Google.Cloud.WebRisk.V1\xca\x02\x17Google\\Cloud\\WebRisk\\V1\xea\x02\x1aGoogle::Cloud::WebRisk::V1b\x06proto3"
16
+
17
+ pool = Google::Protobuf::DescriptorPool.generated_pool
18
+
19
+ begin
20
+ pool.add_serialized_file(descriptor_data)
21
+ rescue TypeError => e
22
+ # Compatibility code: will be removed in the next major version.
23
+ require 'google/protobuf/descriptor_pb'
24
+ parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
25
+ parsed.clear_dependency
26
+ serialized = parsed.class.encode(parsed)
27
+ file = pool.add_serialized_file(serialized)
28
+ warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
29
+ imports = [
30
+ ["google.protobuf.Timestamp", "google/protobuf/timestamp.proto"],
31
+ ]
32
+ imports.each do |type_name, expected_filename|
33
+ import_file = pool.lookup(type_name).file_descriptor
34
+ if import_file.name != expected_filename
35
+ warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
103
36
  end
104
37
  end
38
+ warn "Each proto file must use a consistent fully-qualified name."
39
+ warn "This will become an error in the next major version."
105
40
  end
106
41
 
107
42
  module Google
@@ -125,7 +60,18 @@ module Google
125
60
  RawHashes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.webrisk.v1.RawHashes").msgclass
126
61
  RiceDeltaEncoding = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.webrisk.v1.RiceDeltaEncoding").msgclass
127
62
  Submission = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.webrisk.v1.Submission").msgclass
63
+ ThreatInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.webrisk.v1.ThreatInfo").msgclass
64
+ ThreatInfo::Confidence = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.webrisk.v1.ThreatInfo.Confidence").msgclass
65
+ ThreatInfo::Confidence::ConfidenceLevel = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.webrisk.v1.ThreatInfo.Confidence.ConfidenceLevel").enummodule
66
+ ThreatInfo::ThreatJustification = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.webrisk.v1.ThreatInfo.ThreatJustification").msgclass
67
+ ThreatInfo::ThreatJustification::JustificationLabel = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.webrisk.v1.ThreatInfo.ThreatJustification.JustificationLabel").enummodule
68
+ ThreatInfo::AbuseType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.webrisk.v1.ThreatInfo.AbuseType").enummodule
69
+ ThreatDiscovery = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.webrisk.v1.ThreatDiscovery").msgclass
70
+ ThreatDiscovery::Platform = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.webrisk.v1.ThreatDiscovery.Platform").enummodule
128
71
  CreateSubmissionRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.webrisk.v1.CreateSubmissionRequest").msgclass
72
+ SubmitUriRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.webrisk.v1.SubmitUriRequest").msgclass
73
+ SubmitUriMetadata = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.webrisk.v1.SubmitUriMetadata").msgclass
74
+ SubmitUriMetadata::State = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.webrisk.v1.SubmitUriMetadata.State").enummodule
129
75
  ThreatType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.webrisk.v1.ThreatType").enummodule
130
76
  CompressionType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.webrisk.v1.CompressionType").enummodule
131
77
  end
@@ -61,6 +61,17 @@ module Google
61
61
  # allowlisted projects can use this method during Early Access. Please reach
62
62
  # out to Sales or your customer engineer to obtain access.
63
63
  rpc :CreateSubmission, ::Google::Cloud::WebRisk::V1::CreateSubmissionRequest, ::Google::Cloud::WebRisk::V1::Submission
64
+ # Submits a URI suspected of containing malicious content to be reviewed.
65
+ # Returns a google.longrunning.Operation which, once the review is complete,
66
+ # is updated with its result. You can use the [Pub/Sub API]
67
+ # (https://cloud.google.com/pubsub) to receive notifications for the returned
68
+ # Operation. If the result verifies the existence of malicious content, the
69
+ # site will be added to the [Google's Social Engineering lists]
70
+ # (https://support.google.com/webmasters/answer/6350487/) in order to
71
+ # protect users that could get exposed to this threat in the future. Only
72
+ # allowlisted projects can use this method during Early Access. Please reach
73
+ # out to Sales or your customer engineer to obtain access.
74
+ rpc :SubmitUri, ::Google::Cloud::WebRisk::V1::SubmitUriRequest, ::Google::Longrunning::Operation
64
75
  end
65
76
 
66
77
  Stub = Service.rpc_stub_class
@@ -35,7 +35,9 @@ module Google
35
35
  # Details about how and where to publish client libraries.
36
36
  # @!attribute [rw] version
37
37
  # @return [::String]
38
- # Version of the API to apply these settings to.
38
+ # Version of the API to apply these settings to. This is the full protobuf
39
+ # package for the API, ending in the version element.
40
+ # Examples: "google.cloud.speech.v1" and "google.spanner.admin.database.v1".
39
41
  # @!attribute [rw] launch_stage
40
42
  # @return [::Google::Api::LaunchStage]
41
43
  # Launch stage of this version of the API.
@@ -81,7 +83,7 @@ module Google
81
83
  # long-running operation pattern.
82
84
  # @!attribute [rw] new_issue_uri
83
85
  # @return [::String]
84
- # Link to a place that API users can report issues. Example:
86
+ # Link to a *public* URI where users can report issues. Example:
85
87
  # https://issuetracker.google.com/issues/new?component=190865&template=1161103
86
88
  # @!attribute [rw] documentation_uri
87
89
  # @return [::String]
@@ -111,6 +113,10 @@ module Google
111
113
  # Client library settings. If the same version string appears multiple
112
114
  # times in this list, then the last one wins. Settings from earlier
113
115
  # settings with the same version string are discarded.
116
+ # @!attribute [rw] proto_reference_documentation_uri
117
+ # @return [::String]
118
+ # Optional link to proto reference documentation. Example:
119
+ # https://cloud.google.com/pubsub/lite/docs/reference/rpc
114
120
  class Publishing
115
121
  include ::Google::Protobuf::MessageExts
116
122
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -203,9 +209,57 @@ module Google
203
209
  # @!attribute [rw] common
204
210
  # @return [::Google::Api::CommonLanguageSettings]
205
211
  # Some settings.
212
+ # @!attribute [rw] renamed_services
213
+ # @return [::Google::Protobuf::Map{::String => ::String}]
214
+ # Map from original service names to renamed versions.
215
+ # This is used when the default generated types
216
+ # would cause a naming conflict. (Neither name is
217
+ # fully-qualified.)
218
+ # Example: Subscriber to SubscriberServiceApi.
219
+ # @!attribute [rw] renamed_resources
220
+ # @return [::Google::Protobuf::Map{::String => ::String}]
221
+ # Map from full resource types to the effective short name
222
+ # for the resource. This is used when otherwise resource
223
+ # named from different services would cause naming collisions.
224
+ # Example entry:
225
+ # "datalabeling.googleapis.com/Dataset": "DataLabelingDataset"
226
+ # @!attribute [rw] ignored_resources
227
+ # @return [::Array<::String>]
228
+ # List of full resource types to ignore during generation.
229
+ # This is typically used for API-specific Location resources,
230
+ # which should be handled by the generator as if they were actually
231
+ # the common Location resources.
232
+ # Example entry: "documentai.googleapis.com/Location"
233
+ # @!attribute [rw] forced_namespace_aliases
234
+ # @return [::Array<::String>]
235
+ # Namespaces which must be aliased in snippets due to
236
+ # a known (but non-generator-predictable) naming collision
237
+ # @!attribute [rw] handwritten_signatures
238
+ # @return [::Array<::String>]
239
+ # Method signatures (in the form "service.method(signature)")
240
+ # which are provided separately, so shouldn't be generated.
241
+ # Snippets *calling* these methods are still generated, however.
206
242
  class DotnetSettings
207
243
  include ::Google::Protobuf::MessageExts
208
244
  extend ::Google::Protobuf::MessageExts::ClassMethods
245
+
246
+ # @!attribute [rw] key
247
+ # @return [::String]
248
+ # @!attribute [rw] value
249
+ # @return [::String]
250
+ class RenamedServicesEntry
251
+ include ::Google::Protobuf::MessageExts
252
+ extend ::Google::Protobuf::MessageExts::ClassMethods
253
+ end
254
+
255
+ # @!attribute [rw] key
256
+ # @return [::String]
257
+ # @!attribute [rw] value
258
+ # @return [::String]
259
+ class RenamedResourcesEntry
260
+ include ::Google::Protobuf::MessageExts
261
+ extend ::Google::Protobuf::MessageExts::ClassMethods
262
+ end
209
263
  end
210
264
 
211
265
  # Settings for Ruby client libraries.
@@ -240,8 +294,8 @@ module Google
240
294
  # Example of a YAML configuration::
241
295
  #
242
296
  # publishing:
243
- # method_behavior:
244
- # - selector: CreateAdDomain
297
+ # method_settings:
298
+ # - selector: google.cloud.speech.v2.Speech.BatchRecognize
245
299
  # long_running:
246
300
  # initial_poll_delay:
247
301
  # seconds: 60 # 1 minute
@@ -299,6 +353,15 @@ module Google
299
353
 
300
354
  # Street View Org.
301
355
  STREET_VIEW = 4
356
+
357
+ # Shopping Org.
358
+ SHOPPING = 5
359
+
360
+ # Geo Org.
361
+ GEO = 6
362
+
363
+ # Generative AI - https://developers.generativeai.google
364
+ GENERATIVE_AI = 7
302
365
  end
303
366
 
304
367
  # To where should client libraries be published?
@@ -24,9 +24,9 @@ module Google
24
24
  # Describes an API diff request.
25
25
  # @!attribute [rw] threat_type
26
26
  # @return [::Google::Cloud::WebRisk::V1::ThreatType]
27
- # Required. The threat list to update. Only a single ThreatType should be specified
28
- # per request. If you want to handle multiple ThreatTypes, you must make one
29
- # request per ThreatType.
27
+ # Required. The threat list to update. Only a single ThreatType should be
28
+ # specified per request. If you want to handle multiple ThreatTypes, you must
29
+ # make one request per ThreatType.
30
30
  # @!attribute [rw] version_token
31
31
  # @return [::String]
32
32
  # The current version token of the client for the requested list (the
@@ -124,7 +124,8 @@ module Google
124
124
  # Required. The URI to be checked for matches.
125
125
  # @!attribute [rw] threat_types
126
126
  # @return [::Array<::Google::Cloud::WebRisk::V1::ThreatType>]
127
- # Required. The ThreatLists to search in. Multiple ThreatLists may be specified.
127
+ # Required. The ThreatLists to search in. Multiple ThreatLists may be
128
+ # specified.
128
129
  class SearchUrisRequest
129
130
  include ::Google::Protobuf::MessageExts
130
131
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -160,7 +161,8 @@ module Google
160
161
  # the web safe base64 variant (RFC 4648).
161
162
  # @!attribute [rw] threat_types
162
163
  # @return [::Array<::Google::Cloud::WebRisk::V1::ThreatType>]
163
- # Required. The ThreatLists to search in. Multiple ThreatLists may be specified.
164
+ # Required. The ThreatLists to search in. Multiple ThreatLists may be
165
+ # specified.
164
166
  class SearchHashesRequest
165
167
  include ::Google::Protobuf::MessageExts
166
168
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -287,17 +289,142 @@ module Google
287
289
  # Wraps a URI that might be displaying malicious content.
288
290
  # @!attribute [rw] uri
289
291
  # @return [::String]
290
- # Required. The URI that is being reported for malicious content to be analyzed.
292
+ # Required. The URI that is being reported for malicious content to be
293
+ # analyzed.
294
+ # @!attribute [r] threat_types
295
+ # @return [::Array<::Google::Cloud::WebRisk::V1::ThreatType>]
296
+ # Output only. ThreatTypes found to be associated with the submitted URI
297
+ # after reviewing it. This might be empty if the URI was not added to any
298
+ # list.
291
299
  class Submission
292
300
  include ::Google::Protobuf::MessageExts
293
301
  extend ::Google::Protobuf::MessageExts::ClassMethods
294
302
  end
295
303
 
304
+ # Context about the submission including the type of abuse found on the URI and
305
+ # supporting details.
306
+ # option (google.api.message_visibility).restriction = "TRUSTED_TESTER";
307
+ # @!attribute [rw] abuse_type
308
+ # @return [::Google::Cloud::WebRisk::V1::ThreatInfo::AbuseType]
309
+ # The type of abuse.
310
+ # @!attribute [rw] threat_confidence
311
+ # @return [::Google::Cloud::WebRisk::V1::ThreatInfo::Confidence]
312
+ # Confidence that the URI is unsafe.
313
+ # @!attribute [rw] threat_justification
314
+ # @return [::Google::Cloud::WebRisk::V1::ThreatInfo::ThreatJustification]
315
+ # Context about why the URI is unsafe.
316
+ class ThreatInfo
317
+ include ::Google::Protobuf::MessageExts
318
+ extend ::Google::Protobuf::MessageExts::ClassMethods
319
+
320
+ # Confidence that a URI is unsafe.
321
+ # @!attribute [rw] score
322
+ # @return [::Float]
323
+ # A decimal representation of confidence in the range of 0
324
+ # to 1 where 0 indicates no confidence and 1 indicates
325
+ # complete confidence.
326
+ # @!attribute [rw] level
327
+ # @return [::Google::Cloud::WebRisk::V1::ThreatInfo::Confidence::ConfidenceLevel]
328
+ # Enum representation of confidence.
329
+ class Confidence
330
+ include ::Google::Protobuf::MessageExts
331
+ extend ::Google::Protobuf::MessageExts::ClassMethods
332
+
333
+ # Enum representation of confidence.
334
+ module ConfidenceLevel
335
+ # Default.
336
+ CONFIDENCE_LEVEL_UNSPECIFIED = 0
337
+
338
+ # Less than 60% confidence that the URI is unsafe.
339
+ LOW = 1
340
+
341
+ # Between 60% and 80% confidence that the URI is unsafe.
342
+ MEDIUM = 2
343
+
344
+ # Greater than 80% confidence that the URI is unsafe.
345
+ HIGH = 3
346
+ end
347
+ end
348
+
349
+ # Context about why the URI is unsafe.
350
+ # @!attribute [rw] labels
351
+ # @return [::Array<::Google::Cloud::WebRisk::V1::ThreatInfo::ThreatJustification::JustificationLabel>]
352
+ # Labels associated with this URI that explain how it was classified.
353
+ # @!attribute [rw] comments
354
+ # @return [::Array<::String>]
355
+ # Free-form context on why this URI is unsafe.
356
+ class ThreatJustification
357
+ include ::Google::Protobuf::MessageExts
358
+ extend ::Google::Protobuf::MessageExts::ClassMethods
359
+
360
+ # Labels that explain how the URI was classified.
361
+ module JustificationLabel
362
+ # Default.
363
+ JUSTIFICATION_LABEL_UNSPECIFIED = 0
364
+
365
+ # The submitter manually verified that the submission is unsafe.
366
+ MANUAL_VERIFICATION = 1
367
+
368
+ # The submitter received the submission from an end user.
369
+ USER_REPORT = 2
370
+
371
+ # The submitter received the submission from an automated system.
372
+ AUTOMATED_REPORT = 3
373
+ end
374
+ end
375
+
376
+ # The abuse type found on the URI.
377
+ module AbuseType
378
+ # Default.
379
+ ABUSE_TYPE_UNSPECIFIED = 0
380
+
381
+ # The URI contains malware.
382
+ MALWARE = 1
383
+
384
+ # The URI contains social engineering.
385
+ SOCIAL_ENGINEERING = 2
386
+
387
+ # The URI contains unwanted software.
388
+ UNWANTED_SOFTWARE = 3
389
+ end
390
+ end
391
+
392
+ # Details about how the threat was discovered.
393
+ # @!attribute [rw] platform
394
+ # @return [::Google::Cloud::WebRisk::V1::ThreatDiscovery::Platform]
395
+ # Platform on which the threat was discovered.
396
+ # @!attribute [rw] region_codes
397
+ # @return [::Array<::String>]
398
+ # CLDR region code of the countries/regions the URI poses a threat ordered
399
+ # from most impact to least impact. Example: "US" for United States.
400
+ class ThreatDiscovery
401
+ include ::Google::Protobuf::MessageExts
402
+ extend ::Google::Protobuf::MessageExts::ClassMethods
403
+
404
+ # Platform types.
405
+ module Platform
406
+ # Default.
407
+ PLATFORM_UNSPECIFIED = 0
408
+
409
+ # General Android platform.
410
+ ANDROID = 1
411
+
412
+ # General iOS platform.
413
+ IOS = 2
414
+
415
+ # General macOS platform.
416
+ MACOS = 3
417
+
418
+ # General Windows platform.
419
+ WINDOWS = 4
420
+ end
421
+ end
422
+
296
423
  # Request to send a potentially phishy URI to WebRisk.
297
424
  # @!attribute [rw] parent
298
425
  # @return [::String]
299
- # Required. The name of the project that is making the submission. This string is in
300
- # the format "projects/\\{project_number}".
426
+ # Required. The name of the project that is making the submission. This
427
+ # string is in the format "projects/\\{project_number}".
301
428
  # @!attribute [rw] submission
302
429
  # @return [::Google::Cloud::WebRisk::V1::Submission]
303
430
  # Required. The submission that contains the content of the phishing report.
@@ -306,6 +433,62 @@ module Google
306
433
  extend ::Google::Protobuf::MessageExts::ClassMethods
307
434
  end
308
435
 
436
+ # Request to send a potentially malicious URI to WebRisk.
437
+ # @!attribute [rw] parent
438
+ # @return [::String]
439
+ # Required. The name of the project that is making the submission. This
440
+ # string is in the format "projects/\\{project_number}".
441
+ # @!attribute [rw] submission
442
+ # @return [::Google::Cloud::WebRisk::V1::Submission]
443
+ # Required. The submission that contains the URI to be scanned.
444
+ # @!attribute [rw] threat_info
445
+ # @return [::Google::Cloud::WebRisk::V1::ThreatInfo]
446
+ # Provides additional information about the submission.
447
+ # @!attribute [rw] threat_discovery
448
+ # @return [::Google::Cloud::WebRisk::V1::ThreatDiscovery]
449
+ # Provides additional information about how the submission was discovered.
450
+ class SubmitUriRequest
451
+ include ::Google::Protobuf::MessageExts
452
+ extend ::Google::Protobuf::MessageExts::ClassMethods
453
+ end
454
+
455
+ # Metadata for the Submit URI long-running operation.
456
+ # option (google.api.message_visibility).restriction = "TRUSTED_TESTER";
457
+ # @!attribute [rw] state
458
+ # @return [::Google::Cloud::WebRisk::V1::SubmitUriMetadata::State]
459
+ # The state of the operation.
460
+ # @!attribute [rw] create_time
461
+ # @return [::Google::Protobuf::Timestamp]
462
+ # Creation time of the operation.
463
+ # @!attribute [rw] update_time
464
+ # @return [::Google::Protobuf::Timestamp]
465
+ # Latest update time of the operation.
466
+ class SubmitUriMetadata
467
+ include ::Google::Protobuf::MessageExts
468
+ extend ::Google::Protobuf::MessageExts::ClassMethods
469
+
470
+ # Enum that represents the state of the long-running operation.
471
+ module State
472
+ # Default unspecified state.
473
+ STATE_UNSPECIFIED = 0
474
+
475
+ # The operation is currently running.
476
+ RUNNING = 1
477
+
478
+ # The operation finished with a success status.
479
+ SUCCEEDED = 2
480
+
481
+ # The operation was cancelled.
482
+ CANCELLED = 3
483
+
484
+ # The operation finished with a failure status.
485
+ FAILED = 4
486
+
487
+ # The operation was closed with no action taken.
488
+ CLOSED = 5
489
+ end
490
+ end
491
+
309
492
  # The type of threat. This maps directly to the threat list a threat may
310
493
  # belong to.
311
494
  module ThreatType