google-cloud-recaptcha_enterprise-v1beta1 0.10.0 → 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/google/cloud/recaptcha_enterprise/v1beta1/recaptcha_enterprise_service/client.rb +8 -9
- data/lib/google/cloud/recaptcha_enterprise/v1beta1/recaptcha_enterprise_service/rest/client.rb +8 -9
- data/lib/google/cloud/recaptcha_enterprise/v1beta1/version.rb +1 -1
- data/lib/google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise_pb.rb +2 -1
- data/proto_docs/google/api/client.rb +13 -0
- data/proto_docs/google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise.rb +22 -11
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 23bd9d9d08b34d4f5fefc0918441de20ad77093a8af1985b42188094dbf88d59
|
4
|
+
data.tar.gz: 90c4f2e54c60fc67ab4ac2d00d0689145becff5adb50ddbf4adb4f2a25bdb313
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: faaf8b8a12089f56d447f8832b4ccc1e8436fcfd8628e7d98ecbe9595f32777e8cc4e7f0a8cb3773bf26b619d27272cfacb5c68b6628a88635f38dbab7c758ea
|
7
|
+
data.tar.gz: 5a3271388f340c153a5aba088628738588f55e4b63018e140102c996e1e53cab26d13356740fc5ccbe4f35afb719f010fc7a07186daa3f3478bf0b6c382dd884
|
@@ -169,7 +169,7 @@ module Google
|
|
169
169
|
#
|
170
170
|
# @param parent [::String]
|
171
171
|
# Required. The name of the project in which the assessment will be created,
|
172
|
-
# in the format
|
172
|
+
# in the format `projects/{project_number}`.
|
173
173
|
# @param assessment [::Google::Cloud::RecaptchaEnterprise::V1beta1::Assessment, ::Hash]
|
174
174
|
# Required. The assessment details.
|
175
175
|
#
|
@@ -258,20 +258,19 @@ module Google
|
|
258
258
|
#
|
259
259
|
# @param name [::String]
|
260
260
|
# Required. The resource name of the Assessment, in the format
|
261
|
-
#
|
261
|
+
# `projects/{project_number}/assessments/{assessment_id}`.
|
262
262
|
# @param annotation [::Google::Cloud::RecaptchaEnterprise::V1beta1::AnnotateAssessmentRequest::Annotation]
|
263
263
|
# Optional. The annotation that will be assigned to the Event. This field can
|
264
264
|
# be left empty to provide reasons that apply to an event without concluding
|
265
265
|
# whether the event is legitimate or fraudulent.
|
266
266
|
# @param reasons [::Array<::Google::Cloud::RecaptchaEnterprise::V1beta1::AnnotateAssessmentRequest::Reason>]
|
267
|
-
# Optional.
|
268
|
-
# Event.
|
267
|
+
# Optional. Reasons for the annotation that are assigned to the event.
|
269
268
|
# @param hashed_account_id [::String]
|
270
|
-
# Optional.
|
271
|
-
#
|
272
|
-
# CreateAssessment
|
273
|
-
# in the initial request. It is recommended that the identifier is
|
274
|
-
# using hmac-sha256 with stable secret.
|
269
|
+
# Optional. Unique stable hashed user identifier to apply to the assessment.
|
270
|
+
# This is an alternative to setting the `hashed_account_id` in
|
271
|
+
# `CreateAssessment`, for example, when the account identifier is not yet
|
272
|
+
# known in the initial request. It is recommended that the identifier is
|
273
|
+
# hashed using hmac-sha256 with stable secret.
|
275
274
|
# @param transaction_event [::Google::Cloud::RecaptchaEnterprise::V1beta1::TransactionEvent, ::Hash]
|
276
275
|
# Optional. If the assessment is part of a payment transaction, provide
|
277
276
|
# details on payment lifecycle events that occur in the transaction.
|
data/lib/google/cloud/recaptcha_enterprise/v1beta1/recaptcha_enterprise_service/rest/client.rb
CHANGED
@@ -159,7 +159,7 @@ module Google
|
|
159
159
|
#
|
160
160
|
# @param parent [::String]
|
161
161
|
# Required. The name of the project in which the assessment will be created,
|
162
|
-
# in the format
|
162
|
+
# in the format `projects/{project_number}`.
|
163
163
|
# @param assessment [::Google::Cloud::RecaptchaEnterprise::V1beta1::Assessment, ::Hash]
|
164
164
|
# Required. The assessment details.
|
165
165
|
# @yield [result, operation] Access the result along with the TransportOperation object
|
@@ -241,20 +241,19 @@ module Google
|
|
241
241
|
#
|
242
242
|
# @param name [::String]
|
243
243
|
# Required. The resource name of the Assessment, in the format
|
244
|
-
#
|
244
|
+
# `projects/{project_number}/assessments/{assessment_id}`.
|
245
245
|
# @param annotation [::Google::Cloud::RecaptchaEnterprise::V1beta1::AnnotateAssessmentRequest::Annotation]
|
246
246
|
# Optional. The annotation that will be assigned to the Event. This field can
|
247
247
|
# be left empty to provide reasons that apply to an event without concluding
|
248
248
|
# whether the event is legitimate or fraudulent.
|
249
249
|
# @param reasons [::Array<::Google::Cloud::RecaptchaEnterprise::V1beta1::AnnotateAssessmentRequest::Reason>]
|
250
|
-
# Optional.
|
251
|
-
# Event.
|
250
|
+
# Optional. Reasons for the annotation that are assigned to the event.
|
252
251
|
# @param hashed_account_id [::String]
|
253
|
-
# Optional.
|
254
|
-
#
|
255
|
-
# CreateAssessment
|
256
|
-
# in the initial request. It is recommended that the identifier is
|
257
|
-
# using hmac-sha256 with stable secret.
|
252
|
+
# Optional. Unique stable hashed user identifier to apply to the assessment.
|
253
|
+
# This is an alternative to setting the `hashed_account_id` in
|
254
|
+
# `CreateAssessment`, for example, when the account identifier is not yet
|
255
|
+
# known in the initial request. It is recommended that the identifier is
|
256
|
+
# hashed using hmac-sha256 with stable secret.
|
258
257
|
# @param transaction_event [::Google::Cloud::RecaptchaEnterprise::V1beta1::TransactionEvent, ::Hash]
|
259
258
|
# Optional. If the assessment is part of a payment transaction, provide
|
260
259
|
# details on payment lifecycle events that occur in the transaction.
|
@@ -11,7 +11,7 @@ require 'google/api/resource_pb'
|
|
11
11
|
require 'google/protobuf/timestamp_pb'
|
12
12
|
|
13
13
|
|
14
|
-
descriptor_data = "\nBgoogle/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise.proto\x12(google.cloud.recaptchaenterprise.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xad\x01\n\x17\x43reateAssessmentRequest\x12\x43\n\x06parent\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+cloudresourcemanager.googleapis.com/Project\x12M\n\nassessment\x18\x02 \x01(\x0b\x32\x34.google.cloud.recaptchaenterprise.v1beta1.AssessmentB\x03\xe0\x41\x02\"\x97\x05\n\x10TransactionEvent\x12h\n\nevent_type\x18\x01 \x01(\x0e\x32O.google.cloud.recaptchaenterprise.v1beta1.TransactionEvent.TransactionEventTypeB\x03\xe0\x41\x01\x12\x13\n\x06reason\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05value\x18\x03 \x01(\x01\x42\x03\xe0\x41\x01\x12\x33\n\nevent_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01\"\xba\x03\n\x14TransactionEventType\x12&\n\"TRANSACTION_EVENT_TYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10MERCHANT_APPROVE\x10\x01\x12\x11\n\rMERCHANT_DENY\x10\x02\x12\x11\n\rMANUAL_REVIEW\x10\x03\x12\x11\n\rAUTHORIZATION\x10\x04\x12\x19\n\x15\x41UTHORIZATION_DECLINE\x10\x05\x12\x13\n\x0fPAYMENT_CAPTURE\x10\x06\x12\x1b\n\x17PAYMENT_CAPTURE_DECLINE\x10\x07\x12\n\n\x06\x43\x41NCEL\x10\x08\x12\x16\n\x12\x43HARGEBACK_INQUIRY\x10\t\x12\x14\n\x10\x43HARGEBACK_ALERT\x10\n\x12\x16\n\x12\x46RAUD_NOTIFICATION\x10\x0b\x12\x0e\n\nCHARGEBACK\x10\x0c\x12\x1c\n\x18\x43HARGEBACK_REPRESENTMENT\x10\r\x12\x16\n\x12\x43HARGEBACK_REVERSE\x10\x0e\x12\x12\n\x0eREFUND_REQUEST\x10\x0f\x12\x12\n\x0eREFUND_DECLINE\x10\x10\x12\n\n\x06REFUND\x10\x11\x12\x12\n\x0eREFUND_REVERSE\x10\x12\"\xf9\x06\n\x19\x41nnotateAssessmentRequest\x12\x43\n\x04name\x18\x01 \x01(\tB5\xe0\x41\x02\xfa\x41/\n-recaptchaenterprise.googleapis.com/Assessment\x12g\n\nannotation\x18\x02 \x01(\x0e\x32N.google.cloud.recaptchaenterprise.v1beta1.AnnotateAssessmentRequest.AnnotationB\x03\xe0\x41\x01\x12`\n\x07reasons\x18\x03 \x03(\x0e\x32J.google.cloud.recaptchaenterprise.v1beta1.AnnotateAssessmentRequest.ReasonB\x03\xe0\x41\x01\x12\x1e\n\x11hashed_account_id\x18\x04 \x01(\x0c\x42\x03\xe0\x41\x01\x12Z\n\x11transaction_event\x18\x05 \x01(\x0b\x32:.google.cloud.recaptchaenterprise.v1beta1.TransactionEventB\x03\xe0\x41\x01\"~\n\nAnnotation\x12\x1a\n\x16\x41NNOTATION_UNSPECIFIED\x10\x00\x12\x0e\n\nLEGITIMATE\x10\x01\x12\x0e\n\nFRAUDULENT\x10\x02\x12\x18\n\x10PASSWORD_CORRECT\x10\x03\x1a\x02\x08\x01\x12\x1a\n\x12PASSWORD_INCORRECT\x10\x04\x1a\x02\x08\x01\"\xcf\x02\n\x06Reason\x12\x16\n\x12REASON_UNSPECIFIED\x10\x00\x12\x0e\n\nCHARGEBACK\x10\x01\x12\x14\n\x10\x43HARGEBACK_FRAUD\x10\x08\x12\x16\n\x12\x43HARGEBACK_DISPUTE\x10\t\x12\n\n\x06REFUND\x10\n\x12\x10\n\x0cREFUND_FRAUD\x10\x0b\x12\x18\n\x14TRANSACTION_ACCEPTED\x10\x0c\x12\x18\n\x14TRANSACTION_DECLINED\x10\r\x12\x16\n\x12PAYMENT_HEURISTICS\x10\x02\x12\x18\n\x14INITIATED_TWO_FACTOR\x10\x07\x12\x15\n\x11PASSED_TWO_FACTOR\x10\x03\x12\x15\n\x11\x46\x41ILED_TWO_FACTOR\x10\x04\x12\x14\n\x10\x43ORRECT_PASSWORD\x10\x05\x12\x16\n\x12INCORRECT_PASSWORD\x10\x06\x12\x0f\n\x0bSOCIAL_SPAM\x10\x0e\"\x1c\n\x1a\x41nnotateAssessmentResponse\"\x86\x01\n\x18PasswordLeakVerification\x12$\n\x17hashed_user_credentials\x18\x01 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x1f\n\x12\x63redentials_leaked\x18\x02 \x01(\x08\x42\x03\xe0\x41\x03\x12#\n\x16\x63\x61nonicalized_username\x18\x03 \x01(\tB\x03\xe0\x41\x01\"\xb7\x07\n\nAssessment\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12>\n\x05\x65vent\x18\x02 \x01(\x0b\x32/.google.cloud.recaptchaenterprise.v1beta1.Event\x12\x12\n\x05score\x18\x03 \x01(\x02\x42\x03\xe0\x41\x03\x12X\n\x10token_properties\x18\x04 \x01(\x0b\x32\x39.google.cloud.recaptchaenterprise.v1beta1.TokenPropertiesB\x03\xe0\x41\x03\x12_\n\x07reasons\x18\x05 \x03(\x0e\x32I.google.cloud.recaptchaenterprise.v1beta1.Assessment.ClassificationReasonB\x03\xe0\x41\x03\x12\x66\n\x1apassword_leak_verification\x18\x07 \x01(\x0b\x32\x42.google.cloud.recaptchaenterprise.v1beta1.PasswordLeakVerification\x12h\n\x1b\x61\x63\x63ount_defender_assessment\x18\x08 \x01(\x0b\x32\x43.google.cloud.recaptchaenterprise.v1beta1.AccountDefenderAssessment\x12h\n\x1b\x66raud_prevention_assessment\x18\x0b \x01(\x0b\x32\x43.google.cloud.recaptchaenterprise.v1beta1.FraudPreventionAssessment\"\xe9\x01\n\x14\x43lassificationReason\x12%\n!CLASSIFICATION_REASON_UNSPECIFIED\x10\x00\x12\x0e\n\nAUTOMATION\x10\x01\x12\x1a\n\x16UNEXPECTED_ENVIRONMENT\x10\x02\x12\x14\n\x10TOO_MUCH_TRAFFIC\x10\x03\x12\x1d\n\x19UNEXPECTED_USAGE_PATTERNS\x10\x04\x12\x18\n\x14LOW_CONFIDENCE_SCORE\x10\x05\x12\x15\n\x11SUSPECTED_CARDING\x10\x06\x12\x18\n\x14SUSPECTED_CHARGEBACK\x10\x07:_\xea\x41\\\n-recaptchaenterprise.googleapis.com/Assessment\x12+projects/{project}/assessments/{assessment}\"\x81\x02\n\x05\x45vent\x12\x12\n\x05token\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08site_key\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x17\n\nuser_agent\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x1c\n\x0fuser_ip_address\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x1c\n\x0f\x65xpected_action\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12\x1e\n\x11hashed_account_id\x18\x06 \x01(\x0c\x42\x03\xe0\x41\x01\x12X\n\x10transaction_data\x18\r \x01(\x0b\x32\x39.google.cloud.recaptchaenterprise.v1beta1.TransactionDataB\x03\xe0\x41\x01\"\x9d\t\n\x0fTransactionData\x12\x1b\n\x0etransaction_id\x18\x0b \x01(\tH\x00\x88\x01\x01\x12\x16\n\x0epayment_method\x18\x01 \x01(\t\x12\x10\n\x08\x63\x61rd_bin\x18\x02 \x01(\t\x12\x16\n\x0e\x63\x61rd_last_four\x18\x03 \x01(\t\x12\x15\n\rcurrency_code\x18\x04 \x01(\t\x12\r\n\x05value\x18\x05 \x01(\x01\x12\x16\n\x0eshipping_value\x18\x0c \x01(\x01\x12[\n\x10shipping_address\x18\x06 \x01(\x0b\x32\x41.google.cloud.recaptchaenterprise.v1beta1.TransactionData.Address\x12Z\n\x0f\x62illing_address\x18\x07 \x01(\x0b\x32\x41.google.cloud.recaptchaenterprise.v1beta1.TransactionData.Address\x12L\n\x04user\x18\x08 \x01(\x0b\x32>.google.cloud.recaptchaenterprise.v1beta1.TransactionData.User\x12Q\n\tmerchants\x18\r \x03(\x0b\x32>.google.cloud.recaptchaenterprise.v1beta1.TransactionData.User\x12M\n\x05items\x18\x0e \x03(\x0b\x32>.google.cloud.recaptchaenterprise.v1beta1.TransactionData.Item\x12[\n\x0cgateway_info\x18\n \x01(\x0b\x32\x45.google.cloud.recaptchaenterprise.v1beta1.TransactionData.GatewayInfo\x1a\x86\x01\n\x07\x41\x64\x64ress\x12\x11\n\trecipient\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x03(\t\x12\x10\n\x08locality\x18\x03 \x01(\t\x12\x1b\n\x13\x61\x64ministrative_area\x18\x04 \x01(\t\x12\x13\n\x0bregion_code\x18\x05 \x01(\t\x12\x13\n\x0bpostal_code\x18\x06 \x01(\t\x1a\x84\x01\n\x04User\x12\x12\n\naccount_id\x18\x06 \x01(\t\x12\x13\n\x0b\x63reation_ms\x18\x01 \x01(\x03\x12\r\n\x05\x65mail\x18\x02 \x01(\t\x12\x16\n\x0e\x65mail_verified\x18\x03 \x01(\x08\x12\x14\n\x0cphone_number\x18\x04 \x01(\t\x12\x16\n\x0ephone_verified\x18\x05 \x01(\x08\x1aR\n\x04Item\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x01\x12\x10\n\x08quantity\x18\x03 \x01(\x03\x12\x1b\n\x13merchant_account_id\x18\x04 \x01(\t\x1ap\n\x0bGatewayInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1d\n\x15gateway_response_code\x18\x02 \x01(\t\x12\x19\n\x11\x61vs_response_code\x18\x03 \x01(\t\x12\x19\n\x11\x63vv_response_code\x18\x04 \x01(\tB\x11\n\x0f_transaction_id\"\xff\x02\n\x0fTokenProperties\x12\r\n\x05valid\x18\x01 \x01(\x08\x12_\n\x0einvalid_reason\x18\x02 \x01(\x0e\x32G.google.cloud.recaptchaenterprise.v1beta1.TokenProperties.InvalidReason\x12/\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x10\n\x08hostname\x18\x04 \x01(\t\x12\x0e\n\x06\x61\x63tion\x18\x05 \x01(\t\"\xa8\x01\n\rInvalidReason\x12\x1e\n\x1aINVALID_REASON_UNSPECIFIED\x10\x00\x12\x1a\n\x16UNKNOWN_INVALID_REASON\x10\x01\x12\r\n\tMALFORMED\x10\x02\x12\x0b\n\x07\x45XPIRED\x10\x03\x12\x08\n\x04\x44UPE\x10\x04\x12\x15\n\rSITE_MISMATCH\x10\x05\x1a\x02\x08\x01\x12\x0b\n\x07MISSING\x10\x06\x12\x11\n\rBROWSER_ERROR\x10\x07\"\xf8\x02\n\x19\x46raudPreventionAssessment\x12\x18\n\x10transaction_risk\x18\x01 \x01(\x02\x12~\n\x19stolen_instrument_verdict\x18\x02 \x01(\x0b\x32[.google.cloud.recaptchaenterprise.v1beta1.FraudPreventionAssessment.StolenInstrumentVerdict\x12t\n\x14\x63\x61rd_testing_verdict\x18\x03 \x01(\x0b\x32V.google.cloud.recaptchaenterprise.v1beta1.FraudPreventionAssessment.CardTestingVerdict\x1a\'\n\x17StolenInstrumentVerdict\x12\x0c\n\x04risk\x18\x01 \x01(\x02\x1a\"\n\x12\x43\x61rdTestingVerdict\x12\x0c\n\x04risk\x18\x01 \x01(\x02\"\xbb\x02\n\x19\x41\x63\x63ountDefenderAssessment\x12h\n\x06labels\x18\x01 \x03(\x0e\x32X.google.cloud.recaptchaenterprise.v1beta1.AccountDefenderAssessment.AccountDefenderLabel\"\xb3\x01\n\x14\x41\x63\x63ountDefenderLabel\x12&\n\"ACCOUNT_DEFENDER_LABEL_UNSPECIFIED\x10\x00\x12\x11\n\rPROFILE_MATCH\x10\x01\x12\x1d\n\x19SUSPICIOUS_LOGIN_ACTIVITY\x10\x02\x12\x1f\n\x1bSUSPICIOUS_ACCOUNT_CREATION\x10\x03\x12 \n\x1cRELATED_ACCOUNTS_NUMBER_HIGH\x10\x04\x32\xcd\x04\n!RecaptchaEnterpriseServiceV1Beta1\x12\xdd\x01\n\x10\x43reateAssessment\x12\x41.google.cloud.recaptchaenterprise.v1beta1.CreateAssessmentRequest\x1a\x34.google.cloud.recaptchaenterprise.v1beta1.Assessment\"P\x82\xd3\xe4\x93\x02\x36\"(/v1beta1/{parent=projects/*}/assessments:\nassessment\xda\x41\x11parent,assessment\x12\xef\x01\n\x12\x41nnotateAssessment\x12\x43.google.cloud.recaptchaenterprise.v1beta1.AnnotateAssessmentRequest\x1a\x44.google.cloud.recaptchaenterprise.v1beta1.AnnotateAssessmentResponse\"N\x82\xd3\xe4\x93\x02\x36\"1/v1beta1/{name=projects/*/assessments/*}:annotate:\x01*\xda\x41\x0fname,annotation\x1aV\xca\x41\"recaptchaenterprise.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xb2\x02\n&com.google.recaptchaenterprise.v1beta1B\x18RecaptchaEnterpriseProtoP\x01Zacloud.google.com/go/recaptchaenterprise/v2/apiv1beta1/recaptchaenterprisepb;recaptchaenterprisepb\xa2\x02\x04GCRE\xaa\x02(Google.Cloud.RecaptchaEnterprise.V1Beta1\xca\x02(Google\\Cloud\\RecaptchaEnterprise\\V1beta1\xea\x02+Google::Cloud::RecaptchaEnterprise::V1beta1b\x06proto3"
|
14
|
+
descriptor_data = "\nBgoogle/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise.proto\x12(google.cloud.recaptchaenterprise.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xad\x01\n\x17\x43reateAssessmentRequest\x12\x43\n\x06parent\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+cloudresourcemanager.googleapis.com/Project\x12M\n\nassessment\x18\x02 \x01(\x0b\x32\x34.google.cloud.recaptchaenterprise.v1beta1.AssessmentB\x03\xe0\x41\x02\"\x97\x05\n\x10TransactionEvent\x12h\n\nevent_type\x18\x01 \x01(\x0e\x32O.google.cloud.recaptchaenterprise.v1beta1.TransactionEvent.TransactionEventTypeB\x03\xe0\x41\x01\x12\x13\n\x06reason\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05value\x18\x03 \x01(\x01\x42\x03\xe0\x41\x01\x12\x33\n\nevent_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01\"\xba\x03\n\x14TransactionEventType\x12&\n\"TRANSACTION_EVENT_TYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10MERCHANT_APPROVE\x10\x01\x12\x11\n\rMERCHANT_DENY\x10\x02\x12\x11\n\rMANUAL_REVIEW\x10\x03\x12\x11\n\rAUTHORIZATION\x10\x04\x12\x19\n\x15\x41UTHORIZATION_DECLINE\x10\x05\x12\x13\n\x0fPAYMENT_CAPTURE\x10\x06\x12\x1b\n\x17PAYMENT_CAPTURE_DECLINE\x10\x07\x12\n\n\x06\x43\x41NCEL\x10\x08\x12\x16\n\x12\x43HARGEBACK_INQUIRY\x10\t\x12\x14\n\x10\x43HARGEBACK_ALERT\x10\n\x12\x16\n\x12\x46RAUD_NOTIFICATION\x10\x0b\x12\x0e\n\nCHARGEBACK\x10\x0c\x12\x1c\n\x18\x43HARGEBACK_REPRESENTMENT\x10\r\x12\x16\n\x12\x43HARGEBACK_REVERSE\x10\x0e\x12\x12\n\x0eREFUND_REQUEST\x10\x0f\x12\x12\n\x0eREFUND_DECLINE\x10\x10\x12\n\n\x06REFUND\x10\x11\x12\x12\n\x0eREFUND_REVERSE\x10\x12\"\xf9\x06\n\x19\x41nnotateAssessmentRequest\x12\x43\n\x04name\x18\x01 \x01(\tB5\xe0\x41\x02\xfa\x41/\n-recaptchaenterprise.googleapis.com/Assessment\x12g\n\nannotation\x18\x02 \x01(\x0e\x32N.google.cloud.recaptchaenterprise.v1beta1.AnnotateAssessmentRequest.AnnotationB\x03\xe0\x41\x01\x12`\n\x07reasons\x18\x03 \x03(\x0e\x32J.google.cloud.recaptchaenterprise.v1beta1.AnnotateAssessmentRequest.ReasonB\x03\xe0\x41\x01\x12\x1e\n\x11hashed_account_id\x18\x04 \x01(\x0c\x42\x03\xe0\x41\x01\x12Z\n\x11transaction_event\x18\x05 \x01(\x0b\x32:.google.cloud.recaptchaenterprise.v1beta1.TransactionEventB\x03\xe0\x41\x01\"~\n\nAnnotation\x12\x1a\n\x16\x41NNOTATION_UNSPECIFIED\x10\x00\x12\x0e\n\nLEGITIMATE\x10\x01\x12\x0e\n\nFRAUDULENT\x10\x02\x12\x18\n\x10PASSWORD_CORRECT\x10\x03\x1a\x02\x08\x01\x12\x1a\n\x12PASSWORD_INCORRECT\x10\x04\x1a\x02\x08\x01\"\xcf\x02\n\x06Reason\x12\x16\n\x12REASON_UNSPECIFIED\x10\x00\x12\x0e\n\nCHARGEBACK\x10\x01\x12\x14\n\x10\x43HARGEBACK_FRAUD\x10\x08\x12\x16\n\x12\x43HARGEBACK_DISPUTE\x10\t\x12\n\n\x06REFUND\x10\n\x12\x10\n\x0cREFUND_FRAUD\x10\x0b\x12\x18\n\x14TRANSACTION_ACCEPTED\x10\x0c\x12\x18\n\x14TRANSACTION_DECLINED\x10\r\x12\x16\n\x12PAYMENT_HEURISTICS\x10\x02\x12\x18\n\x14INITIATED_TWO_FACTOR\x10\x07\x12\x15\n\x11PASSED_TWO_FACTOR\x10\x03\x12\x15\n\x11\x46\x41ILED_TWO_FACTOR\x10\x04\x12\x14\n\x10\x43ORRECT_PASSWORD\x10\x05\x12\x16\n\x12INCORRECT_PASSWORD\x10\x06\x12\x0f\n\x0bSOCIAL_SPAM\x10\x0e\"\x1c\n\x1a\x41nnotateAssessmentResponse\"\x86\x01\n\x18PasswordLeakVerification\x12$\n\x17hashed_user_credentials\x18\x01 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x1f\n\x12\x63redentials_leaked\x18\x02 \x01(\x08\x42\x03\xe0\x41\x03\x12#\n\x16\x63\x61nonicalized_username\x18\x03 \x01(\tB\x03\xe0\x41\x01\"\xb7\x07\n\nAssessment\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12>\n\x05\x65vent\x18\x02 \x01(\x0b\x32/.google.cloud.recaptchaenterprise.v1beta1.Event\x12\x12\n\x05score\x18\x03 \x01(\x02\x42\x03\xe0\x41\x03\x12X\n\x10token_properties\x18\x04 \x01(\x0b\x32\x39.google.cloud.recaptchaenterprise.v1beta1.TokenPropertiesB\x03\xe0\x41\x03\x12_\n\x07reasons\x18\x05 \x03(\x0e\x32I.google.cloud.recaptchaenterprise.v1beta1.Assessment.ClassificationReasonB\x03\xe0\x41\x03\x12\x66\n\x1apassword_leak_verification\x18\x07 \x01(\x0b\x32\x42.google.cloud.recaptchaenterprise.v1beta1.PasswordLeakVerification\x12h\n\x1b\x61\x63\x63ount_defender_assessment\x18\x08 \x01(\x0b\x32\x43.google.cloud.recaptchaenterprise.v1beta1.AccountDefenderAssessment\x12h\n\x1b\x66raud_prevention_assessment\x18\x0b \x01(\x0b\x32\x43.google.cloud.recaptchaenterprise.v1beta1.FraudPreventionAssessment\"\xe9\x01\n\x14\x43lassificationReason\x12%\n!CLASSIFICATION_REASON_UNSPECIFIED\x10\x00\x12\x0e\n\nAUTOMATION\x10\x01\x12\x1a\n\x16UNEXPECTED_ENVIRONMENT\x10\x02\x12\x14\n\x10TOO_MUCH_TRAFFIC\x10\x03\x12\x1d\n\x19UNEXPECTED_USAGE_PATTERNS\x10\x04\x12\x18\n\x14LOW_CONFIDENCE_SCORE\x10\x05\x12\x15\n\x11SUSPECTED_CARDING\x10\x06\x12\x18\n\x14SUSPECTED_CHARGEBACK\x10\x07:_\xea\x41\\\n-recaptchaenterprise.googleapis.com/Assessment\x12+projects/{project}/assessments/{assessment}\"\x81\x02\n\x05\x45vent\x12\x12\n\x05token\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08site_key\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x17\n\nuser_agent\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x1c\n\x0fuser_ip_address\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x1c\n\x0f\x65xpected_action\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12\x1e\n\x11hashed_account_id\x18\x06 \x01(\x0c\x42\x03\xe0\x41\x01\x12X\n\x10transaction_data\x18\r \x01(\x0b\x32\x39.google.cloud.recaptchaenterprise.v1beta1.TransactionDataB\x03\xe0\x41\x01\"\x9d\t\n\x0fTransactionData\x12\x1b\n\x0etransaction_id\x18\x0b \x01(\tH\x00\x88\x01\x01\x12\x16\n\x0epayment_method\x18\x01 \x01(\t\x12\x10\n\x08\x63\x61rd_bin\x18\x02 \x01(\t\x12\x16\n\x0e\x63\x61rd_last_four\x18\x03 \x01(\t\x12\x15\n\rcurrency_code\x18\x04 \x01(\t\x12\r\n\x05value\x18\x05 \x01(\x01\x12\x16\n\x0eshipping_value\x18\x0c \x01(\x01\x12[\n\x10shipping_address\x18\x06 \x01(\x0b\x32\x41.google.cloud.recaptchaenterprise.v1beta1.TransactionData.Address\x12Z\n\x0f\x62illing_address\x18\x07 \x01(\x0b\x32\x41.google.cloud.recaptchaenterprise.v1beta1.TransactionData.Address\x12L\n\x04user\x18\x08 \x01(\x0b\x32>.google.cloud.recaptchaenterprise.v1beta1.TransactionData.User\x12Q\n\tmerchants\x18\r \x03(\x0b\x32>.google.cloud.recaptchaenterprise.v1beta1.TransactionData.User\x12M\n\x05items\x18\x0e \x03(\x0b\x32>.google.cloud.recaptchaenterprise.v1beta1.TransactionData.Item\x12[\n\x0cgateway_info\x18\n \x01(\x0b\x32\x45.google.cloud.recaptchaenterprise.v1beta1.TransactionData.GatewayInfo\x1a\x86\x01\n\x07\x41\x64\x64ress\x12\x11\n\trecipient\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x03(\t\x12\x10\n\x08locality\x18\x03 \x01(\t\x12\x1b\n\x13\x61\x64ministrative_area\x18\x04 \x01(\t\x12\x13\n\x0bregion_code\x18\x05 \x01(\t\x12\x13\n\x0bpostal_code\x18\x06 \x01(\t\x1a\x84\x01\n\x04User\x12\x12\n\naccount_id\x18\x06 \x01(\t\x12\x13\n\x0b\x63reation_ms\x18\x01 \x01(\x03\x12\r\n\x05\x65mail\x18\x02 \x01(\t\x12\x16\n\x0e\x65mail_verified\x18\x03 \x01(\x08\x12\x14\n\x0cphone_number\x18\x04 \x01(\t\x12\x16\n\x0ephone_verified\x18\x05 \x01(\x08\x1aR\n\x04Item\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x01\x12\x10\n\x08quantity\x18\x03 \x01(\x03\x12\x1b\n\x13merchant_account_id\x18\x04 \x01(\t\x1ap\n\x0bGatewayInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1d\n\x15gateway_response_code\x18\x02 \x01(\t\x12\x19\n\x11\x61vs_response_code\x18\x03 \x01(\t\x12\x19\n\x11\x63vv_response_code\x18\x04 \x01(\tB\x11\n\x0f_transaction_id\"\xff\x02\n\x0fTokenProperties\x12\r\n\x05valid\x18\x01 \x01(\x08\x12_\n\x0einvalid_reason\x18\x02 \x01(\x0e\x32G.google.cloud.recaptchaenterprise.v1beta1.TokenProperties.InvalidReason\x12/\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x10\n\x08hostname\x18\x04 \x01(\t\x12\x0e\n\x06\x61\x63tion\x18\x05 \x01(\t\"\xa8\x01\n\rInvalidReason\x12\x1e\n\x1aINVALID_REASON_UNSPECIFIED\x10\x00\x12\x1a\n\x16UNKNOWN_INVALID_REASON\x10\x01\x12\r\n\tMALFORMED\x10\x02\x12\x0b\n\x07\x45XPIRED\x10\x03\x12\x08\n\x04\x44UPE\x10\x04\x12\x15\n\rSITE_MISMATCH\x10\x05\x1a\x02\x08\x01\x12\x0b\n\x07MISSING\x10\x06\x12\x11\n\rBROWSER_ERROR\x10\x07\"\x9f\x04\n\x19\x46raudPreventionAssessment\x12\x18\n\x10transaction_risk\x18\x01 \x01(\x02\x12~\n\x19stolen_instrument_verdict\x18\x02 \x01(\x0b\x32[.google.cloud.recaptchaenterprise.v1beta1.FraudPreventionAssessment.StolenInstrumentVerdict\x12t\n\x14\x63\x61rd_testing_verdict\x18\x03 \x01(\x0b\x32V.google.cloud.recaptchaenterprise.v1beta1.FraudPreventionAssessment.CardTestingVerdict\x12|\n\x18\x62\x65havioral_trust_verdict\x18\x04 \x01(\x0b\x32Z.google.cloud.recaptchaenterprise.v1beta1.FraudPreventionAssessment.BehavioralTrustVerdict\x1a\'\n\x17StolenInstrumentVerdict\x12\x0c\n\x04risk\x18\x01 \x01(\x02\x1a\"\n\x12\x43\x61rdTestingVerdict\x12\x0c\n\x04risk\x18\x01 \x01(\x02\x1a\'\n\x16\x42\x65havioralTrustVerdict\x12\r\n\x05trust\x18\x01 \x01(\x02\"\xbb\x02\n\x19\x41\x63\x63ountDefenderAssessment\x12h\n\x06labels\x18\x01 \x03(\x0e\x32X.google.cloud.recaptchaenterprise.v1beta1.AccountDefenderAssessment.AccountDefenderLabel\"\xb3\x01\n\x14\x41\x63\x63ountDefenderLabel\x12&\n\"ACCOUNT_DEFENDER_LABEL_UNSPECIFIED\x10\x00\x12\x11\n\rPROFILE_MATCH\x10\x01\x12\x1d\n\x19SUSPICIOUS_LOGIN_ACTIVITY\x10\x02\x12\x1f\n\x1bSUSPICIOUS_ACCOUNT_CREATION\x10\x03\x12 \n\x1cRELATED_ACCOUNTS_NUMBER_HIGH\x10\x04\x32\xcd\x04\n!RecaptchaEnterpriseServiceV1Beta1\x12\xdd\x01\n\x10\x43reateAssessment\x12\x41.google.cloud.recaptchaenterprise.v1beta1.CreateAssessmentRequest\x1a\x34.google.cloud.recaptchaenterprise.v1beta1.Assessment\"P\x82\xd3\xe4\x93\x02\x36\"(/v1beta1/{parent=projects/*}/assessments:\nassessment\xda\x41\x11parent,assessment\x12\xef\x01\n\x12\x41nnotateAssessment\x12\x43.google.cloud.recaptchaenterprise.v1beta1.AnnotateAssessmentRequest\x1a\x44.google.cloud.recaptchaenterprise.v1beta1.AnnotateAssessmentResponse\"N\x82\xd3\xe4\x93\x02\x36\"1/v1beta1/{name=projects/*/assessments/*}:annotate:\x01*\xda\x41\x0fname,annotation\x1aV\xca\x41\"recaptchaenterprise.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xb2\x02\n&com.google.recaptchaenterprise.v1beta1B\x18RecaptchaEnterpriseProtoP\x01Zacloud.google.com/go/recaptchaenterprise/v2/apiv1beta1/recaptchaenterprisepb;recaptchaenterprisepb\xa2\x02\x04GCRE\xaa\x02(Google.Cloud.RecaptchaEnterprise.V1Beta1\xca\x02(Google\\Cloud\\RecaptchaEnterprise\\V1beta1\xea\x02+Google::Cloud::RecaptchaEnterprise::V1beta1b\x06proto3"
|
15
15
|
|
16
16
|
pool = Google::Protobuf::DescriptorPool.generated_pool
|
17
17
|
|
@@ -63,6 +63,7 @@ module Google
|
|
63
63
|
FraudPreventionAssessment = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recaptchaenterprise.v1beta1.FraudPreventionAssessment").msgclass
|
64
64
|
FraudPreventionAssessment::StolenInstrumentVerdict = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recaptchaenterprise.v1beta1.FraudPreventionAssessment.StolenInstrumentVerdict").msgclass
|
65
65
|
FraudPreventionAssessment::CardTestingVerdict = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recaptchaenterprise.v1beta1.FraudPreventionAssessment.CardTestingVerdict").msgclass
|
66
|
+
FraudPreventionAssessment::BehavioralTrustVerdict = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recaptchaenterprise.v1beta1.FraudPreventionAssessment.BehavioralTrustVerdict").msgclass
|
66
67
|
AccountDefenderAssessment = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recaptchaenterprise.v1beta1.AccountDefenderAssessment").msgclass
|
67
68
|
AccountDefenderAssessment::AccountDefenderLabel = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recaptchaenterprise.v1beta1.AccountDefenderAssessment.AccountDefenderLabel").enummodule
|
68
69
|
end
|
@@ -304,6 +304,19 @@ module Google
|
|
304
304
|
# seconds: 360 # 6 minutes
|
305
305
|
# total_poll_timeout:
|
306
306
|
# seconds: 54000 # 90 minutes
|
307
|
+
# @!attribute [rw] auto_populated_fields
|
308
|
+
# @return [::Array<::String>]
|
309
|
+
# List of top-level fields of the request message, that should be
|
310
|
+
# automatically populated by the client libraries based on their
|
311
|
+
# (google.api.field_info).format. Currently supported format: UUID4.
|
312
|
+
#
|
313
|
+
# Example of a YAML configuration:
|
314
|
+
#
|
315
|
+
# publishing:
|
316
|
+
# method_settings:
|
317
|
+
# - selector: google.example.v1.ExampleService.CreateExample
|
318
|
+
# auto_populated_fields:
|
319
|
+
# - request_id
|
307
320
|
class MethodSettings
|
308
321
|
include ::Google::Protobuf::MessageExts
|
309
322
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -25,7 +25,7 @@ module Google
|
|
25
25
|
# @!attribute [rw] parent
|
26
26
|
# @return [::String]
|
27
27
|
# Required. The name of the project in which the assessment will be created,
|
28
|
-
# in the format
|
28
|
+
# in the format `projects/{project_number}`.
|
29
29
|
# @!attribute [rw] assessment
|
30
30
|
# @return [::Google::Cloud::RecaptchaEnterprise::V1beta1::Assessment]
|
31
31
|
# Required. The assessment details.
|
@@ -159,7 +159,7 @@ module Google
|
|
159
159
|
# @!attribute [rw] name
|
160
160
|
# @return [::String]
|
161
161
|
# Required. The resource name of the Assessment, in the format
|
162
|
-
#
|
162
|
+
# `projects/{project_number}/assessments/{assessment_id}`.
|
163
163
|
# @!attribute [rw] annotation
|
164
164
|
# @return [::Google::Cloud::RecaptchaEnterprise::V1beta1::AnnotateAssessmentRequest::Annotation]
|
165
165
|
# Optional. The annotation that will be assigned to the Event. This field can
|
@@ -167,15 +167,14 @@ module Google
|
|
167
167
|
# whether the event is legitimate or fraudulent.
|
168
168
|
# @!attribute [rw] reasons
|
169
169
|
# @return [::Array<::Google::Cloud::RecaptchaEnterprise::V1beta1::AnnotateAssessmentRequest::Reason>]
|
170
|
-
# Optional.
|
171
|
-
# Event.
|
170
|
+
# Optional. Reasons for the annotation that are assigned to the event.
|
172
171
|
# @!attribute [rw] hashed_account_id
|
173
172
|
# @return [::String]
|
174
|
-
# Optional.
|
175
|
-
#
|
176
|
-
# CreateAssessment
|
177
|
-
# in the initial request. It is recommended that the identifier is
|
178
|
-
# using hmac-sha256 with stable secret.
|
173
|
+
# Optional. Unique stable hashed user identifier to apply to the assessment.
|
174
|
+
# This is an alternative to setting the `hashed_account_id` in
|
175
|
+
# `CreateAssessment`, for example, when the account identifier is not yet
|
176
|
+
# known in the initial request. It is recommended that the identifier is
|
177
|
+
# hashed using hmac-sha256 with stable secret.
|
179
178
|
# @!attribute [rw] transaction_event
|
180
179
|
# @return [::Google::Cloud::RecaptchaEnterprise::V1beta1::TransactionEvent]
|
181
180
|
# Optional. If the assessment is part of a payment transaction, provide
|
@@ -301,7 +300,7 @@ module Google
|
|
301
300
|
# @!attribute [r] name
|
302
301
|
# @return [::String]
|
303
302
|
# Output only. The resource name for the Assessment in the format
|
304
|
-
#
|
303
|
+
# `projects/{project_number}/assessments/{assessment_id}`.
|
305
304
|
# @!attribute [rw] event
|
306
305
|
# @return [::Google::Cloud::RecaptchaEnterprise::V1beta1::Event]
|
307
306
|
# The event being assessed.
|
@@ -399,7 +398,6 @@ module Google
|
|
399
398
|
end
|
400
399
|
|
401
400
|
# Transaction data associated with a payment protected by reCAPTCHA Enterprise.
|
402
|
-
# All fields are optional.
|
403
401
|
# @!attribute [rw] transaction_id
|
404
402
|
# @return [::String]
|
405
403
|
# Unique identifier for the transaction. This custom identifier can be used
|
@@ -617,6 +615,9 @@ module Google
|
|
617
615
|
# @return [::Google::Cloud::RecaptchaEnterprise::V1beta1::FraudPreventionAssessment::CardTestingVerdict]
|
618
616
|
# Assessment of this transaction for risk of being part of a card testing
|
619
617
|
# attack.
|
618
|
+
# @!attribute [rw] behavioral_trust_verdict
|
619
|
+
# @return [::Google::Cloud::RecaptchaEnterprise::V1beta1::FraudPreventionAssessment::BehavioralTrustVerdict]
|
620
|
+
# Assessment of this transaction for behavioral trust.
|
620
621
|
class FraudPreventionAssessment
|
621
622
|
include ::Google::Protobuf::MessageExts
|
622
623
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
@@ -642,6 +643,16 @@ module Google
|
|
642
643
|
include ::Google::Protobuf::MessageExts
|
643
644
|
extend ::Google::Protobuf::MessageExts::ClassMethods
|
644
645
|
end
|
646
|
+
|
647
|
+
# Information about behavioral trust of the transaction.
|
648
|
+
# @!attribute [rw] trust
|
649
|
+
# @return [::Float]
|
650
|
+
# Probability (0-1) of this transaction attempt being executed in a
|
651
|
+
# behaviorally trustworthy way.
|
652
|
+
class BehavioralTrustVerdict
|
653
|
+
include ::Google::Protobuf::MessageExts
|
654
|
+
extend ::Google::Protobuf::MessageExts::ClassMethods
|
655
|
+
end
|
645
656
|
end
|
646
657
|
|
647
658
|
# Account defender risk assessment.
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google-cloud-recaptcha_enterprise-v1beta1
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Google LLC
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-01-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gapic-common
|
@@ -209,7 +209,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
209
209
|
- !ruby/object:Gem::Version
|
210
210
|
version: '0'
|
211
211
|
requirements: []
|
212
|
-
rubygems_version: 3.
|
212
|
+
rubygems_version: 3.5.3
|
213
213
|
signing_key:
|
214
214
|
specification_version: 4
|
215
215
|
summary: Help protect your website from fraudulent activity, spam, and abuse without
|