google-cloud-web_risk-v1 0.7.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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