xref: /aosp_15_r20/external/googleapis/google/cloud/recaptchaenterprise/v1/recaptchaenterprise.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1*d5c09012SAndroid Build Coastguard Worker// Copyright 2023 Google LLC
2*d5c09012SAndroid Build Coastguard Worker//
3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*d5c09012SAndroid Build Coastguard Worker//
7*d5c09012SAndroid Build Coastguard Worker//     http://www.apache.org/licenses/LICENSE-2.0
8*d5c09012SAndroid Build Coastguard Worker//
9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*d5c09012SAndroid Build Coastguard Worker// limitations under the License.
14*d5c09012SAndroid Build Coastguard Worker
15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3";
16*d5c09012SAndroid Build Coastguard Worker
17*d5c09012SAndroid Build Coastguard Workerpackage google.cloud.recaptchaenterprise.v1;
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard Workerimport "google/api/annotations.proto";
20*d5c09012SAndroid Build Coastguard Workerimport "google/api/client.proto";
21*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto";
22*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_info.proto";
23*d5c09012SAndroid Build Coastguard Workerimport "google/api/resource.proto";
24*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/empty.proto";
25*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/field_mask.proto";
26*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto";
27*d5c09012SAndroid Build Coastguard Workerimport "google/rpc/status.proto";
28*d5c09012SAndroid Build Coastguard Worker
29*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.RecaptchaEnterprise.V1";
30*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/recaptchaenterprise/v2/apiv1/recaptchaenterprisepb;recaptchaenterprisepb";
31*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
32*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "RecaptchaEnterpriseProto";
33*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.recaptchaenterprise.v1";
34*d5c09012SAndroid Build Coastguard Workeroption objc_class_prefix = "GCRE";
35*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\RecaptchaEnterprise\\V1";
36*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::RecaptchaEnterprise::V1";
37*d5c09012SAndroid Build Coastguard Worker
38*d5c09012SAndroid Build Coastguard Worker// Service to determine the likelihood an event is legitimate.
39*d5c09012SAndroid Build Coastguard Workerservice RecaptchaEnterpriseService {
40*d5c09012SAndroid Build Coastguard Worker  option (google.api.default_host) = "recaptchaenterprise.googleapis.com";
41*d5c09012SAndroid Build Coastguard Worker  option (google.api.oauth_scopes) =
42*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform";
43*d5c09012SAndroid Build Coastguard Worker
44*d5c09012SAndroid Build Coastguard Worker  // Creates an Assessment of the likelihood an event is legitimate.
45*d5c09012SAndroid Build Coastguard Worker  rpc CreateAssessment(CreateAssessmentRequest) returns (Assessment) {
46*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
47*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{parent=projects/*}/assessments"
48*d5c09012SAndroid Build Coastguard Worker      body: "assessment"
49*d5c09012SAndroid Build Coastguard Worker    };
50*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,assessment";
51*d5c09012SAndroid Build Coastguard Worker  }
52*d5c09012SAndroid Build Coastguard Worker
53*d5c09012SAndroid Build Coastguard Worker  // Annotates a previously created Assessment to provide additional information
54*d5c09012SAndroid Build Coastguard Worker  // on whether the event turned out to be authentic or fraudulent.
55*d5c09012SAndroid Build Coastguard Worker  rpc AnnotateAssessment(AnnotateAssessmentRequest)
56*d5c09012SAndroid Build Coastguard Worker      returns (AnnotateAssessmentResponse) {
57*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
58*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{name=projects/*/assessments/*}:annotate"
59*d5c09012SAndroid Build Coastguard Worker      body: "*"
60*d5c09012SAndroid Build Coastguard Worker    };
61*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name,annotation";
62*d5c09012SAndroid Build Coastguard Worker  }
63*d5c09012SAndroid Build Coastguard Worker
64*d5c09012SAndroid Build Coastguard Worker  // Creates a new reCAPTCHA Enterprise key.
65*d5c09012SAndroid Build Coastguard Worker  rpc CreateKey(CreateKeyRequest) returns (Key) {
66*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
67*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{parent=projects/*}/keys"
68*d5c09012SAndroid Build Coastguard Worker      body: "key"
69*d5c09012SAndroid Build Coastguard Worker    };
70*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,key";
71*d5c09012SAndroid Build Coastguard Worker  }
72*d5c09012SAndroid Build Coastguard Worker
73*d5c09012SAndroid Build Coastguard Worker  // Returns the list of all keys that belong to a project.
74*d5c09012SAndroid Build Coastguard Worker  rpc ListKeys(ListKeysRequest) returns (ListKeysResponse) {
75*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
76*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{parent=projects/*}/keys"
77*d5c09012SAndroid Build Coastguard Worker    };
78*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
79*d5c09012SAndroid Build Coastguard Worker  }
80*d5c09012SAndroid Build Coastguard Worker
81*d5c09012SAndroid Build Coastguard Worker  // Returns the secret key related to the specified public key.
82*d5c09012SAndroid Build Coastguard Worker  // You must use the legacy secret key only in a 3rd party integration with
83*d5c09012SAndroid Build Coastguard Worker  // legacy reCAPTCHA.
84*d5c09012SAndroid Build Coastguard Worker  rpc RetrieveLegacySecretKey(RetrieveLegacySecretKeyRequest)
85*d5c09012SAndroid Build Coastguard Worker      returns (RetrieveLegacySecretKeyResponse) {
86*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
87*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{key=projects/*/keys/*}:retrieveLegacySecretKey"
88*d5c09012SAndroid Build Coastguard Worker    };
89*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "key";
90*d5c09012SAndroid Build Coastguard Worker  }
91*d5c09012SAndroid Build Coastguard Worker
92*d5c09012SAndroid Build Coastguard Worker  // Returns the specified key.
93*d5c09012SAndroid Build Coastguard Worker  rpc GetKey(GetKeyRequest) returns (Key) {
94*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
95*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{name=projects/*/keys/*}"
96*d5c09012SAndroid Build Coastguard Worker    };
97*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
98*d5c09012SAndroid Build Coastguard Worker  }
99*d5c09012SAndroid Build Coastguard Worker
100*d5c09012SAndroid Build Coastguard Worker  // Updates the specified key.
101*d5c09012SAndroid Build Coastguard Worker  rpc UpdateKey(UpdateKeyRequest) returns (Key) {
102*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
103*d5c09012SAndroid Build Coastguard Worker      patch: "/v1/{key.name=projects/*/keys/*}"
104*d5c09012SAndroid Build Coastguard Worker      body: "key"
105*d5c09012SAndroid Build Coastguard Worker    };
106*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "key,update_mask";
107*d5c09012SAndroid Build Coastguard Worker  }
108*d5c09012SAndroid Build Coastguard Worker
109*d5c09012SAndroid Build Coastguard Worker  // Deletes the specified key.
110*d5c09012SAndroid Build Coastguard Worker  rpc DeleteKey(DeleteKeyRequest) returns (google.protobuf.Empty) {
111*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
112*d5c09012SAndroid Build Coastguard Worker      delete: "/v1/{name=projects/*/keys/*}"
113*d5c09012SAndroid Build Coastguard Worker    };
114*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
115*d5c09012SAndroid Build Coastguard Worker  }
116*d5c09012SAndroid Build Coastguard Worker
117*d5c09012SAndroid Build Coastguard Worker  // Migrates an existing key from reCAPTCHA to reCAPTCHA Enterprise.
118*d5c09012SAndroid Build Coastguard Worker  // Once a key is migrated, it can be used from either product. SiteVerify
119*d5c09012SAndroid Build Coastguard Worker  // requests are billed as CreateAssessment calls. You must be
120*d5c09012SAndroid Build Coastguard Worker  // authenticated as one of the current owners of the reCAPTCHA Key, and
121*d5c09012SAndroid Build Coastguard Worker  // your user must have the reCAPTCHA Enterprise Admin IAM role in the
122*d5c09012SAndroid Build Coastguard Worker  // destination project.
123*d5c09012SAndroid Build Coastguard Worker  rpc MigrateKey(MigrateKeyRequest) returns (Key) {
124*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
125*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{name=projects/*/keys/*}:migrate"
126*d5c09012SAndroid Build Coastguard Worker      body: "*"
127*d5c09012SAndroid Build Coastguard Worker    };
128*d5c09012SAndroid Build Coastguard Worker  }
129*d5c09012SAndroid Build Coastguard Worker
130*d5c09012SAndroid Build Coastguard Worker  // Get some aggregated metrics for a Key. This data can be used to build
131*d5c09012SAndroid Build Coastguard Worker  // dashboards.
132*d5c09012SAndroid Build Coastguard Worker  rpc GetMetrics(GetMetricsRequest) returns (Metrics) {
133*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
134*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{name=projects/*/keys/*/metrics}"
135*d5c09012SAndroid Build Coastguard Worker    };
136*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
137*d5c09012SAndroid Build Coastguard Worker  }
138*d5c09012SAndroid Build Coastguard Worker
139*d5c09012SAndroid Build Coastguard Worker  // Creates a new FirewallPolicy, specifying conditions at which reCAPTCHA
140*d5c09012SAndroid Build Coastguard Worker  // Enterprise actions can be executed.
141*d5c09012SAndroid Build Coastguard Worker  // A project may have a maximum of 1000 policies.
142*d5c09012SAndroid Build Coastguard Worker  rpc CreateFirewallPolicy(CreateFirewallPolicyRequest)
143*d5c09012SAndroid Build Coastguard Worker      returns (FirewallPolicy) {
144*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
145*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{parent=projects/*}/firewallpolicies"
146*d5c09012SAndroid Build Coastguard Worker      body: "firewall_policy"
147*d5c09012SAndroid Build Coastguard Worker    };
148*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,firewall_policy";
149*d5c09012SAndroid Build Coastguard Worker  }
150*d5c09012SAndroid Build Coastguard Worker
151*d5c09012SAndroid Build Coastguard Worker  // Returns the list of all firewall policies that belong to a project.
152*d5c09012SAndroid Build Coastguard Worker  rpc ListFirewallPolicies(ListFirewallPoliciesRequest)
153*d5c09012SAndroid Build Coastguard Worker      returns (ListFirewallPoliciesResponse) {
154*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
155*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{parent=projects/*}/firewallpolicies"
156*d5c09012SAndroid Build Coastguard Worker    };
157*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
158*d5c09012SAndroid Build Coastguard Worker  }
159*d5c09012SAndroid Build Coastguard Worker
160*d5c09012SAndroid Build Coastguard Worker  // Returns the specified firewall policy.
161*d5c09012SAndroid Build Coastguard Worker  rpc GetFirewallPolicy(GetFirewallPolicyRequest) returns (FirewallPolicy) {
162*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
163*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{name=projects/*/firewallpolicies/*}"
164*d5c09012SAndroid Build Coastguard Worker    };
165*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
166*d5c09012SAndroid Build Coastguard Worker  }
167*d5c09012SAndroid Build Coastguard Worker
168*d5c09012SAndroid Build Coastguard Worker  // Updates the specified firewall policy.
169*d5c09012SAndroid Build Coastguard Worker  rpc UpdateFirewallPolicy(UpdateFirewallPolicyRequest)
170*d5c09012SAndroid Build Coastguard Worker      returns (FirewallPolicy) {
171*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
172*d5c09012SAndroid Build Coastguard Worker      patch: "/v1/{firewall_policy.name=projects/*/firewallpolicies/*}"
173*d5c09012SAndroid Build Coastguard Worker      body: "firewall_policy"
174*d5c09012SAndroid Build Coastguard Worker    };
175*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "firewall_policy,update_mask";
176*d5c09012SAndroid Build Coastguard Worker  }
177*d5c09012SAndroid Build Coastguard Worker
178*d5c09012SAndroid Build Coastguard Worker  // Deletes the specified firewall policy.
179*d5c09012SAndroid Build Coastguard Worker  rpc DeleteFirewallPolicy(DeleteFirewallPolicyRequest)
180*d5c09012SAndroid Build Coastguard Worker      returns (google.protobuf.Empty) {
181*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
182*d5c09012SAndroid Build Coastguard Worker      delete: "/v1/{name=projects/*/firewallpolicies/*}"
183*d5c09012SAndroid Build Coastguard Worker    };
184*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
185*d5c09012SAndroid Build Coastguard Worker  }
186*d5c09012SAndroid Build Coastguard Worker
187*d5c09012SAndroid Build Coastguard Worker  // Reorders all firewall policies.
188*d5c09012SAndroid Build Coastguard Worker  rpc ReorderFirewallPolicies(ReorderFirewallPoliciesRequest)
189*d5c09012SAndroid Build Coastguard Worker      returns (ReorderFirewallPoliciesResponse) {
190*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
191*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{parent=projects/*}/firewallpolicies:reorder"
192*d5c09012SAndroid Build Coastguard Worker      body: "*"
193*d5c09012SAndroid Build Coastguard Worker    };
194*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,names";
195*d5c09012SAndroid Build Coastguard Worker  }
196*d5c09012SAndroid Build Coastguard Worker
197*d5c09012SAndroid Build Coastguard Worker  // List groups of related accounts.
198*d5c09012SAndroid Build Coastguard Worker  rpc ListRelatedAccountGroups(ListRelatedAccountGroupsRequest)
199*d5c09012SAndroid Build Coastguard Worker      returns (ListRelatedAccountGroupsResponse) {
200*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
201*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{parent=projects/*}/relatedaccountgroups"
202*d5c09012SAndroid Build Coastguard Worker    };
203*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
204*d5c09012SAndroid Build Coastguard Worker  }
205*d5c09012SAndroid Build Coastguard Worker
206*d5c09012SAndroid Build Coastguard Worker  // Get memberships in a group of related accounts.
207*d5c09012SAndroid Build Coastguard Worker  rpc ListRelatedAccountGroupMemberships(
208*d5c09012SAndroid Build Coastguard Worker      ListRelatedAccountGroupMembershipsRequest)
209*d5c09012SAndroid Build Coastguard Worker      returns (ListRelatedAccountGroupMembershipsResponse) {
210*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
211*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{parent=projects/*/relatedaccountgroups/*}/memberships"
212*d5c09012SAndroid Build Coastguard Worker    };
213*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
214*d5c09012SAndroid Build Coastguard Worker  }
215*d5c09012SAndroid Build Coastguard Worker
216*d5c09012SAndroid Build Coastguard Worker  // Search group memberships related to a given account.
217*d5c09012SAndroid Build Coastguard Worker  rpc SearchRelatedAccountGroupMemberships(
218*d5c09012SAndroid Build Coastguard Worker      SearchRelatedAccountGroupMembershipsRequest)
219*d5c09012SAndroid Build Coastguard Worker      returns (SearchRelatedAccountGroupMembershipsResponse) {
220*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
221*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{project=projects/*}/relatedaccountgroupmemberships:search"
222*d5c09012SAndroid Build Coastguard Worker      body: "*"
223*d5c09012SAndroid Build Coastguard Worker    };
224*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "project,hashed_account_id";
225*d5c09012SAndroid Build Coastguard Worker  }
226*d5c09012SAndroid Build Coastguard Worker}
227*d5c09012SAndroid Build Coastguard Worker
228*d5c09012SAndroid Build Coastguard Worker// The create assessment request message.
229*d5c09012SAndroid Build Coastguard Workermessage CreateAssessmentRequest {
230*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the project in which the assessment will be created,
231*d5c09012SAndroid Build Coastguard Worker  // in the format `projects/{project}`.
232*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
233*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
234*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
235*d5c09012SAndroid Build Coastguard Worker      type: "cloudresourcemanager.googleapis.com/Project"
236*d5c09012SAndroid Build Coastguard Worker    }
237*d5c09012SAndroid Build Coastguard Worker  ];
238*d5c09012SAndroid Build Coastguard Worker
239*d5c09012SAndroid Build Coastguard Worker  // Required. The assessment details.
240*d5c09012SAndroid Build Coastguard Worker  Assessment assessment = 2 [(google.api.field_behavior) = REQUIRED];
241*d5c09012SAndroid Build Coastguard Worker}
242*d5c09012SAndroid Build Coastguard Worker
243*d5c09012SAndroid Build Coastguard Worker// Describes an event in the lifecycle of a payment transaction.
244*d5c09012SAndroid Build Coastguard Workermessage TransactionEvent {
245*d5c09012SAndroid Build Coastguard Worker  // Enum that represents an event in the payment transaction lifecycle.
246*d5c09012SAndroid Build Coastguard Worker  enum TransactionEventType {
247*d5c09012SAndroid Build Coastguard Worker    // Default, unspecified event type.
248*d5c09012SAndroid Build Coastguard Worker    TRANSACTION_EVENT_TYPE_UNSPECIFIED = 0;
249*d5c09012SAndroid Build Coastguard Worker
250*d5c09012SAndroid Build Coastguard Worker    // Indicates that the transaction is approved by the merchant. The
251*d5c09012SAndroid Build Coastguard Worker    // accompanying reasons can include terms such as 'INHOUSE', 'ACCERTIFY',
252*d5c09012SAndroid Build Coastguard Worker    // 'CYBERSOURCE', or 'MANUAL_REVIEW'.
253*d5c09012SAndroid Build Coastguard Worker    MERCHANT_APPROVE = 1;
254*d5c09012SAndroid Build Coastguard Worker
255*d5c09012SAndroid Build Coastguard Worker    // Indicates that the transaction is denied and concluded due to risks
256*d5c09012SAndroid Build Coastguard Worker    // detected by the merchant. The accompanying reasons can include terms such
257*d5c09012SAndroid Build Coastguard Worker    // as 'INHOUSE',  'ACCERTIFY',  'CYBERSOURCE', or 'MANUAL_REVIEW'.
258*d5c09012SAndroid Build Coastguard Worker    MERCHANT_DENY = 2;
259*d5c09012SAndroid Build Coastguard Worker
260*d5c09012SAndroid Build Coastguard Worker    // Indicates that the transaction is being evaluated by a human, due to
261*d5c09012SAndroid Build Coastguard Worker    // suspicion or risk.
262*d5c09012SAndroid Build Coastguard Worker    MANUAL_REVIEW = 3;
263*d5c09012SAndroid Build Coastguard Worker
264*d5c09012SAndroid Build Coastguard Worker    // Indicates that the authorization attempt with the card issuer succeeded.
265*d5c09012SAndroid Build Coastguard Worker    AUTHORIZATION = 4;
266*d5c09012SAndroid Build Coastguard Worker
267*d5c09012SAndroid Build Coastguard Worker    // Indicates that the authorization attempt with the card issuer failed.
268*d5c09012SAndroid Build Coastguard Worker    // The accompanying reasons can include Visa's '54' indicating that the card
269*d5c09012SAndroid Build Coastguard Worker    // is expired, or '82' indicating that the CVV is incorrect.
270*d5c09012SAndroid Build Coastguard Worker    AUTHORIZATION_DECLINE = 5;
271*d5c09012SAndroid Build Coastguard Worker
272*d5c09012SAndroid Build Coastguard Worker    // Indicates that the transaction is completed because the funds were
273*d5c09012SAndroid Build Coastguard Worker    // settled.
274*d5c09012SAndroid Build Coastguard Worker    PAYMENT_CAPTURE = 6;
275*d5c09012SAndroid Build Coastguard Worker
276*d5c09012SAndroid Build Coastguard Worker    // Indicates that the transaction could not be completed because the funds
277*d5c09012SAndroid Build Coastguard Worker    // were not settled.
278*d5c09012SAndroid Build Coastguard Worker    PAYMENT_CAPTURE_DECLINE = 7;
279*d5c09012SAndroid Build Coastguard Worker
280*d5c09012SAndroid Build Coastguard Worker    // Indicates that the transaction has been canceled. Specify the reason
281*d5c09012SAndroid Build Coastguard Worker    // for the cancellation. For example, 'INSUFFICIENT_INVENTORY'.
282*d5c09012SAndroid Build Coastguard Worker    CANCEL = 8;
283*d5c09012SAndroid Build Coastguard Worker
284*d5c09012SAndroid Build Coastguard Worker    // Indicates that the merchant has received a chargeback inquiry due to
285*d5c09012SAndroid Build Coastguard Worker    // fraud for the transaction, requesting additional information before a
286*d5c09012SAndroid Build Coastguard Worker    // fraud chargeback is officially issued and a formal chargeback
287*d5c09012SAndroid Build Coastguard Worker    // notification is sent.
288*d5c09012SAndroid Build Coastguard Worker    CHARGEBACK_INQUIRY = 9;
289*d5c09012SAndroid Build Coastguard Worker
290*d5c09012SAndroid Build Coastguard Worker    // Indicates that the merchant has received a chargeback alert due to fraud
291*d5c09012SAndroid Build Coastguard Worker    // for the transaction. The process of resolving the dispute without
292*d5c09012SAndroid Build Coastguard Worker    // involving the payment network is started.
293*d5c09012SAndroid Build Coastguard Worker    CHARGEBACK_ALERT = 10;
294*d5c09012SAndroid Build Coastguard Worker
295*d5c09012SAndroid Build Coastguard Worker    // Indicates that a fraud notification is issued for the transaction, sent
296*d5c09012SAndroid Build Coastguard Worker    // by the payment instrument's issuing bank because the transaction appears
297*d5c09012SAndroid Build Coastguard Worker    // to be fraudulent. We recommend including TC40 or SAFE data in the
298*d5c09012SAndroid Build Coastguard Worker    // `reason` field for this event type. For partial chargebacks, we recommend
299*d5c09012SAndroid Build Coastguard Worker    // that you include an amount in the `value` field.
300*d5c09012SAndroid Build Coastguard Worker    FRAUD_NOTIFICATION = 11;
301*d5c09012SAndroid Build Coastguard Worker
302*d5c09012SAndroid Build Coastguard Worker    // Indicates that the merchant is informed by the payment network that the
303*d5c09012SAndroid Build Coastguard Worker    // transaction has entered the chargeback process due to fraud. Reason code
304*d5c09012SAndroid Build Coastguard Worker    // examples include Discover's '6005' and '6041'. For partial chargebacks,
305*d5c09012SAndroid Build Coastguard Worker    // we recommend that you include an amount in the `value` field.
306*d5c09012SAndroid Build Coastguard Worker    CHARGEBACK = 12;
307*d5c09012SAndroid Build Coastguard Worker
308*d5c09012SAndroid Build Coastguard Worker    // Indicates that the transaction has entered the chargeback process due to
309*d5c09012SAndroid Build Coastguard Worker    // fraud, and that the merchant has chosen to enter representment. Reason
310*d5c09012SAndroid Build Coastguard Worker    // examples include Discover's '6005' and '6041'. For partial chargebacks,
311*d5c09012SAndroid Build Coastguard Worker    // we recommend that you include an amount in the `value` field.
312*d5c09012SAndroid Build Coastguard Worker    CHARGEBACK_REPRESENTMENT = 13;
313*d5c09012SAndroid Build Coastguard Worker
314*d5c09012SAndroid Build Coastguard Worker    // Indicates that the transaction has had a fraud chargeback which was
315*d5c09012SAndroid Build Coastguard Worker    // illegitimate and was reversed as a result. For partial chargebacks, we
316*d5c09012SAndroid Build Coastguard Worker    // recommend that you include an amount in the `value` field.
317*d5c09012SAndroid Build Coastguard Worker    CHARGEBACK_REVERSE = 14;
318*d5c09012SAndroid Build Coastguard Worker
319*d5c09012SAndroid Build Coastguard Worker    // Indicates that the merchant has received a refund for a completed
320*d5c09012SAndroid Build Coastguard Worker    // transaction. For partial refunds, we recommend that you include an amount
321*d5c09012SAndroid Build Coastguard Worker    // in the `value` field. Reason example: 'TAX_EXEMPT' (partial refund of
322*d5c09012SAndroid Build Coastguard Worker    // exempt tax)
323*d5c09012SAndroid Build Coastguard Worker    REFUND_REQUEST = 15;
324*d5c09012SAndroid Build Coastguard Worker
325*d5c09012SAndroid Build Coastguard Worker    // Indicates that the merchant has received a refund request for this
326*d5c09012SAndroid Build Coastguard Worker    // transaction, but that they have declined it. For partial refunds, we
327*d5c09012SAndroid Build Coastguard Worker    // recommend that you include an amount in the `value` field. Reason
328*d5c09012SAndroid Build Coastguard Worker    // example: 'TAX_EXEMPT' (partial refund of exempt tax)
329*d5c09012SAndroid Build Coastguard Worker    REFUND_DECLINE = 16;
330*d5c09012SAndroid Build Coastguard Worker
331*d5c09012SAndroid Build Coastguard Worker    // Indicates that the completed transaction was refunded by the merchant.
332*d5c09012SAndroid Build Coastguard Worker    // For partial refunds, we recommend that you include an amount in the
333*d5c09012SAndroid Build Coastguard Worker    // `value` field. Reason example: 'TAX_EXEMPT' (partial refund of exempt
334*d5c09012SAndroid Build Coastguard Worker    // tax)
335*d5c09012SAndroid Build Coastguard Worker    REFUND = 17;
336*d5c09012SAndroid Build Coastguard Worker
337*d5c09012SAndroid Build Coastguard Worker    // Indicates that the completed transaction was refunded by the merchant,
338*d5c09012SAndroid Build Coastguard Worker    // and that this refund was reversed. For partial refunds, we recommend that
339*d5c09012SAndroid Build Coastguard Worker    // you include an amount in the `value` field.
340*d5c09012SAndroid Build Coastguard Worker    REFUND_REVERSE = 18;
341*d5c09012SAndroid Build Coastguard Worker  }
342*d5c09012SAndroid Build Coastguard Worker
343*d5c09012SAndroid Build Coastguard Worker  // Optional. The type of this transaction event.
344*d5c09012SAndroid Build Coastguard Worker  TransactionEventType event_type = 1 [(google.api.field_behavior) = OPTIONAL];
345*d5c09012SAndroid Build Coastguard Worker
346*d5c09012SAndroid Build Coastguard Worker  // Optional. The reason or standardized code that corresponds with this
347*d5c09012SAndroid Build Coastguard Worker  // transaction event, if one exists. For example, a CHARGEBACK event with code
348*d5c09012SAndroid Build Coastguard Worker  // 6005.
349*d5c09012SAndroid Build Coastguard Worker  string reason = 2 [(google.api.field_behavior) = OPTIONAL];
350*d5c09012SAndroid Build Coastguard Worker
351*d5c09012SAndroid Build Coastguard Worker  // Optional. The value that corresponds with this transaction event, if one
352*d5c09012SAndroid Build Coastguard Worker  // exists. For example, a refund event where $5.00 was refunded. Currency is
353*d5c09012SAndroid Build Coastguard Worker  // obtained from the original transaction data.
354*d5c09012SAndroid Build Coastguard Worker  double value = 3 [(google.api.field_behavior) = OPTIONAL];
355*d5c09012SAndroid Build Coastguard Worker
356*d5c09012SAndroid Build Coastguard Worker  // Optional. Timestamp when this transaction event occurred; otherwise assumed
357*d5c09012SAndroid Build Coastguard Worker  // to be the time of the API call.
358*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp event_time = 4
359*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
360*d5c09012SAndroid Build Coastguard Worker}
361*d5c09012SAndroid Build Coastguard Worker
362*d5c09012SAndroid Build Coastguard Worker// The request message to annotate an Assessment.
363*d5c09012SAndroid Build Coastguard Workermessage AnnotateAssessmentRequest {
364*d5c09012SAndroid Build Coastguard Worker  // Enum that represents the types of annotations.
365*d5c09012SAndroid Build Coastguard Worker  enum Annotation {
366*d5c09012SAndroid Build Coastguard Worker    // Default unspecified type.
367*d5c09012SAndroid Build Coastguard Worker    ANNOTATION_UNSPECIFIED = 0;
368*d5c09012SAndroid Build Coastguard Worker
369*d5c09012SAndroid Build Coastguard Worker    // Provides information that the event turned out to be legitimate.
370*d5c09012SAndroid Build Coastguard Worker    LEGITIMATE = 1;
371*d5c09012SAndroid Build Coastguard Worker
372*d5c09012SAndroid Build Coastguard Worker    // Provides information that the event turned out to be fraudulent.
373*d5c09012SAndroid Build Coastguard Worker    FRAUDULENT = 2;
374*d5c09012SAndroid Build Coastguard Worker
375*d5c09012SAndroid Build Coastguard Worker    // Provides information that the event was related to a login event in which
376*d5c09012SAndroid Build Coastguard Worker    // the user typed the correct password. Deprecated, prefer indicating
377*d5c09012SAndroid Build Coastguard Worker    // CORRECT_PASSWORD through the reasons field instead.
378*d5c09012SAndroid Build Coastguard Worker    PASSWORD_CORRECT = 3 [deprecated = true];
379*d5c09012SAndroid Build Coastguard Worker
380*d5c09012SAndroid Build Coastguard Worker    // Provides information that the event was related to a login event in which
381*d5c09012SAndroid Build Coastguard Worker    // the user typed the incorrect password. Deprecated, prefer indicating
382*d5c09012SAndroid Build Coastguard Worker    // INCORRECT_PASSWORD through the reasons field instead.
383*d5c09012SAndroid Build Coastguard Worker    PASSWORD_INCORRECT = 4 [deprecated = true];
384*d5c09012SAndroid Build Coastguard Worker  }
385*d5c09012SAndroid Build Coastguard Worker
386*d5c09012SAndroid Build Coastguard Worker  // Enum that represents potential reasons for annotating an assessment.
387*d5c09012SAndroid Build Coastguard Worker  enum Reason {
388*d5c09012SAndroid Build Coastguard Worker    // Default unspecified reason.
389*d5c09012SAndroid Build Coastguard Worker    REASON_UNSPECIFIED = 0;
390*d5c09012SAndroid Build Coastguard Worker
391*d5c09012SAndroid Build Coastguard Worker    // Indicates that the transaction had a chargeback issued with no other
392*d5c09012SAndroid Build Coastguard Worker    // details. When possible, specify the type by using CHARGEBACK_FRAUD or
393*d5c09012SAndroid Build Coastguard Worker    // CHARGEBACK_DISPUTE instead.
394*d5c09012SAndroid Build Coastguard Worker    CHARGEBACK = 1;
395*d5c09012SAndroid Build Coastguard Worker
396*d5c09012SAndroid Build Coastguard Worker    // Indicates that the transaction had a chargeback issued related to an
397*d5c09012SAndroid Build Coastguard Worker    // alleged unauthorized transaction from the cardholder's perspective (for
398*d5c09012SAndroid Build Coastguard Worker    // example, the card number was stolen).
399*d5c09012SAndroid Build Coastguard Worker    CHARGEBACK_FRAUD = 8;
400*d5c09012SAndroid Build Coastguard Worker
401*d5c09012SAndroid Build Coastguard Worker    // Indicates that the transaction had a chargeback issued related to the
402*d5c09012SAndroid Build Coastguard Worker    // cardholder having provided their card details but allegedly not being
403*d5c09012SAndroid Build Coastguard Worker    // satisfied with the purchase (for example, misrepresentation, attempted
404*d5c09012SAndroid Build Coastguard Worker    // cancellation).
405*d5c09012SAndroid Build Coastguard Worker    CHARGEBACK_DISPUTE = 9;
406*d5c09012SAndroid Build Coastguard Worker
407*d5c09012SAndroid Build Coastguard Worker    // Indicates that the completed payment transaction was refunded by the
408*d5c09012SAndroid Build Coastguard Worker    // seller.
409*d5c09012SAndroid Build Coastguard Worker    REFUND = 10;
410*d5c09012SAndroid Build Coastguard Worker
411*d5c09012SAndroid Build Coastguard Worker    // Indicates that the completed payment transaction was determined to be
412*d5c09012SAndroid Build Coastguard Worker    // fraudulent by the seller, and was cancelled and refunded as a result.
413*d5c09012SAndroid Build Coastguard Worker    REFUND_FRAUD = 11;
414*d5c09012SAndroid Build Coastguard Worker
415*d5c09012SAndroid Build Coastguard Worker    // Indicates that the payment transaction was accepted, and the user was
416*d5c09012SAndroid Build Coastguard Worker    // charged.
417*d5c09012SAndroid Build Coastguard Worker    TRANSACTION_ACCEPTED = 12;
418*d5c09012SAndroid Build Coastguard Worker
419*d5c09012SAndroid Build Coastguard Worker    // Indicates that the payment transaction was declined, for example due to
420*d5c09012SAndroid Build Coastguard Worker    // invalid card details.
421*d5c09012SAndroid Build Coastguard Worker    TRANSACTION_DECLINED = 13;
422*d5c09012SAndroid Build Coastguard Worker
423*d5c09012SAndroid Build Coastguard Worker    // Indicates the transaction associated with the assessment is suspected of
424*d5c09012SAndroid Build Coastguard Worker    // being fraudulent based on the payment method, billing details, shipping
425*d5c09012SAndroid Build Coastguard Worker    // address or other transaction information.
426*d5c09012SAndroid Build Coastguard Worker    PAYMENT_HEURISTICS = 2;
427*d5c09012SAndroid Build Coastguard Worker
428*d5c09012SAndroid Build Coastguard Worker    // Indicates that the user was served a 2FA challenge. An old assessment
429*d5c09012SAndroid Build Coastguard Worker    // with `ENUM_VALUES.INITIATED_TWO_FACTOR` reason that has not been
430*d5c09012SAndroid Build Coastguard Worker    // overwritten with `PASSED_TWO_FACTOR` is treated as an abandoned 2FA flow.
431*d5c09012SAndroid Build Coastguard Worker    // This is equivalent to `FAILED_TWO_FACTOR`.
432*d5c09012SAndroid Build Coastguard Worker    INITIATED_TWO_FACTOR = 7;
433*d5c09012SAndroid Build Coastguard Worker
434*d5c09012SAndroid Build Coastguard Worker    // Indicates that the user passed a 2FA challenge.
435*d5c09012SAndroid Build Coastguard Worker    PASSED_TWO_FACTOR = 3;
436*d5c09012SAndroid Build Coastguard Worker
437*d5c09012SAndroid Build Coastguard Worker    // Indicates that the user failed a 2FA challenge.
438*d5c09012SAndroid Build Coastguard Worker    FAILED_TWO_FACTOR = 4;
439*d5c09012SAndroid Build Coastguard Worker
440*d5c09012SAndroid Build Coastguard Worker    // Indicates the user provided the correct password.
441*d5c09012SAndroid Build Coastguard Worker    CORRECT_PASSWORD = 5;
442*d5c09012SAndroid Build Coastguard Worker
443*d5c09012SAndroid Build Coastguard Worker    // Indicates the user provided an incorrect password.
444*d5c09012SAndroid Build Coastguard Worker    INCORRECT_PASSWORD = 6;
445*d5c09012SAndroid Build Coastguard Worker
446*d5c09012SAndroid Build Coastguard Worker    // Indicates that the user sent unwanted and abusive messages to other users
447*d5c09012SAndroid Build Coastguard Worker    // of the platform, such as spam, scams, phishing, or social engineering.
448*d5c09012SAndroid Build Coastguard Worker    SOCIAL_SPAM = 14;
449*d5c09012SAndroid Build Coastguard Worker  }
450*d5c09012SAndroid Build Coastguard Worker
451*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the Assessment, in the format
452*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/assessments/{assessment}`.
453*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
454*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
455*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
456*d5c09012SAndroid Build Coastguard Worker      type: "recaptchaenterprise.googleapis.com/Assessment"
457*d5c09012SAndroid Build Coastguard Worker    }
458*d5c09012SAndroid Build Coastguard Worker  ];
459*d5c09012SAndroid Build Coastguard Worker
460*d5c09012SAndroid Build Coastguard Worker  // Optional. The annotation that will be assigned to the Event. This field can
461*d5c09012SAndroid Build Coastguard Worker  // be left empty to provide reasons that apply to an event without concluding
462*d5c09012SAndroid Build Coastguard Worker  // whether the event is legitimate or fraudulent.
463*d5c09012SAndroid Build Coastguard Worker  Annotation annotation = 2 [(google.api.field_behavior) = OPTIONAL];
464*d5c09012SAndroid Build Coastguard Worker
465*d5c09012SAndroid Build Coastguard Worker  // Optional. Reasons for the annotation that are assigned to the event.
466*d5c09012SAndroid Build Coastguard Worker  repeated Reason reasons = 3 [(google.api.field_behavior) = OPTIONAL];
467*d5c09012SAndroid Build Coastguard Worker
468*d5c09012SAndroid Build Coastguard Worker  // Optional. A stable account identifier to apply to the assessment. This is
469*d5c09012SAndroid Build Coastguard Worker  // an alternative to setting `account_id` in `CreateAssessment`, for example
470*d5c09012SAndroid Build Coastguard Worker  // when a stable account identifier is not yet known in the initial request.
471*d5c09012SAndroid Build Coastguard Worker  string account_id = 7 [(google.api.field_behavior) = OPTIONAL];
472*d5c09012SAndroid Build Coastguard Worker
473*d5c09012SAndroid Build Coastguard Worker  // Optional. A stable hashed account identifier to apply to the assessment.
474*d5c09012SAndroid Build Coastguard Worker  // This is an alternative to setting `hashed_account_id` in
475*d5c09012SAndroid Build Coastguard Worker  // `CreateAssessment`, for example when a stable account identifier is not yet
476*d5c09012SAndroid Build Coastguard Worker  // known in the initial request.
477*d5c09012SAndroid Build Coastguard Worker  bytes hashed_account_id = 4 [(google.api.field_behavior) = OPTIONAL];
478*d5c09012SAndroid Build Coastguard Worker
479*d5c09012SAndroid Build Coastguard Worker  // Optional. If the assessment is part of a payment transaction, provide
480*d5c09012SAndroid Build Coastguard Worker  // details on payment lifecycle events that occur in the transaction.
481*d5c09012SAndroid Build Coastguard Worker  TransactionEvent transaction_event = 5
482*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
483*d5c09012SAndroid Build Coastguard Worker}
484*d5c09012SAndroid Build Coastguard Worker
485*d5c09012SAndroid Build Coastguard Worker// Empty response for AnnotateAssessment.
486*d5c09012SAndroid Build Coastguard Workermessage AnnotateAssessmentResponse {}
487*d5c09012SAndroid Build Coastguard Worker
488*d5c09012SAndroid Build Coastguard Worker// Information about a verification endpoint that can be used for 2FA.
489*d5c09012SAndroid Build Coastguard Workermessage EndpointVerificationInfo {
490*d5c09012SAndroid Build Coastguard Worker  oneof endpoint {
491*d5c09012SAndroid Build Coastguard Worker    // Email address for which to trigger a verification request.
492*d5c09012SAndroid Build Coastguard Worker    string email_address = 1;
493*d5c09012SAndroid Build Coastguard Worker
494*d5c09012SAndroid Build Coastguard Worker    // Phone number for which to trigger a verification request. Should be given
495*d5c09012SAndroid Build Coastguard Worker    // in E.164 format.
496*d5c09012SAndroid Build Coastguard Worker    string phone_number = 2;
497*d5c09012SAndroid Build Coastguard Worker  }
498*d5c09012SAndroid Build Coastguard Worker
499*d5c09012SAndroid Build Coastguard Worker  // Output only. Token to provide to the client to trigger endpoint
500*d5c09012SAndroid Build Coastguard Worker  // verification. It must be used within 15 minutes.
501*d5c09012SAndroid Build Coastguard Worker  string request_token = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
502*d5c09012SAndroid Build Coastguard Worker
503*d5c09012SAndroid Build Coastguard Worker  // Output only. Timestamp of the last successful verification for the
504*d5c09012SAndroid Build Coastguard Worker  // endpoint, if any.
505*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp last_verification_time = 4
506*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
507*d5c09012SAndroid Build Coastguard Worker}
508*d5c09012SAndroid Build Coastguard Worker
509*d5c09012SAndroid Build Coastguard Worker// Information about account verification, used for identity verification.
510*d5c09012SAndroid Build Coastguard Workermessage AccountVerificationInfo {
511*d5c09012SAndroid Build Coastguard Worker  // Result of the account verification as contained in the verdict token issued
512*d5c09012SAndroid Build Coastguard Worker  // at the end of the verification flow.
513*d5c09012SAndroid Build Coastguard Worker  enum Result {
514*d5c09012SAndroid Build Coastguard Worker    // No information about the latest account verification.
515*d5c09012SAndroid Build Coastguard Worker    RESULT_UNSPECIFIED = 0;
516*d5c09012SAndroid Build Coastguard Worker
517*d5c09012SAndroid Build Coastguard Worker    // The user was successfully verified. This means the account verification
518*d5c09012SAndroid Build Coastguard Worker    // challenge was successfully completed.
519*d5c09012SAndroid Build Coastguard Worker    SUCCESS_USER_VERIFIED = 1;
520*d5c09012SAndroid Build Coastguard Worker
521*d5c09012SAndroid Build Coastguard Worker    // The user failed the verification challenge.
522*d5c09012SAndroid Build Coastguard Worker    ERROR_USER_NOT_VERIFIED = 2;
523*d5c09012SAndroid Build Coastguard Worker
524*d5c09012SAndroid Build Coastguard Worker    // The site is not properly onboarded to use the account verification
525*d5c09012SAndroid Build Coastguard Worker    // feature.
526*d5c09012SAndroid Build Coastguard Worker    ERROR_SITE_ONBOARDING_INCOMPLETE = 3;
527*d5c09012SAndroid Build Coastguard Worker
528*d5c09012SAndroid Build Coastguard Worker    // The recipient is not allowed for account verification. This can occur
529*d5c09012SAndroid Build Coastguard Worker    // during integration but should not occur in production.
530*d5c09012SAndroid Build Coastguard Worker    ERROR_RECIPIENT_NOT_ALLOWED = 4;
531*d5c09012SAndroid Build Coastguard Worker
532*d5c09012SAndroid Build Coastguard Worker    // The recipient has already been sent too many verification codes in a
533*d5c09012SAndroid Build Coastguard Worker    // short amount of time.
534*d5c09012SAndroid Build Coastguard Worker    ERROR_RECIPIENT_ABUSE_LIMIT_EXHAUSTED = 5;
535*d5c09012SAndroid Build Coastguard Worker
536*d5c09012SAndroid Build Coastguard Worker    // The verification flow could not be completed due to a critical internal
537*d5c09012SAndroid Build Coastguard Worker    // error.
538*d5c09012SAndroid Build Coastguard Worker    ERROR_CRITICAL_INTERNAL = 6;
539*d5c09012SAndroid Build Coastguard Worker
540*d5c09012SAndroid Build Coastguard Worker    // The client has exceeded their two factor request quota for this period of
541*d5c09012SAndroid Build Coastguard Worker    // time.
542*d5c09012SAndroid Build Coastguard Worker    ERROR_CUSTOMER_QUOTA_EXHAUSTED = 7;
543*d5c09012SAndroid Build Coastguard Worker
544*d5c09012SAndroid Build Coastguard Worker    // The request cannot be processed at the time because of an incident. This
545*d5c09012SAndroid Build Coastguard Worker    // bypass can be restricted to a problematic destination email domain, a
546*d5c09012SAndroid Build Coastguard Worker    // customer, or could affect the entire service.
547*d5c09012SAndroid Build Coastguard Worker    ERROR_VERIFICATION_BYPASSED = 8;
548*d5c09012SAndroid Build Coastguard Worker
549*d5c09012SAndroid Build Coastguard Worker    // The request parameters do not match with the token provided and cannot be
550*d5c09012SAndroid Build Coastguard Worker    // processed.
551*d5c09012SAndroid Build Coastguard Worker    ERROR_VERDICT_MISMATCH = 9;
552*d5c09012SAndroid Build Coastguard Worker  }
553*d5c09012SAndroid Build Coastguard Worker
554*d5c09012SAndroid Build Coastguard Worker  // Optional. Endpoints that can be used for identity verification.
555*d5c09012SAndroid Build Coastguard Worker  repeated EndpointVerificationInfo endpoints = 1
556*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
557*d5c09012SAndroid Build Coastguard Worker
558*d5c09012SAndroid Build Coastguard Worker  // Optional. Language code preference for the verification message, set as a
559*d5c09012SAndroid Build Coastguard Worker  // IETF BCP 47 language code.
560*d5c09012SAndroid Build Coastguard Worker  string language_code = 3 [(google.api.field_behavior) = OPTIONAL];
561*d5c09012SAndroid Build Coastguard Worker
562*d5c09012SAndroid Build Coastguard Worker  // Output only. Result of the latest account verification challenge.
563*d5c09012SAndroid Build Coastguard Worker  Result latest_verification_result = 7
564*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
565*d5c09012SAndroid Build Coastguard Worker
566*d5c09012SAndroid Build Coastguard Worker  // Username of the account that is being verified. Deprecated. Customers
567*d5c09012SAndroid Build Coastguard Worker  // should now provide the `account_id` field in `event.user_info`.
568*d5c09012SAndroid Build Coastguard Worker  string username = 2 [deprecated = true];
569*d5c09012SAndroid Build Coastguard Worker}
570*d5c09012SAndroid Build Coastguard Worker
571*d5c09012SAndroid Build Coastguard Worker// Private password leak verification info.
572*d5c09012SAndroid Build Coastguard Workermessage PrivatePasswordLeakVerification {
573*d5c09012SAndroid Build Coastguard Worker  // Required. Exactly 26-bit prefix of the SHA-256 hash of the canonicalized
574*d5c09012SAndroid Build Coastguard Worker  // username. It is used to look up password leaks associated with that hash
575*d5c09012SAndroid Build Coastguard Worker  // prefix.
576*d5c09012SAndroid Build Coastguard Worker  bytes lookup_hash_prefix = 1 [(google.api.field_behavior) = REQUIRED];
577*d5c09012SAndroid Build Coastguard Worker
578*d5c09012SAndroid Build Coastguard Worker  // Optional. Encrypted Scrypt hash of the canonicalized username+password. It
579*d5c09012SAndroid Build Coastguard Worker  // is re-encrypted by the server and returned through
580*d5c09012SAndroid Build Coastguard Worker  // `reencrypted_user_credentials_hash`.
581*d5c09012SAndroid Build Coastguard Worker  bytes encrypted_user_credentials_hash = 2
582*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
583*d5c09012SAndroid Build Coastguard Worker
584*d5c09012SAndroid Build Coastguard Worker  // Output only. List of prefixes of the encrypted potential password leaks
585*d5c09012SAndroid Build Coastguard Worker  // that matched the given parameters. They must be compared with the
586*d5c09012SAndroid Build Coastguard Worker  // client-side decryption prefix of `reencrypted_user_credentials_hash`
587*d5c09012SAndroid Build Coastguard Worker  repeated bytes encrypted_leak_match_prefixes = 3
588*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
589*d5c09012SAndroid Build Coastguard Worker
590*d5c09012SAndroid Build Coastguard Worker  // Output only. Corresponds to the re-encryption of the
591*d5c09012SAndroid Build Coastguard Worker  // `encrypted_user_credentials_hash` field. It is used to match potential
592*d5c09012SAndroid Build Coastguard Worker  // password leaks within `encrypted_leak_match_prefixes`.
593*d5c09012SAndroid Build Coastguard Worker  bytes reencrypted_user_credentials_hash = 4
594*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
595*d5c09012SAndroid Build Coastguard Worker}
596*d5c09012SAndroid Build Coastguard Worker
597*d5c09012SAndroid Build Coastguard Worker// A reCAPTCHA Enterprise assessment resource.
598*d5c09012SAndroid Build Coastguard Workermessage Assessment {
599*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
600*d5c09012SAndroid Build Coastguard Worker    type: "recaptchaenterprise.googleapis.com/Assessment"
601*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/assessments/{assessment}"
602*d5c09012SAndroid Build Coastguard Worker    plural: "assessments"
603*d5c09012SAndroid Build Coastguard Worker    singular: "assessment"
604*d5c09012SAndroid Build Coastguard Worker  };
605*d5c09012SAndroid Build Coastguard Worker
606*d5c09012SAndroid Build Coastguard Worker  // Output only. Identifier. The resource name for the Assessment in the format
607*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/assessments/{assessment}`.
608*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
609*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = OUTPUT_ONLY,
610*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = IDENTIFIER
611*d5c09012SAndroid Build Coastguard Worker  ];
612*d5c09012SAndroid Build Coastguard Worker
613*d5c09012SAndroid Build Coastguard Worker  // Optional. The event being assessed.
614*d5c09012SAndroid Build Coastguard Worker  Event event = 2 [(google.api.field_behavior) = OPTIONAL];
615*d5c09012SAndroid Build Coastguard Worker
616*d5c09012SAndroid Build Coastguard Worker  // Output only. The risk analysis result for the event being assessed.
617*d5c09012SAndroid Build Coastguard Worker  RiskAnalysis risk_analysis = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
618*d5c09012SAndroid Build Coastguard Worker
619*d5c09012SAndroid Build Coastguard Worker  // Output only. Properties of the provided event token.
620*d5c09012SAndroid Build Coastguard Worker  TokenProperties token_properties = 4
621*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
622*d5c09012SAndroid Build Coastguard Worker
623*d5c09012SAndroid Build Coastguard Worker  // Optional. Account verification information for identity verification. The
624*d5c09012SAndroid Build Coastguard Worker  // assessment event must include a token and site key to use this feature.
625*d5c09012SAndroid Build Coastguard Worker  AccountVerificationInfo account_verification = 5
626*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
627*d5c09012SAndroid Build Coastguard Worker
628*d5c09012SAndroid Build Coastguard Worker  // Output only. Assessment returned by account defender when an account
629*d5c09012SAndroid Build Coastguard Worker  // identifier is provided.
630*d5c09012SAndroid Build Coastguard Worker  AccountDefenderAssessment account_defender_assessment = 6
631*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
632*d5c09012SAndroid Build Coastguard Worker
633*d5c09012SAndroid Build Coastguard Worker  // Optional. The private password leak verification field contains the
634*d5c09012SAndroid Build Coastguard Worker  // parameters that are used to to check for leaks privately without sharing
635*d5c09012SAndroid Build Coastguard Worker  // user credentials.
636*d5c09012SAndroid Build Coastguard Worker  PrivatePasswordLeakVerification private_password_leak_verification = 8
637*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
638*d5c09012SAndroid Build Coastguard Worker
639*d5c09012SAndroid Build Coastguard Worker  // Output only. Assessment returned when firewall policies belonging to the
640*d5c09012SAndroid Build Coastguard Worker  // project are evaluated using the field firewall_policy_evaluation.
641*d5c09012SAndroid Build Coastguard Worker  FirewallPolicyAssessment firewall_policy_assessment = 10
642*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
643*d5c09012SAndroid Build Coastguard Worker
644*d5c09012SAndroid Build Coastguard Worker  // Output only. Assessment returned by Fraud Prevention when TransactionData
645*d5c09012SAndroid Build Coastguard Worker  // is provided.
646*d5c09012SAndroid Build Coastguard Worker  FraudPreventionAssessment fraud_prevention_assessment = 11
647*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
648*d5c09012SAndroid Build Coastguard Worker
649*d5c09012SAndroid Build Coastguard Worker  // Output only. Fraud Signals specific to the users involved in a payment
650*d5c09012SAndroid Build Coastguard Worker  // transaction.
651*d5c09012SAndroid Build Coastguard Worker  FraudSignals fraud_signals = 13 [(google.api.field_behavior) = OUTPUT_ONLY];
652*d5c09012SAndroid Build Coastguard Worker}
653*d5c09012SAndroid Build Coastguard Worker
654*d5c09012SAndroid Build Coastguard Worker// The event being assessed.
655*d5c09012SAndroid Build Coastguard Workermessage Event {
656*d5c09012SAndroid Build Coastguard Worker  // Setting that controls Fraud Prevention assessments.
657*d5c09012SAndroid Build Coastguard Worker  enum FraudPrevention {
658*d5c09012SAndroid Build Coastguard Worker    // Default, unspecified setting. If opted in for automatic detection,
659*d5c09012SAndroid Build Coastguard Worker    // `fraud_prevention_assessment` is returned based on the request.
660*d5c09012SAndroid Build Coastguard Worker    // Otherwise, `fraud_prevention_assessment` is returned if
661*d5c09012SAndroid Build Coastguard Worker    // `transaction_data` is present in the `Event` and Fraud Prevention is
662*d5c09012SAndroid Build Coastguard Worker    // enabled in the Google Cloud console.
663*d5c09012SAndroid Build Coastguard Worker    FRAUD_PREVENTION_UNSPECIFIED = 0;
664*d5c09012SAndroid Build Coastguard Worker
665*d5c09012SAndroid Build Coastguard Worker    // Enable Fraud Prevention for this assessment, if Fraud Prevention is
666*d5c09012SAndroid Build Coastguard Worker    // enabled in the Google Cloud console.
667*d5c09012SAndroid Build Coastguard Worker    ENABLED = 1;
668*d5c09012SAndroid Build Coastguard Worker
669*d5c09012SAndroid Build Coastguard Worker    // Disable Fraud Prevention for this assessment, regardless of opt-in
670*d5c09012SAndroid Build Coastguard Worker    // status or Google Cloud console settings.
671*d5c09012SAndroid Build Coastguard Worker    DISABLED = 2;
672*d5c09012SAndroid Build Coastguard Worker  }
673*d5c09012SAndroid Build Coastguard Worker
674*d5c09012SAndroid Build Coastguard Worker  // Optional. The user response token provided by the reCAPTCHA Enterprise
675*d5c09012SAndroid Build Coastguard Worker  // client-side integration on your site.
676*d5c09012SAndroid Build Coastguard Worker  string token = 1 [(google.api.field_behavior) = OPTIONAL];
677*d5c09012SAndroid Build Coastguard Worker
678*d5c09012SAndroid Build Coastguard Worker  // Optional. The site key that was used to invoke reCAPTCHA Enterprise on your
679*d5c09012SAndroid Build Coastguard Worker  // site and generate the token.
680*d5c09012SAndroid Build Coastguard Worker  string site_key = 2 [(google.api.field_behavior) = OPTIONAL];
681*d5c09012SAndroid Build Coastguard Worker
682*d5c09012SAndroid Build Coastguard Worker  // Optional. The user agent present in the request from the user's device
683*d5c09012SAndroid Build Coastguard Worker  // related to this event.
684*d5c09012SAndroid Build Coastguard Worker  string user_agent = 3 [(google.api.field_behavior) = OPTIONAL];
685*d5c09012SAndroid Build Coastguard Worker
686*d5c09012SAndroid Build Coastguard Worker  // Optional. The IP address in the request from the user's device related to
687*d5c09012SAndroid Build Coastguard Worker  // this event.
688*d5c09012SAndroid Build Coastguard Worker  string user_ip_address = 4 [
689*d5c09012SAndroid Build Coastguard Worker    (google.api.field_info).format = IPV4_OR_IPV6,
690*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = OPTIONAL
691*d5c09012SAndroid Build Coastguard Worker  ];
692*d5c09012SAndroid Build Coastguard Worker
693*d5c09012SAndroid Build Coastguard Worker  // Optional. The expected action for this type of event. This should be the
694*d5c09012SAndroid Build Coastguard Worker  // same action provided at token generation time on client-side platforms
695*d5c09012SAndroid Build Coastguard Worker  // already integrated with recaptcha enterprise.
696*d5c09012SAndroid Build Coastguard Worker  string expected_action = 5 [(google.api.field_behavior) = OPTIONAL];
697*d5c09012SAndroid Build Coastguard Worker
698*d5c09012SAndroid Build Coastguard Worker  // Optional. Deprecated: use `user_info.account_id` instead.
699*d5c09012SAndroid Build Coastguard Worker  // Unique stable hashed user identifier for the request. The identifier must
700*d5c09012SAndroid Build Coastguard Worker  // be hashed using hmac-sha256 with stable secret.
701*d5c09012SAndroid Build Coastguard Worker  bytes hashed_account_id = 6
702*d5c09012SAndroid Build Coastguard Worker      [deprecated = true, (google.api.field_behavior) = OPTIONAL];
703*d5c09012SAndroid Build Coastguard Worker
704*d5c09012SAndroid Build Coastguard Worker  // Optional. Flag for a reCAPTCHA express request for an assessment without a
705*d5c09012SAndroid Build Coastguard Worker  // token. If enabled, `site_key` must reference a SCORE key with WAF feature
706*d5c09012SAndroid Build Coastguard Worker  // set to EXPRESS.
707*d5c09012SAndroid Build Coastguard Worker  bool express = 14 [(google.api.field_behavior) = OPTIONAL];
708*d5c09012SAndroid Build Coastguard Worker
709*d5c09012SAndroid Build Coastguard Worker  // Optional. The URI resource the user requested that triggered an assessment.
710*d5c09012SAndroid Build Coastguard Worker  string requested_uri = 8 [(google.api.field_behavior) = OPTIONAL];
711*d5c09012SAndroid Build Coastguard Worker
712*d5c09012SAndroid Build Coastguard Worker  // Optional. Flag for running WAF token assessment.
713*d5c09012SAndroid Build Coastguard Worker  // If enabled, the token must be specified, and have been created by a
714*d5c09012SAndroid Build Coastguard Worker  // WAF-enabled key.
715*d5c09012SAndroid Build Coastguard Worker  bool waf_token_assessment = 9 [(google.api.field_behavior) = OPTIONAL];
716*d5c09012SAndroid Build Coastguard Worker
717*d5c09012SAndroid Build Coastguard Worker  // Optional. JA3 fingerprint for SSL clients.
718*d5c09012SAndroid Build Coastguard Worker  string ja3 = 10 [(google.api.field_behavior) = OPTIONAL];
719*d5c09012SAndroid Build Coastguard Worker
720*d5c09012SAndroid Build Coastguard Worker  // Optional. HTTP header information about the request.
721*d5c09012SAndroid Build Coastguard Worker  repeated string headers = 11 [(google.api.field_behavior) = OPTIONAL];
722*d5c09012SAndroid Build Coastguard Worker
723*d5c09012SAndroid Build Coastguard Worker  // Optional. Flag for enabling firewall policy config assessment.
724*d5c09012SAndroid Build Coastguard Worker  // If this flag is enabled, the firewall policy will be evaluated and a
725*d5c09012SAndroid Build Coastguard Worker  // suggested firewall action will be returned in the response.
726*d5c09012SAndroid Build Coastguard Worker  bool firewall_policy_evaluation = 12 [(google.api.field_behavior) = OPTIONAL];
727*d5c09012SAndroid Build Coastguard Worker
728*d5c09012SAndroid Build Coastguard Worker  // Optional. Data describing a payment transaction to be assessed. Sending
729*d5c09012SAndroid Build Coastguard Worker  // this data enables reCAPTCHA Enterprise Fraud Prevention and the
730*d5c09012SAndroid Build Coastguard Worker  // FraudPreventionAssessment component in the response.
731*d5c09012SAndroid Build Coastguard Worker  TransactionData transaction_data = 13
732*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
733*d5c09012SAndroid Build Coastguard Worker
734*d5c09012SAndroid Build Coastguard Worker  // Optional. Information about the user that generates this event, when they
735*d5c09012SAndroid Build Coastguard Worker  // can be identified. They are often identified through the use of an account
736*d5c09012SAndroid Build Coastguard Worker  // for logged-in requests or login/registration requests, or by providing user
737*d5c09012SAndroid Build Coastguard Worker  // identifiers for guest actions like checkout.
738*d5c09012SAndroid Build Coastguard Worker  UserInfo user_info = 15 [(google.api.field_behavior) = OPTIONAL];
739*d5c09012SAndroid Build Coastguard Worker
740*d5c09012SAndroid Build Coastguard Worker  // Optional. The Fraud Prevention setting for this assessment.
741*d5c09012SAndroid Build Coastguard Worker  FraudPrevention fraud_prevention = 17
742*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
743*d5c09012SAndroid Build Coastguard Worker}
744*d5c09012SAndroid Build Coastguard Worker
745*d5c09012SAndroid Build Coastguard Worker// Transaction data associated with a payment protected by reCAPTCHA Enterprise.
746*d5c09012SAndroid Build Coastguard Workermessage TransactionData {
747*d5c09012SAndroid Build Coastguard Worker  // Structured address format for billing and shipping addresses.
748*d5c09012SAndroid Build Coastguard Worker  message Address {
749*d5c09012SAndroid Build Coastguard Worker    // Optional. The recipient name, potentially including information such as
750*d5c09012SAndroid Build Coastguard Worker    // "care of".
751*d5c09012SAndroid Build Coastguard Worker    string recipient = 1 [(google.api.field_behavior) = OPTIONAL];
752*d5c09012SAndroid Build Coastguard Worker
753*d5c09012SAndroid Build Coastguard Worker    // Optional. The first lines of the address. The first line generally
754*d5c09012SAndroid Build Coastguard Worker    // contains the street name and number, and further lines may include
755*d5c09012SAndroid Build Coastguard Worker    // information such as an apartment number.
756*d5c09012SAndroid Build Coastguard Worker    repeated string address = 2 [(google.api.field_behavior) = OPTIONAL];
757*d5c09012SAndroid Build Coastguard Worker
758*d5c09012SAndroid Build Coastguard Worker    // Optional. The town/city of the address.
759*d5c09012SAndroid Build Coastguard Worker    string locality = 3 [(google.api.field_behavior) = OPTIONAL];
760*d5c09012SAndroid Build Coastguard Worker
761*d5c09012SAndroid Build Coastguard Worker    // Optional. The state, province, or otherwise administrative area of the
762*d5c09012SAndroid Build Coastguard Worker    // address.
763*d5c09012SAndroid Build Coastguard Worker    string administrative_area = 4 [(google.api.field_behavior) = OPTIONAL];
764*d5c09012SAndroid Build Coastguard Worker
765*d5c09012SAndroid Build Coastguard Worker    // Optional. The CLDR country/region of the address.
766*d5c09012SAndroid Build Coastguard Worker    string region_code = 5 [(google.api.field_behavior) = OPTIONAL];
767*d5c09012SAndroid Build Coastguard Worker
768*d5c09012SAndroid Build Coastguard Worker    // Optional. The postal or ZIP code of the address.
769*d5c09012SAndroid Build Coastguard Worker    string postal_code = 6 [(google.api.field_behavior) = OPTIONAL];
770*d5c09012SAndroid Build Coastguard Worker  }
771*d5c09012SAndroid Build Coastguard Worker
772*d5c09012SAndroid Build Coastguard Worker  // Details about a user's account involved in the transaction.
773*d5c09012SAndroid Build Coastguard Worker  message User {
774*d5c09012SAndroid Build Coastguard Worker    // Optional. Unique account identifier for this user. If using account
775*d5c09012SAndroid Build Coastguard Worker    // defender, this should match the hashed_account_id field. Otherwise, a
776*d5c09012SAndroid Build Coastguard Worker    // unique and persistent identifier for this account.
777*d5c09012SAndroid Build Coastguard Worker    string account_id = 6 [(google.api.field_behavior) = OPTIONAL];
778*d5c09012SAndroid Build Coastguard Worker
779*d5c09012SAndroid Build Coastguard Worker    // Optional. The epoch milliseconds of the user's account creation.
780*d5c09012SAndroid Build Coastguard Worker    int64 creation_ms = 1 [(google.api.field_behavior) = OPTIONAL];
781*d5c09012SAndroid Build Coastguard Worker
782*d5c09012SAndroid Build Coastguard Worker    // Optional. The email address of the user.
783*d5c09012SAndroid Build Coastguard Worker    string email = 2 [(google.api.field_behavior) = OPTIONAL];
784*d5c09012SAndroid Build Coastguard Worker
785*d5c09012SAndroid Build Coastguard Worker    // Optional. Whether the email has been verified to be accessible by the
786*d5c09012SAndroid Build Coastguard Worker    // user (OTP or similar).
787*d5c09012SAndroid Build Coastguard Worker    bool email_verified = 3 [(google.api.field_behavior) = OPTIONAL];
788*d5c09012SAndroid Build Coastguard Worker
789*d5c09012SAndroid Build Coastguard Worker    // Optional. The phone number of the user, with country code.
790*d5c09012SAndroid Build Coastguard Worker    string phone_number = 4 [(google.api.field_behavior) = OPTIONAL];
791*d5c09012SAndroid Build Coastguard Worker
792*d5c09012SAndroid Build Coastguard Worker    // Optional. Whether the phone number has been verified to be accessible by
793*d5c09012SAndroid Build Coastguard Worker    // the user (OTP or similar).
794*d5c09012SAndroid Build Coastguard Worker    bool phone_verified = 5 [(google.api.field_behavior) = OPTIONAL];
795*d5c09012SAndroid Build Coastguard Worker  }
796*d5c09012SAndroid Build Coastguard Worker
797*d5c09012SAndroid Build Coastguard Worker  // Line items being purchased in this transaction.
798*d5c09012SAndroid Build Coastguard Worker  message Item {
799*d5c09012SAndroid Build Coastguard Worker    // Optional. The full name of the item.
800*d5c09012SAndroid Build Coastguard Worker    string name = 1 [(google.api.field_behavior) = OPTIONAL];
801*d5c09012SAndroid Build Coastguard Worker
802*d5c09012SAndroid Build Coastguard Worker    // Optional. The value per item that the user is paying, in the transaction
803*d5c09012SAndroid Build Coastguard Worker    // currency, after discounts.
804*d5c09012SAndroid Build Coastguard Worker    double value = 2 [(google.api.field_behavior) = OPTIONAL];
805*d5c09012SAndroid Build Coastguard Worker
806*d5c09012SAndroid Build Coastguard Worker    // Optional. The quantity of this item that is being purchased.
807*d5c09012SAndroid Build Coastguard Worker    int64 quantity = 3 [(google.api.field_behavior) = OPTIONAL];
808*d5c09012SAndroid Build Coastguard Worker
809*d5c09012SAndroid Build Coastguard Worker    // Optional. When a merchant is specified, its corresponding account_id.
810*d5c09012SAndroid Build Coastguard Worker    // Necessary to populate marketplace-style transactions.
811*d5c09012SAndroid Build Coastguard Worker    string merchant_account_id = 4 [(google.api.field_behavior) = OPTIONAL];
812*d5c09012SAndroid Build Coastguard Worker  }
813*d5c09012SAndroid Build Coastguard Worker
814*d5c09012SAndroid Build Coastguard Worker  // Details about the transaction from the gateway.
815*d5c09012SAndroid Build Coastguard Worker  message GatewayInfo {
816*d5c09012SAndroid Build Coastguard Worker    // Optional. Name of the gateway service (for example, stripe, square,
817*d5c09012SAndroid Build Coastguard Worker    // paypal).
818*d5c09012SAndroid Build Coastguard Worker    string name = 1 [(google.api.field_behavior) = OPTIONAL];
819*d5c09012SAndroid Build Coastguard Worker
820*d5c09012SAndroid Build Coastguard Worker    // Optional. Gateway response code describing the state of the transaction.
821*d5c09012SAndroid Build Coastguard Worker    string gateway_response_code = 2 [(google.api.field_behavior) = OPTIONAL];
822*d5c09012SAndroid Build Coastguard Worker
823*d5c09012SAndroid Build Coastguard Worker    // Optional. AVS response code from the gateway
824*d5c09012SAndroid Build Coastguard Worker    // (available only when reCAPTCHA Enterprise is called after authorization).
825*d5c09012SAndroid Build Coastguard Worker    string avs_response_code = 3 [(google.api.field_behavior) = OPTIONAL];
826*d5c09012SAndroid Build Coastguard Worker
827*d5c09012SAndroid Build Coastguard Worker    // Optional. CVV response code from the gateway
828*d5c09012SAndroid Build Coastguard Worker    // (available only when reCAPTCHA Enterprise is called after authorization).
829*d5c09012SAndroid Build Coastguard Worker    string cvv_response_code = 4 [(google.api.field_behavior) = OPTIONAL];
830*d5c09012SAndroid Build Coastguard Worker  }
831*d5c09012SAndroid Build Coastguard Worker
832*d5c09012SAndroid Build Coastguard Worker  // Unique identifier for the transaction. This custom identifier can be used
833*d5c09012SAndroid Build Coastguard Worker  // to reference this transaction in the future, for example, labeling a refund
834*d5c09012SAndroid Build Coastguard Worker  // or chargeback event. Two attempts at the same transaction should use the
835*d5c09012SAndroid Build Coastguard Worker  // same transaction id.
836*d5c09012SAndroid Build Coastguard Worker  optional string transaction_id = 11;
837*d5c09012SAndroid Build Coastguard Worker
838*d5c09012SAndroid Build Coastguard Worker  // Optional. The payment method for the transaction. The allowed values are:
839*d5c09012SAndroid Build Coastguard Worker  //
840*d5c09012SAndroid Build Coastguard Worker  // * credit-card
841*d5c09012SAndroid Build Coastguard Worker  // * debit-card
842*d5c09012SAndroid Build Coastguard Worker  // * gift-card
843*d5c09012SAndroid Build Coastguard Worker  // * processor-{name} (If a third-party is used, for example,
844*d5c09012SAndroid Build Coastguard Worker  // processor-paypal)
845*d5c09012SAndroid Build Coastguard Worker  // * custom-{name} (If an alternative method is used, for example,
846*d5c09012SAndroid Build Coastguard Worker  // custom-crypto)
847*d5c09012SAndroid Build Coastguard Worker  string payment_method = 1 [(google.api.field_behavior) = OPTIONAL];
848*d5c09012SAndroid Build Coastguard Worker
849*d5c09012SAndroid Build Coastguard Worker  // Optional. The Bank Identification Number - generally the first 6 or 8
850*d5c09012SAndroid Build Coastguard Worker  // digits of the card.
851*d5c09012SAndroid Build Coastguard Worker  string card_bin = 2 [(google.api.field_behavior) = OPTIONAL];
852*d5c09012SAndroid Build Coastguard Worker
853*d5c09012SAndroid Build Coastguard Worker  // Optional. The last four digits of the card.
854*d5c09012SAndroid Build Coastguard Worker  string card_last_four = 3 [(google.api.field_behavior) = OPTIONAL];
855*d5c09012SAndroid Build Coastguard Worker
856*d5c09012SAndroid Build Coastguard Worker  // Optional. The currency code in ISO-4217 format.
857*d5c09012SAndroid Build Coastguard Worker  string currency_code = 4 [(google.api.field_behavior) = OPTIONAL];
858*d5c09012SAndroid Build Coastguard Worker
859*d5c09012SAndroid Build Coastguard Worker  // Optional. The decimal value of the transaction in the specified currency.
860*d5c09012SAndroid Build Coastguard Worker  double value = 5 [(google.api.field_behavior) = OPTIONAL];
861*d5c09012SAndroid Build Coastguard Worker
862*d5c09012SAndroid Build Coastguard Worker  // Optional. The value of shipping in the specified currency. 0 for free or no
863*d5c09012SAndroid Build Coastguard Worker  // shipping.
864*d5c09012SAndroid Build Coastguard Worker  double shipping_value = 12 [(google.api.field_behavior) = OPTIONAL];
865*d5c09012SAndroid Build Coastguard Worker
866*d5c09012SAndroid Build Coastguard Worker  // Optional. Destination address if this transaction involves shipping a
867*d5c09012SAndroid Build Coastguard Worker  // physical item.
868*d5c09012SAndroid Build Coastguard Worker  Address shipping_address = 6 [(google.api.field_behavior) = OPTIONAL];
869*d5c09012SAndroid Build Coastguard Worker
870*d5c09012SAndroid Build Coastguard Worker  // Optional. Address associated with the payment method when applicable.
871*d5c09012SAndroid Build Coastguard Worker  Address billing_address = 7 [(google.api.field_behavior) = OPTIONAL];
872*d5c09012SAndroid Build Coastguard Worker
873*d5c09012SAndroid Build Coastguard Worker  // Optional. Information about the user paying/initiating the transaction.
874*d5c09012SAndroid Build Coastguard Worker  User user = 8 [(google.api.field_behavior) = OPTIONAL];
875*d5c09012SAndroid Build Coastguard Worker
876*d5c09012SAndroid Build Coastguard Worker  // Optional. Information about the user or users fulfilling the transaction.
877*d5c09012SAndroid Build Coastguard Worker  repeated User merchants = 13 [(google.api.field_behavior) = OPTIONAL];
878*d5c09012SAndroid Build Coastguard Worker
879*d5c09012SAndroid Build Coastguard Worker  // Optional. Items purchased in this transaction.
880*d5c09012SAndroid Build Coastguard Worker  repeated Item items = 14 [(google.api.field_behavior) = OPTIONAL];
881*d5c09012SAndroid Build Coastguard Worker
882*d5c09012SAndroid Build Coastguard Worker  // Optional. Information about the payment gateway's response to the
883*d5c09012SAndroid Build Coastguard Worker  // transaction.
884*d5c09012SAndroid Build Coastguard Worker  GatewayInfo gateway_info = 10 [(google.api.field_behavior) = OPTIONAL];
885*d5c09012SAndroid Build Coastguard Worker}
886*d5c09012SAndroid Build Coastguard Worker
887*d5c09012SAndroid Build Coastguard Worker// User information associated with a request protected by reCAPTCHA Enterprise.
888*d5c09012SAndroid Build Coastguard Workermessage UserInfo {
889*d5c09012SAndroid Build Coastguard Worker  // Optional. Creation time for this account associated with this user. Leave
890*d5c09012SAndroid Build Coastguard Worker  // blank for non logged-in actions, guest checkout, or when there is no
891*d5c09012SAndroid Build Coastguard Worker  // account associated with the current user.
892*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_account_time = 1
893*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
894*d5c09012SAndroid Build Coastguard Worker
895*d5c09012SAndroid Build Coastguard Worker  // Optional. For logged-in requests or login/registration requests, the unique
896*d5c09012SAndroid Build Coastguard Worker  // account identifier associated with this user. You can use the username if
897*d5c09012SAndroid Build Coastguard Worker  // it is stable (meaning it is the same for every request associated with the
898*d5c09012SAndroid Build Coastguard Worker  // same user), or any stable user ID of your choice. Leave blank for non
899*d5c09012SAndroid Build Coastguard Worker  // logged-in actions or guest checkout.
900*d5c09012SAndroid Build Coastguard Worker  string account_id = 2 [(google.api.field_behavior) = OPTIONAL];
901*d5c09012SAndroid Build Coastguard Worker
902*d5c09012SAndroid Build Coastguard Worker  // Optional. Identifiers associated with this user or request.
903*d5c09012SAndroid Build Coastguard Worker  repeated UserId user_ids = 3 [(google.api.field_behavior) = OPTIONAL];
904*d5c09012SAndroid Build Coastguard Worker}
905*d5c09012SAndroid Build Coastguard Worker
906*d5c09012SAndroid Build Coastguard Worker// An identifier associated with a user.
907*d5c09012SAndroid Build Coastguard Workermessage UserId {
908*d5c09012SAndroid Build Coastguard Worker  oneof id_oneof {
909*d5c09012SAndroid Build Coastguard Worker    // Optional. An email address.
910*d5c09012SAndroid Build Coastguard Worker    string email = 1 [(google.api.field_behavior) = OPTIONAL];
911*d5c09012SAndroid Build Coastguard Worker
912*d5c09012SAndroid Build Coastguard Worker    // Optional. A phone number. Should use the E.164 format.
913*d5c09012SAndroid Build Coastguard Worker    string phone_number = 2 [(google.api.field_behavior) = OPTIONAL];
914*d5c09012SAndroid Build Coastguard Worker
915*d5c09012SAndroid Build Coastguard Worker    // Optional. A unique username, if different from all the other identifiers
916*d5c09012SAndroid Build Coastguard Worker    // and `account_id` that are provided. Can be a unique login handle or
917*d5c09012SAndroid Build Coastguard Worker    // display name for a user.
918*d5c09012SAndroid Build Coastguard Worker    string username = 3 [(google.api.field_behavior) = OPTIONAL];
919*d5c09012SAndroid Build Coastguard Worker  }
920*d5c09012SAndroid Build Coastguard Worker}
921*d5c09012SAndroid Build Coastguard Worker
922*d5c09012SAndroid Build Coastguard Worker// Risk analysis result for an event.
923*d5c09012SAndroid Build Coastguard Workermessage RiskAnalysis {
924*d5c09012SAndroid Build Coastguard Worker  // Reasons contributing to the risk analysis verdict.
925*d5c09012SAndroid Build Coastguard Worker  enum ClassificationReason {
926*d5c09012SAndroid Build Coastguard Worker    // Default unspecified type.
927*d5c09012SAndroid Build Coastguard Worker    CLASSIFICATION_REASON_UNSPECIFIED = 0;
928*d5c09012SAndroid Build Coastguard Worker
929*d5c09012SAndroid Build Coastguard Worker    // Interactions matched the behavior of an automated agent.
930*d5c09012SAndroid Build Coastguard Worker    AUTOMATION = 1;
931*d5c09012SAndroid Build Coastguard Worker
932*d5c09012SAndroid Build Coastguard Worker    // The event originated from an illegitimate environment.
933*d5c09012SAndroid Build Coastguard Worker    UNEXPECTED_ENVIRONMENT = 2;
934*d5c09012SAndroid Build Coastguard Worker
935*d5c09012SAndroid Build Coastguard Worker    // Traffic volume from the event source is higher than normal.
936*d5c09012SAndroid Build Coastguard Worker    TOO_MUCH_TRAFFIC = 3;
937*d5c09012SAndroid Build Coastguard Worker
938*d5c09012SAndroid Build Coastguard Worker    // Interactions with the site were significantly different than expected
939*d5c09012SAndroid Build Coastguard Worker    // patterns.
940*d5c09012SAndroid Build Coastguard Worker    UNEXPECTED_USAGE_PATTERNS = 4;
941*d5c09012SAndroid Build Coastguard Worker
942*d5c09012SAndroid Build Coastguard Worker    // Too little traffic has been received from this site thus far to generate
943*d5c09012SAndroid Build Coastguard Worker    // quality risk analysis.
944*d5c09012SAndroid Build Coastguard Worker    LOW_CONFIDENCE_SCORE = 5;
945*d5c09012SAndroid Build Coastguard Worker
946*d5c09012SAndroid Build Coastguard Worker    // The request matches behavioral characteristics of a carding attack.
947*d5c09012SAndroid Build Coastguard Worker    SUSPECTED_CARDING = 6;
948*d5c09012SAndroid Build Coastguard Worker
949*d5c09012SAndroid Build Coastguard Worker    // The request matches behavioral characteristics of chargebacks for fraud.
950*d5c09012SAndroid Build Coastguard Worker    SUSPECTED_CHARGEBACK = 7;
951*d5c09012SAndroid Build Coastguard Worker  }
952*d5c09012SAndroid Build Coastguard Worker
953*d5c09012SAndroid Build Coastguard Worker  // Output only. Legitimate event score from 0.0 to 1.0.
954*d5c09012SAndroid Build Coastguard Worker  // (1.0 means very likely legitimate traffic while 0.0 means very likely
955*d5c09012SAndroid Build Coastguard Worker  // non-legitimate traffic).
956*d5c09012SAndroid Build Coastguard Worker  float score = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
957*d5c09012SAndroid Build Coastguard Worker
958*d5c09012SAndroid Build Coastguard Worker  // Output only. Reasons contributing to the risk analysis verdict.
959*d5c09012SAndroid Build Coastguard Worker  repeated ClassificationReason reasons = 2
960*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
961*d5c09012SAndroid Build Coastguard Worker
962*d5c09012SAndroid Build Coastguard Worker  // Output only. Extended verdict reasons to be used for experimentation only.
963*d5c09012SAndroid Build Coastguard Worker  // The set of possible reasons is subject to change.
964*d5c09012SAndroid Build Coastguard Worker  repeated string extended_verdict_reasons = 3
965*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
966*d5c09012SAndroid Build Coastguard Worker}
967*d5c09012SAndroid Build Coastguard Worker
968*d5c09012SAndroid Build Coastguard Worker// Properties of the provided event token.
969*d5c09012SAndroid Build Coastguard Workermessage TokenProperties {
970*d5c09012SAndroid Build Coastguard Worker  // Enum that represents the types of invalid token reasons.
971*d5c09012SAndroid Build Coastguard Worker  enum InvalidReason {
972*d5c09012SAndroid Build Coastguard Worker    // Default unspecified type.
973*d5c09012SAndroid Build Coastguard Worker    INVALID_REASON_UNSPECIFIED = 0;
974*d5c09012SAndroid Build Coastguard Worker
975*d5c09012SAndroid Build Coastguard Worker    // If the failure reason was not accounted for.
976*d5c09012SAndroid Build Coastguard Worker    UNKNOWN_INVALID_REASON = 1;
977*d5c09012SAndroid Build Coastguard Worker
978*d5c09012SAndroid Build Coastguard Worker    // The provided user verification token was malformed.
979*d5c09012SAndroid Build Coastguard Worker    MALFORMED = 2;
980*d5c09012SAndroid Build Coastguard Worker
981*d5c09012SAndroid Build Coastguard Worker    // The user verification token had expired.
982*d5c09012SAndroid Build Coastguard Worker    EXPIRED = 3;
983*d5c09012SAndroid Build Coastguard Worker
984*d5c09012SAndroid Build Coastguard Worker    // The user verification had already been seen.
985*d5c09012SAndroid Build Coastguard Worker    DUPE = 4;
986*d5c09012SAndroid Build Coastguard Worker
987*d5c09012SAndroid Build Coastguard Worker    // The user verification token was not present.
988*d5c09012SAndroid Build Coastguard Worker    MISSING = 5;
989*d5c09012SAndroid Build Coastguard Worker
990*d5c09012SAndroid Build Coastguard Worker    // A retriable error (such as network failure) occurred on the browser.
991*d5c09012SAndroid Build Coastguard Worker    // Could easily be simulated by an attacker.
992*d5c09012SAndroid Build Coastguard Worker    BROWSER_ERROR = 6;
993*d5c09012SAndroid Build Coastguard Worker  }
994*d5c09012SAndroid Build Coastguard Worker
995*d5c09012SAndroid Build Coastguard Worker  // Output only. Whether the provided user response token is valid. When valid
996*d5c09012SAndroid Build Coastguard Worker  // = false, the reason could be specified in invalid_reason or it could also
997*d5c09012SAndroid Build Coastguard Worker  // be due to a user failing to solve a challenge or a sitekey mismatch (i.e
998*d5c09012SAndroid Build Coastguard Worker  // the sitekey used to generate the token was different than the one specified
999*d5c09012SAndroid Build Coastguard Worker  // in the assessment).
1000*d5c09012SAndroid Build Coastguard Worker  bool valid = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
1001*d5c09012SAndroid Build Coastguard Worker
1002*d5c09012SAndroid Build Coastguard Worker  // Output only. Reason associated with the response when valid = false.
1003*d5c09012SAndroid Build Coastguard Worker  InvalidReason invalid_reason = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
1004*d5c09012SAndroid Build Coastguard Worker
1005*d5c09012SAndroid Build Coastguard Worker  // Output only. The timestamp corresponding to the generation of the token.
1006*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 3
1007*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
1008*d5c09012SAndroid Build Coastguard Worker
1009*d5c09012SAndroid Build Coastguard Worker  // Output only. The hostname of the page on which the token was generated (Web
1010*d5c09012SAndroid Build Coastguard Worker  // keys only).
1011*d5c09012SAndroid Build Coastguard Worker  string hostname = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
1012*d5c09012SAndroid Build Coastguard Worker
1013*d5c09012SAndroid Build Coastguard Worker  // Output only. The name of the Android package with which the token was
1014*d5c09012SAndroid Build Coastguard Worker  // generated (Android keys only).
1015*d5c09012SAndroid Build Coastguard Worker  string android_package_name = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
1016*d5c09012SAndroid Build Coastguard Worker
1017*d5c09012SAndroid Build Coastguard Worker  // Output only. The ID of the iOS bundle with which the token was generated
1018*d5c09012SAndroid Build Coastguard Worker  // (iOS keys only).
1019*d5c09012SAndroid Build Coastguard Worker  string ios_bundle_id = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
1020*d5c09012SAndroid Build Coastguard Worker
1021*d5c09012SAndroid Build Coastguard Worker  // Output only. Action name provided at token generation.
1022*d5c09012SAndroid Build Coastguard Worker  string action = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
1023*d5c09012SAndroid Build Coastguard Worker}
1024*d5c09012SAndroid Build Coastguard Worker
1025*d5c09012SAndroid Build Coastguard Worker// Assessment for Fraud Prevention.
1026*d5c09012SAndroid Build Coastguard Workermessage FraudPreventionAssessment {
1027*d5c09012SAndroid Build Coastguard Worker  // Information about stolen instrument fraud, where the user is not the
1028*d5c09012SAndroid Build Coastguard Worker  // legitimate owner of the instrument being used for the purchase.
1029*d5c09012SAndroid Build Coastguard Worker  message StolenInstrumentVerdict {
1030*d5c09012SAndroid Build Coastguard Worker    // Output only. Probability of this transaction being executed with a stolen
1031*d5c09012SAndroid Build Coastguard Worker    // instrument. Values are from 0.0 (lowest) to 1.0 (highest).
1032*d5c09012SAndroid Build Coastguard Worker    float risk = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
1033*d5c09012SAndroid Build Coastguard Worker  }
1034*d5c09012SAndroid Build Coastguard Worker
1035*d5c09012SAndroid Build Coastguard Worker  // Information about card testing fraud, where an adversary is testing
1036*d5c09012SAndroid Build Coastguard Worker  // fraudulently obtained cards or brute forcing their details.
1037*d5c09012SAndroid Build Coastguard Worker  message CardTestingVerdict {
1038*d5c09012SAndroid Build Coastguard Worker    // Output only. Probability of this transaction attempt being part of a card
1039*d5c09012SAndroid Build Coastguard Worker    // testing attack. Values are from 0.0 (lowest) to 1.0 (highest).
1040*d5c09012SAndroid Build Coastguard Worker    float risk = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
1041*d5c09012SAndroid Build Coastguard Worker  }
1042*d5c09012SAndroid Build Coastguard Worker
1043*d5c09012SAndroid Build Coastguard Worker  // Information about behavioral trust of the transaction.
1044*d5c09012SAndroid Build Coastguard Worker  message BehavioralTrustVerdict {
1045*d5c09012SAndroid Build Coastguard Worker    // Output only. Probability of this transaction attempt being executed in a
1046*d5c09012SAndroid Build Coastguard Worker    // behaviorally trustworthy way. Values are from 0.0 (lowest) to 1.0
1047*d5c09012SAndroid Build Coastguard Worker    // (highest).
1048*d5c09012SAndroid Build Coastguard Worker    float trust = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
1049*d5c09012SAndroid Build Coastguard Worker  }
1050*d5c09012SAndroid Build Coastguard Worker
1051*d5c09012SAndroid Build Coastguard Worker  // Output only. Probability of this transaction being fraudulent. Summarizes
1052*d5c09012SAndroid Build Coastguard Worker  // the combined risk of attack vectors below. Values are from 0.0 (lowest)
1053*d5c09012SAndroid Build Coastguard Worker  // to 1.0 (highest).
1054*d5c09012SAndroid Build Coastguard Worker  float transaction_risk = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
1055*d5c09012SAndroid Build Coastguard Worker
1056*d5c09012SAndroid Build Coastguard Worker  // Output only. Assessment of this transaction for risk of a stolen
1057*d5c09012SAndroid Build Coastguard Worker  // instrument.
1058*d5c09012SAndroid Build Coastguard Worker  StolenInstrumentVerdict stolen_instrument_verdict = 2
1059*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
1060*d5c09012SAndroid Build Coastguard Worker
1061*d5c09012SAndroid Build Coastguard Worker  // Output only. Assessment of this transaction for risk of being part of a
1062*d5c09012SAndroid Build Coastguard Worker  // card testing attack.
1063*d5c09012SAndroid Build Coastguard Worker  CardTestingVerdict card_testing_verdict = 3
1064*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
1065*d5c09012SAndroid Build Coastguard Worker
1066*d5c09012SAndroid Build Coastguard Worker  // Output only. Assessment of this transaction for behavioral trust.
1067*d5c09012SAndroid Build Coastguard Worker  BehavioralTrustVerdict behavioral_trust_verdict = 4
1068*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
1069*d5c09012SAndroid Build Coastguard Worker}
1070*d5c09012SAndroid Build Coastguard Worker
1071*d5c09012SAndroid Build Coastguard Worker// Fraud signals describing users and cards involved in the transaction.
1072*d5c09012SAndroid Build Coastguard Workermessage FraudSignals {
1073*d5c09012SAndroid Build Coastguard Worker  // Signals describing the user involved in this transaction.
1074*d5c09012SAndroid Build Coastguard Worker  message UserSignals {
1075*d5c09012SAndroid Build Coastguard Worker    // Output only. This user (based on email, phone, and other identifiers) has
1076*d5c09012SAndroid Build Coastguard Worker    // been seen on the internet for at least this number of days.
1077*d5c09012SAndroid Build Coastguard Worker    int32 active_days_lower_bound = 1
1078*d5c09012SAndroid Build Coastguard Worker        [(google.api.field_behavior) = OUTPUT_ONLY];
1079*d5c09012SAndroid Build Coastguard Worker
1080*d5c09012SAndroid Build Coastguard Worker    // Output only. Likelihood (from 0.0 to 1.0) this user includes synthetic
1081*d5c09012SAndroid Build Coastguard Worker    // components in their identity, such as a randomly generated email address,
1082*d5c09012SAndroid Build Coastguard Worker    // temporary phone number, or fake shipping address.
1083*d5c09012SAndroid Build Coastguard Worker    float synthetic_risk = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
1084*d5c09012SAndroid Build Coastguard Worker  }
1085*d5c09012SAndroid Build Coastguard Worker
1086*d5c09012SAndroid Build Coastguard Worker  // Signals describing the payment card used in this transaction.
1087*d5c09012SAndroid Build Coastguard Worker  message CardSignals {
1088*d5c09012SAndroid Build Coastguard Worker    // Risk labels describing the card being assessed, such as its funding
1089*d5c09012SAndroid Build Coastguard Worker    // mechanism.
1090*d5c09012SAndroid Build Coastguard Worker    enum CardLabel {
1091*d5c09012SAndroid Build Coastguard Worker      // No label specified.
1092*d5c09012SAndroid Build Coastguard Worker      CARD_LABEL_UNSPECIFIED = 0;
1093*d5c09012SAndroid Build Coastguard Worker
1094*d5c09012SAndroid Build Coastguard Worker      // This card has been detected as prepaid.
1095*d5c09012SAndroid Build Coastguard Worker      PREPAID = 1;
1096*d5c09012SAndroid Build Coastguard Worker
1097*d5c09012SAndroid Build Coastguard Worker      // This card has been detected as virtual, such as a card number generated
1098*d5c09012SAndroid Build Coastguard Worker      // for a single transaction or merchant.
1099*d5c09012SAndroid Build Coastguard Worker      VIRTUAL = 2;
1100*d5c09012SAndroid Build Coastguard Worker
1101*d5c09012SAndroid Build Coastguard Worker      // This card has been detected as being used in an unexpected geographic
1102*d5c09012SAndroid Build Coastguard Worker      // location.
1103*d5c09012SAndroid Build Coastguard Worker      UNEXPECTED_LOCATION = 3;
1104*d5c09012SAndroid Build Coastguard Worker    }
1105*d5c09012SAndroid Build Coastguard Worker
1106*d5c09012SAndroid Build Coastguard Worker    // Output only. The labels for the payment card in this transaction.
1107*d5c09012SAndroid Build Coastguard Worker    repeated CardLabel card_labels = 1
1108*d5c09012SAndroid Build Coastguard Worker        [(google.api.field_behavior) = OUTPUT_ONLY];
1109*d5c09012SAndroid Build Coastguard Worker  }
1110*d5c09012SAndroid Build Coastguard Worker
1111*d5c09012SAndroid Build Coastguard Worker  // Output only. Signals describing the end user in this transaction.
1112*d5c09012SAndroid Build Coastguard Worker  UserSignals user_signals = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
1113*d5c09012SAndroid Build Coastguard Worker
1114*d5c09012SAndroid Build Coastguard Worker  // Output only. Signals describing the payment card or cards used in this
1115*d5c09012SAndroid Build Coastguard Worker  // transaction.
1116*d5c09012SAndroid Build Coastguard Worker  CardSignals card_signals = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
1117*d5c09012SAndroid Build Coastguard Worker}
1118*d5c09012SAndroid Build Coastguard Worker
1119*d5c09012SAndroid Build Coastguard Worker// Account defender risk assessment.
1120*d5c09012SAndroid Build Coastguard Workermessage AccountDefenderAssessment {
1121*d5c09012SAndroid Build Coastguard Worker  // Labels returned by account defender for this request.
1122*d5c09012SAndroid Build Coastguard Worker  enum AccountDefenderLabel {
1123*d5c09012SAndroid Build Coastguard Worker    // Default unspecified type.
1124*d5c09012SAndroid Build Coastguard Worker    ACCOUNT_DEFENDER_LABEL_UNSPECIFIED = 0;
1125*d5c09012SAndroid Build Coastguard Worker
1126*d5c09012SAndroid Build Coastguard Worker    // The request matches a known good profile for the user.
1127*d5c09012SAndroid Build Coastguard Worker    PROFILE_MATCH = 1;
1128*d5c09012SAndroid Build Coastguard Worker
1129*d5c09012SAndroid Build Coastguard Worker    // The request is potentially a suspicious login event and must be further
1130*d5c09012SAndroid Build Coastguard Worker    // verified either through multi-factor authentication or another system.
1131*d5c09012SAndroid Build Coastguard Worker    SUSPICIOUS_LOGIN_ACTIVITY = 2;
1132*d5c09012SAndroid Build Coastguard Worker
1133*d5c09012SAndroid Build Coastguard Worker    // The request matched a profile that previously had suspicious account
1134*d5c09012SAndroid Build Coastguard Worker    // creation behavior. This can mean that this is a fake account.
1135*d5c09012SAndroid Build Coastguard Worker    SUSPICIOUS_ACCOUNT_CREATION = 3;
1136*d5c09012SAndroid Build Coastguard Worker
1137*d5c09012SAndroid Build Coastguard Worker    // The account in the request has a high number of related accounts. It does
1138*d5c09012SAndroid Build Coastguard Worker    // not necessarily imply that the account is bad but can require further
1139*d5c09012SAndroid Build Coastguard Worker    // investigation.
1140*d5c09012SAndroid Build Coastguard Worker    RELATED_ACCOUNTS_NUMBER_HIGH = 4;
1141*d5c09012SAndroid Build Coastguard Worker  }
1142*d5c09012SAndroid Build Coastguard Worker
1143*d5c09012SAndroid Build Coastguard Worker  // Output only. Labels for this request.
1144*d5c09012SAndroid Build Coastguard Worker  repeated AccountDefenderLabel labels = 1
1145*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
1146*d5c09012SAndroid Build Coastguard Worker}
1147*d5c09012SAndroid Build Coastguard Worker
1148*d5c09012SAndroid Build Coastguard Worker// The create key request message.
1149*d5c09012SAndroid Build Coastguard Workermessage CreateKeyRequest {
1150*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the project in which the key will be created, in the
1151*d5c09012SAndroid Build Coastguard Worker  // format `projects/{project}`.
1152*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
1153*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1154*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1155*d5c09012SAndroid Build Coastguard Worker      type: "cloudresourcemanager.googleapis.com/Project"
1156*d5c09012SAndroid Build Coastguard Worker    }
1157*d5c09012SAndroid Build Coastguard Worker  ];
1158*d5c09012SAndroid Build Coastguard Worker
1159*d5c09012SAndroid Build Coastguard Worker  // Required. Information to create a reCAPTCHA Enterprise key.
1160*d5c09012SAndroid Build Coastguard Worker  Key key = 2 [(google.api.field_behavior) = REQUIRED];
1161*d5c09012SAndroid Build Coastguard Worker}
1162*d5c09012SAndroid Build Coastguard Worker
1163*d5c09012SAndroid Build Coastguard Worker// The list keys request message.
1164*d5c09012SAndroid Build Coastguard Workermessage ListKeysRequest {
1165*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the project that contains the keys that will be
1166*d5c09012SAndroid Build Coastguard Worker  // listed, in the format `projects/{project}`.
1167*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
1168*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1169*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1170*d5c09012SAndroid Build Coastguard Worker      type: "cloudresourcemanager.googleapis.com/Project"
1171*d5c09012SAndroid Build Coastguard Worker    }
1172*d5c09012SAndroid Build Coastguard Worker  ];
1173*d5c09012SAndroid Build Coastguard Worker
1174*d5c09012SAndroid Build Coastguard Worker  // Optional. The maximum number of keys to return. Default is 10. Max limit is
1175*d5c09012SAndroid Build Coastguard Worker  // 1000.
1176*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
1177*d5c09012SAndroid Build Coastguard Worker
1178*d5c09012SAndroid Build Coastguard Worker  // Optional. The next_page_token value returned from a previous.
1179*d5c09012SAndroid Build Coastguard Worker  // ListKeysRequest, if any.
1180*d5c09012SAndroid Build Coastguard Worker  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
1181*d5c09012SAndroid Build Coastguard Worker}
1182*d5c09012SAndroid Build Coastguard Worker
1183*d5c09012SAndroid Build Coastguard Worker// Response to request to list keys in a project.
1184*d5c09012SAndroid Build Coastguard Workermessage ListKeysResponse {
1185*d5c09012SAndroid Build Coastguard Worker  // Key details.
1186*d5c09012SAndroid Build Coastguard Worker  repeated Key keys = 1;
1187*d5c09012SAndroid Build Coastguard Worker
1188*d5c09012SAndroid Build Coastguard Worker  // Token to retrieve the next page of results. It is set to empty if no keys
1189*d5c09012SAndroid Build Coastguard Worker  // remain in results.
1190*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
1191*d5c09012SAndroid Build Coastguard Worker}
1192*d5c09012SAndroid Build Coastguard Worker
1193*d5c09012SAndroid Build Coastguard Worker// The retrieve legacy secret key request message.
1194*d5c09012SAndroid Build Coastguard Workermessage RetrieveLegacySecretKeyRequest {
1195*d5c09012SAndroid Build Coastguard Worker  // Required. The public key name linked to the requested secret key in the
1196*d5c09012SAndroid Build Coastguard Worker  // format `projects/{project}/keys/{key}`.
1197*d5c09012SAndroid Build Coastguard Worker  string key = 1 [
1198*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1199*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1200*d5c09012SAndroid Build Coastguard Worker      type: "recaptchaenterprise.googleapis.com/Key"
1201*d5c09012SAndroid Build Coastguard Worker    }
1202*d5c09012SAndroid Build Coastguard Worker  ];
1203*d5c09012SAndroid Build Coastguard Worker}
1204*d5c09012SAndroid Build Coastguard Worker
1205*d5c09012SAndroid Build Coastguard Worker// The get key request message.
1206*d5c09012SAndroid Build Coastguard Workermessage GetKeyRequest {
1207*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the requested key, in the format
1208*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/keys/{key}`.
1209*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
1210*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1211*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1212*d5c09012SAndroid Build Coastguard Worker      type: "recaptchaenterprise.googleapis.com/Key"
1213*d5c09012SAndroid Build Coastguard Worker    }
1214*d5c09012SAndroid Build Coastguard Worker  ];
1215*d5c09012SAndroid Build Coastguard Worker}
1216*d5c09012SAndroid Build Coastguard Worker
1217*d5c09012SAndroid Build Coastguard Worker// The update key request message.
1218*d5c09012SAndroid Build Coastguard Workermessage UpdateKeyRequest {
1219*d5c09012SAndroid Build Coastguard Worker  // Required. The key to update.
1220*d5c09012SAndroid Build Coastguard Worker  Key key = 1 [(google.api.field_behavior) = REQUIRED];
1221*d5c09012SAndroid Build Coastguard Worker
1222*d5c09012SAndroid Build Coastguard Worker  // Optional. The mask to control which fields of the key get updated. If the
1223*d5c09012SAndroid Build Coastguard Worker  // mask is not present, all fields will be updated.
1224*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 2
1225*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
1226*d5c09012SAndroid Build Coastguard Worker}
1227*d5c09012SAndroid Build Coastguard Worker
1228*d5c09012SAndroid Build Coastguard Worker// The delete key request message.
1229*d5c09012SAndroid Build Coastguard Workermessage DeleteKeyRequest {
1230*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the key to be deleted, in the format
1231*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/keys/{key}`.
1232*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
1233*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1234*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1235*d5c09012SAndroid Build Coastguard Worker      type: "recaptchaenterprise.googleapis.com/Key"
1236*d5c09012SAndroid Build Coastguard Worker    }
1237*d5c09012SAndroid Build Coastguard Worker  ];
1238*d5c09012SAndroid Build Coastguard Worker}
1239*d5c09012SAndroid Build Coastguard Worker
1240*d5c09012SAndroid Build Coastguard Worker// The create firewall policy request message.
1241*d5c09012SAndroid Build Coastguard Workermessage CreateFirewallPolicyRequest {
1242*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the project this policy will apply to, in the format
1243*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}`.
1244*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
1245*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1246*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1247*d5c09012SAndroid Build Coastguard Worker      type: "cloudresourcemanager.googleapis.com/Project"
1248*d5c09012SAndroid Build Coastguard Worker    }
1249*d5c09012SAndroid Build Coastguard Worker  ];
1250*d5c09012SAndroid Build Coastguard Worker
1251*d5c09012SAndroid Build Coastguard Worker  // Required. Information to create the policy.
1252*d5c09012SAndroid Build Coastguard Worker  FirewallPolicy firewall_policy = 2 [(google.api.field_behavior) = REQUIRED];
1253*d5c09012SAndroid Build Coastguard Worker}
1254*d5c09012SAndroid Build Coastguard Worker
1255*d5c09012SAndroid Build Coastguard Worker// The list firewall policies request message.
1256*d5c09012SAndroid Build Coastguard Workermessage ListFirewallPoliciesRequest {
1257*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the project to list the policies for, in the format
1258*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}`.
1259*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
1260*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1261*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1262*d5c09012SAndroid Build Coastguard Worker      type: "cloudresourcemanager.googleapis.com/Project"
1263*d5c09012SAndroid Build Coastguard Worker    }
1264*d5c09012SAndroid Build Coastguard Worker  ];
1265*d5c09012SAndroid Build Coastguard Worker
1266*d5c09012SAndroid Build Coastguard Worker  // Optional. The maximum number of policies to return. Default is 10. Max
1267*d5c09012SAndroid Build Coastguard Worker  // limit is 1000.
1268*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
1269*d5c09012SAndroid Build Coastguard Worker
1270*d5c09012SAndroid Build Coastguard Worker  // Optional. The next_page_token value returned from a previous.
1271*d5c09012SAndroid Build Coastguard Worker  // ListFirewallPoliciesRequest, if any.
1272*d5c09012SAndroid Build Coastguard Worker  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
1273*d5c09012SAndroid Build Coastguard Worker}
1274*d5c09012SAndroid Build Coastguard Worker
1275*d5c09012SAndroid Build Coastguard Worker// Response to request to list firewall policies belonging to a project.
1276*d5c09012SAndroid Build Coastguard Workermessage ListFirewallPoliciesResponse {
1277*d5c09012SAndroid Build Coastguard Worker  // Policy details.
1278*d5c09012SAndroid Build Coastguard Worker  repeated FirewallPolicy firewall_policies = 1;
1279*d5c09012SAndroid Build Coastguard Worker
1280*d5c09012SAndroid Build Coastguard Worker  // Token to retrieve the next page of results. It is set to empty if no
1281*d5c09012SAndroid Build Coastguard Worker  // policies remain in results.
1282*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
1283*d5c09012SAndroid Build Coastguard Worker}
1284*d5c09012SAndroid Build Coastguard Worker
1285*d5c09012SAndroid Build Coastguard Worker// The get firewall policy request message.
1286*d5c09012SAndroid Build Coastguard Workermessage GetFirewallPolicyRequest {
1287*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the requested policy, in the format
1288*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/firewallpolicies/{firewallpolicy}`.
1289*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
1290*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1291*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1292*d5c09012SAndroid Build Coastguard Worker      type: "recaptchaenterprise.googleapis.com/FirewallPolicy"
1293*d5c09012SAndroid Build Coastguard Worker    }
1294*d5c09012SAndroid Build Coastguard Worker  ];
1295*d5c09012SAndroid Build Coastguard Worker}
1296*d5c09012SAndroid Build Coastguard Worker
1297*d5c09012SAndroid Build Coastguard Worker// The update firewall policy request message.
1298*d5c09012SAndroid Build Coastguard Workermessage UpdateFirewallPolicyRequest {
1299*d5c09012SAndroid Build Coastguard Worker  // Required. The policy to update.
1300*d5c09012SAndroid Build Coastguard Worker  FirewallPolicy firewall_policy = 1 [(google.api.field_behavior) = REQUIRED];
1301*d5c09012SAndroid Build Coastguard Worker
1302*d5c09012SAndroid Build Coastguard Worker  // Optional. The mask to control which fields of the policy get updated. If
1303*d5c09012SAndroid Build Coastguard Worker  // the mask is not present, all fields will be updated.
1304*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 2
1305*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
1306*d5c09012SAndroid Build Coastguard Worker}
1307*d5c09012SAndroid Build Coastguard Worker
1308*d5c09012SAndroid Build Coastguard Worker// The delete firewall policy request message.
1309*d5c09012SAndroid Build Coastguard Workermessage DeleteFirewallPolicyRequest {
1310*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the policy to be deleted, in the format
1311*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/firewallpolicies/{firewallpolicy}`.
1312*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
1313*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1314*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1315*d5c09012SAndroid Build Coastguard Worker      type: "recaptchaenterprise.googleapis.com/FirewallPolicy"
1316*d5c09012SAndroid Build Coastguard Worker    }
1317*d5c09012SAndroid Build Coastguard Worker  ];
1318*d5c09012SAndroid Build Coastguard Worker}
1319*d5c09012SAndroid Build Coastguard Worker
1320*d5c09012SAndroid Build Coastguard Worker// The reorder firewall policies request message.
1321*d5c09012SAndroid Build Coastguard Workermessage ReorderFirewallPoliciesRequest {
1322*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the project to list the policies for, in the format
1323*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}`.
1324*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
1325*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1326*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1327*d5c09012SAndroid Build Coastguard Worker      type: "cloudresourcemanager.googleapis.com/Project"
1328*d5c09012SAndroid Build Coastguard Worker    }
1329*d5c09012SAndroid Build Coastguard Worker  ];
1330*d5c09012SAndroid Build Coastguard Worker
1331*d5c09012SAndroid Build Coastguard Worker  // Required. A list containing all policy names, in the new order. Each name
1332*d5c09012SAndroid Build Coastguard Worker  // is in the format `projects/{project}/firewallpolicies/{firewallpolicy}`.
1333*d5c09012SAndroid Build Coastguard Worker  repeated string names = 2 [
1334*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1335*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1336*d5c09012SAndroid Build Coastguard Worker      type: "recaptchaenterprise.googleapis.com/FirewallPolicy"
1337*d5c09012SAndroid Build Coastguard Worker    }
1338*d5c09012SAndroid Build Coastguard Worker  ];
1339*d5c09012SAndroid Build Coastguard Worker}
1340*d5c09012SAndroid Build Coastguard Worker
1341*d5c09012SAndroid Build Coastguard Worker// The reorder firewall policies response message.
1342*d5c09012SAndroid Build Coastguard Workermessage ReorderFirewallPoliciesResponse {}
1343*d5c09012SAndroid Build Coastguard Worker
1344*d5c09012SAndroid Build Coastguard Worker// The migrate key request message.
1345*d5c09012SAndroid Build Coastguard Workermessage MigrateKeyRequest {
1346*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the key to be migrated, in the format
1347*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/keys/{key}`.
1348*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
1349*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1350*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1351*d5c09012SAndroid Build Coastguard Worker      type: "recaptchaenterprise.googleapis.com/Key"
1352*d5c09012SAndroid Build Coastguard Worker    }
1353*d5c09012SAndroid Build Coastguard Worker  ];
1354*d5c09012SAndroid Build Coastguard Worker
1355*d5c09012SAndroid Build Coastguard Worker  // Optional. If true, skips the billing check.
1356*d5c09012SAndroid Build Coastguard Worker  // A reCAPTCHA Enterprise key or migrated key behaves differently than a
1357*d5c09012SAndroid Build Coastguard Worker  // reCAPTCHA (non-Enterprise version) key when you reach a quota limit (see
1358*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/recaptcha-enterprise/quotas#quota_limit). To avoid
1359*d5c09012SAndroid Build Coastguard Worker  // any disruption of your usage, we check that a billing account is present.
1360*d5c09012SAndroid Build Coastguard Worker  // If your usage of reCAPTCHA is under the free quota, you can safely skip the
1361*d5c09012SAndroid Build Coastguard Worker  // billing check and proceed with the migration. See
1362*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/recaptcha-enterprise/docs/billing-information.
1363*d5c09012SAndroid Build Coastguard Worker  bool skip_billing_check = 2 [(google.api.field_behavior) = OPTIONAL];
1364*d5c09012SAndroid Build Coastguard Worker}
1365*d5c09012SAndroid Build Coastguard Worker
1366*d5c09012SAndroid Build Coastguard Worker// The get metrics request message.
1367*d5c09012SAndroid Build Coastguard Workermessage GetMetricsRequest {
1368*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the requested metrics, in the format
1369*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/keys/{key}/metrics`.
1370*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
1371*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1372*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1373*d5c09012SAndroid Build Coastguard Worker      type: "recaptchaenterprise.googleapis.com/Metrics"
1374*d5c09012SAndroid Build Coastguard Worker    }
1375*d5c09012SAndroid Build Coastguard Worker  ];
1376*d5c09012SAndroid Build Coastguard Worker}
1377*d5c09012SAndroid Build Coastguard Worker
1378*d5c09012SAndroid Build Coastguard Worker// Metrics for a single Key.
1379*d5c09012SAndroid Build Coastguard Workermessage Metrics {
1380*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
1381*d5c09012SAndroid Build Coastguard Worker    type: "recaptchaenterprise.googleapis.com/Metrics"
1382*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/keys/{key}/metrics"
1383*d5c09012SAndroid Build Coastguard Worker    plural: "metrics"
1384*d5c09012SAndroid Build Coastguard Worker    singular: "metrics"
1385*d5c09012SAndroid Build Coastguard Worker  };
1386*d5c09012SAndroid Build Coastguard Worker
1387*d5c09012SAndroid Build Coastguard Worker  // Output only. Identifier. The name of the metrics, in the format
1388*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/keys/{key}/metrics`.
1389*d5c09012SAndroid Build Coastguard Worker  string name = 4 [
1390*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = IDENTIFIER,
1391*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = OUTPUT_ONLY
1392*d5c09012SAndroid Build Coastguard Worker  ];
1393*d5c09012SAndroid Build Coastguard Worker
1394*d5c09012SAndroid Build Coastguard Worker  // Inclusive start time aligned to a day (UTC).
1395*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp start_time = 1;
1396*d5c09012SAndroid Build Coastguard Worker
1397*d5c09012SAndroid Build Coastguard Worker  // Metrics will be continuous and in order by dates, and in the granularity
1398*d5c09012SAndroid Build Coastguard Worker  // of day. All Key types should have score-based data.
1399*d5c09012SAndroid Build Coastguard Worker  repeated ScoreMetrics score_metrics = 2;
1400*d5c09012SAndroid Build Coastguard Worker
1401*d5c09012SAndroid Build Coastguard Worker  // Metrics will be continuous and in order by dates, and in the granularity
1402*d5c09012SAndroid Build Coastguard Worker  // of day. Only challenge-based keys (CHECKBOX, INVISIBLE), will have
1403*d5c09012SAndroid Build Coastguard Worker  // challenge-based data.
1404*d5c09012SAndroid Build Coastguard Worker  repeated ChallengeMetrics challenge_metrics = 3;
1405*d5c09012SAndroid Build Coastguard Worker}
1406*d5c09012SAndroid Build Coastguard Worker
1407*d5c09012SAndroid Build Coastguard Worker// Secret key is used only in legacy reCAPTCHA. It must be used in a 3rd party
1408*d5c09012SAndroid Build Coastguard Worker// integration with legacy reCAPTCHA.
1409*d5c09012SAndroid Build Coastguard Workermessage RetrieveLegacySecretKeyResponse {
1410*d5c09012SAndroid Build Coastguard Worker  // The secret key (also known as shared secret) authorizes communication
1411*d5c09012SAndroid Build Coastguard Worker  // between your application backend and the reCAPTCHA Enterprise server to
1412*d5c09012SAndroid Build Coastguard Worker  // create an assessment.
1413*d5c09012SAndroid Build Coastguard Worker  // The secret key needs to be kept safe for security purposes.
1414*d5c09012SAndroid Build Coastguard Worker  string legacy_secret_key = 1;
1415*d5c09012SAndroid Build Coastguard Worker}
1416*d5c09012SAndroid Build Coastguard Worker
1417*d5c09012SAndroid Build Coastguard Worker// A key used to identify and configure applications (web and/or mobile) that
1418*d5c09012SAndroid Build Coastguard Worker// use reCAPTCHA Enterprise.
1419*d5c09012SAndroid Build Coastguard Workermessage Key {
1420*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
1421*d5c09012SAndroid Build Coastguard Worker    type: "recaptchaenterprise.googleapis.com/Key"
1422*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/keys/{key}"
1423*d5c09012SAndroid Build Coastguard Worker    plural: "keys"
1424*d5c09012SAndroid Build Coastguard Worker    singular: "key"
1425*d5c09012SAndroid Build Coastguard Worker  };
1426*d5c09012SAndroid Build Coastguard Worker
1427*d5c09012SAndroid Build Coastguard Worker  // Identifier. The resource name for the Key in the format
1428*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/keys/{key}`.
1429*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = IDENTIFIER];
1430*d5c09012SAndroid Build Coastguard Worker
1431*d5c09012SAndroid Build Coastguard Worker  // Required. Human-readable display name of this key. Modifiable by user.
1432*d5c09012SAndroid Build Coastguard Worker  string display_name = 2 [(google.api.field_behavior) = REQUIRED];
1433*d5c09012SAndroid Build Coastguard Worker
1434*d5c09012SAndroid Build Coastguard Worker  // Platform-specific settings for this key. The key can only be used on a
1435*d5c09012SAndroid Build Coastguard Worker  // platform for which the settings are enabled.
1436*d5c09012SAndroid Build Coastguard Worker  oneof platform_settings {
1437*d5c09012SAndroid Build Coastguard Worker    // Settings for keys that can be used by websites.
1438*d5c09012SAndroid Build Coastguard Worker    WebKeySettings web_settings = 3;
1439*d5c09012SAndroid Build Coastguard Worker
1440*d5c09012SAndroid Build Coastguard Worker    // Settings for keys that can be used by Android apps.
1441*d5c09012SAndroid Build Coastguard Worker    AndroidKeySettings android_settings = 4;
1442*d5c09012SAndroid Build Coastguard Worker
1443*d5c09012SAndroid Build Coastguard Worker    // Settings for keys that can be used by iOS apps.
1444*d5c09012SAndroid Build Coastguard Worker    IOSKeySettings ios_settings = 5;
1445*d5c09012SAndroid Build Coastguard Worker  }
1446*d5c09012SAndroid Build Coastguard Worker
1447*d5c09012SAndroid Build Coastguard Worker  // Optional. See [Creating and managing labels]
1448*d5c09012SAndroid Build Coastguard Worker  // (https://cloud.google.com/recaptcha-enterprise/docs/labels).
1449*d5c09012SAndroid Build Coastguard Worker  map<string, string> labels = 6 [(google.api.field_behavior) = OPTIONAL];
1450*d5c09012SAndroid Build Coastguard Worker
1451*d5c09012SAndroid Build Coastguard Worker  // Output only. The timestamp corresponding to the creation of this key.
1452*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 7
1453*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
1454*d5c09012SAndroid Build Coastguard Worker
1455*d5c09012SAndroid Build Coastguard Worker  // Optional. Options for user acceptance testing.
1456*d5c09012SAndroid Build Coastguard Worker  TestingOptions testing_options = 9 [(google.api.field_behavior) = OPTIONAL];
1457*d5c09012SAndroid Build Coastguard Worker
1458*d5c09012SAndroid Build Coastguard Worker  // Optional. Settings for WAF
1459*d5c09012SAndroid Build Coastguard Worker  WafSettings waf_settings = 10 [(google.api.field_behavior) = OPTIONAL];
1460*d5c09012SAndroid Build Coastguard Worker}
1461*d5c09012SAndroid Build Coastguard Worker
1462*d5c09012SAndroid Build Coastguard Worker// Options for user acceptance testing.
1463*d5c09012SAndroid Build Coastguard Workermessage TestingOptions {
1464*d5c09012SAndroid Build Coastguard Worker  // Enum that represents the challenge option for challenge-based (CHECKBOX,
1465*d5c09012SAndroid Build Coastguard Worker  // INVISIBLE) testing keys.
1466*d5c09012SAndroid Build Coastguard Worker  enum TestingChallenge {
1467*d5c09012SAndroid Build Coastguard Worker    // Perform the normal risk analysis and return either nocaptcha or a
1468*d5c09012SAndroid Build Coastguard Worker    // challenge depending on risk and trust factors.
1469*d5c09012SAndroid Build Coastguard Worker    TESTING_CHALLENGE_UNSPECIFIED = 0;
1470*d5c09012SAndroid Build Coastguard Worker
1471*d5c09012SAndroid Build Coastguard Worker    // Challenge requests for this key always return a nocaptcha, which
1472*d5c09012SAndroid Build Coastguard Worker    // does not require a solution.
1473*d5c09012SAndroid Build Coastguard Worker    NOCAPTCHA = 1;
1474*d5c09012SAndroid Build Coastguard Worker
1475*d5c09012SAndroid Build Coastguard Worker    // Challenge requests for this key always return an unsolvable
1476*d5c09012SAndroid Build Coastguard Worker    // challenge.
1477*d5c09012SAndroid Build Coastguard Worker    UNSOLVABLE_CHALLENGE = 2;
1478*d5c09012SAndroid Build Coastguard Worker  }
1479*d5c09012SAndroid Build Coastguard Worker
1480*d5c09012SAndroid Build Coastguard Worker  // Optional. All assessments for this Key will return this score. Must be
1481*d5c09012SAndroid Build Coastguard Worker  // between 0 (likely not legitimate) and 1 (likely legitimate) inclusive.
1482*d5c09012SAndroid Build Coastguard Worker  float testing_score = 1 [(google.api.field_behavior) = OPTIONAL];
1483*d5c09012SAndroid Build Coastguard Worker
1484*d5c09012SAndroid Build Coastguard Worker  // Optional. For challenge-based keys only (CHECKBOX, INVISIBLE), all
1485*d5c09012SAndroid Build Coastguard Worker  // challenge requests for this site will return nocaptcha if NOCAPTCHA, or an
1486*d5c09012SAndroid Build Coastguard Worker  // unsolvable challenge if CHALLENGE.
1487*d5c09012SAndroid Build Coastguard Worker  TestingChallenge testing_challenge = 2
1488*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
1489*d5c09012SAndroid Build Coastguard Worker}
1490*d5c09012SAndroid Build Coastguard Worker
1491*d5c09012SAndroid Build Coastguard Worker// Settings specific to keys that can be used by websites.
1492*d5c09012SAndroid Build Coastguard Workermessage WebKeySettings {
1493*d5c09012SAndroid Build Coastguard Worker  // Enum that represents the integration types for web keys.
1494*d5c09012SAndroid Build Coastguard Worker  enum IntegrationType {
1495*d5c09012SAndroid Build Coastguard Worker    // Default type that indicates this enum hasn't been specified. This is not
1496*d5c09012SAndroid Build Coastguard Worker    // a valid IntegrationType, one of the other types must be specified
1497*d5c09012SAndroid Build Coastguard Worker    // instead.
1498*d5c09012SAndroid Build Coastguard Worker    INTEGRATION_TYPE_UNSPECIFIED = 0;
1499*d5c09012SAndroid Build Coastguard Worker
1500*d5c09012SAndroid Build Coastguard Worker    // Only used to produce scores. It doesn't display the "I'm not a robot"
1501*d5c09012SAndroid Build Coastguard Worker    // checkbox and never shows captcha challenges.
1502*d5c09012SAndroid Build Coastguard Worker    SCORE = 1;
1503*d5c09012SAndroid Build Coastguard Worker
1504*d5c09012SAndroid Build Coastguard Worker    // Displays the "I'm not a robot" checkbox and may show captcha challenges
1505*d5c09012SAndroid Build Coastguard Worker    // after it is checked.
1506*d5c09012SAndroid Build Coastguard Worker    CHECKBOX = 2;
1507*d5c09012SAndroid Build Coastguard Worker
1508*d5c09012SAndroid Build Coastguard Worker    // Doesn't display the "I'm not a robot" checkbox, but may show captcha
1509*d5c09012SAndroid Build Coastguard Worker    // challenges after risk analysis.
1510*d5c09012SAndroid Build Coastguard Worker    INVISIBLE = 3;
1511*d5c09012SAndroid Build Coastguard Worker  }
1512*d5c09012SAndroid Build Coastguard Worker
1513*d5c09012SAndroid Build Coastguard Worker  // Enum that represents the possible challenge frequency and difficulty
1514*d5c09012SAndroid Build Coastguard Worker  // configurations for a web key.
1515*d5c09012SAndroid Build Coastguard Worker  enum ChallengeSecurityPreference {
1516*d5c09012SAndroid Build Coastguard Worker    // Default type that indicates this enum hasn't been specified.
1517*d5c09012SAndroid Build Coastguard Worker    CHALLENGE_SECURITY_PREFERENCE_UNSPECIFIED = 0;
1518*d5c09012SAndroid Build Coastguard Worker
1519*d5c09012SAndroid Build Coastguard Worker    // Key tends to show fewer and easier challenges.
1520*d5c09012SAndroid Build Coastguard Worker    USABILITY = 1;
1521*d5c09012SAndroid Build Coastguard Worker
1522*d5c09012SAndroid Build Coastguard Worker    // Key tends to show balanced (in amount and difficulty) challenges.
1523*d5c09012SAndroid Build Coastguard Worker    BALANCE = 2;
1524*d5c09012SAndroid Build Coastguard Worker
1525*d5c09012SAndroid Build Coastguard Worker    // Key tends to show more and harder challenges.
1526*d5c09012SAndroid Build Coastguard Worker    SECURITY = 3;
1527*d5c09012SAndroid Build Coastguard Worker  }
1528*d5c09012SAndroid Build Coastguard Worker
1529*d5c09012SAndroid Build Coastguard Worker  // Optional. If set to true, it means allowed_domains will not be enforced.
1530*d5c09012SAndroid Build Coastguard Worker  bool allow_all_domains = 3 [(google.api.field_behavior) = OPTIONAL];
1531*d5c09012SAndroid Build Coastguard Worker
1532*d5c09012SAndroid Build Coastguard Worker  // Optional. Domains or subdomains of websites allowed to use the key. All
1533*d5c09012SAndroid Build Coastguard Worker  // subdomains of an allowed domain are automatically allowed. A valid domain
1534*d5c09012SAndroid Build Coastguard Worker  // requires a host and must not include any path, port, query or fragment.
1535*d5c09012SAndroid Build Coastguard Worker  // Examples: 'example.com' or 'subdomain.example.com'
1536*d5c09012SAndroid Build Coastguard Worker  repeated string allowed_domains = 1 [(google.api.field_behavior) = OPTIONAL];
1537*d5c09012SAndroid Build Coastguard Worker
1538*d5c09012SAndroid Build Coastguard Worker  // Optional. If set to true, the key can be used on AMP (Accelerated Mobile
1539*d5c09012SAndroid Build Coastguard Worker  // Pages) websites. This is supported only for the SCORE integration type.
1540*d5c09012SAndroid Build Coastguard Worker  bool allow_amp_traffic = 2 [(google.api.field_behavior) = OPTIONAL];
1541*d5c09012SAndroid Build Coastguard Worker
1542*d5c09012SAndroid Build Coastguard Worker  // Required. Describes how this key is integrated with the website.
1543*d5c09012SAndroid Build Coastguard Worker  IntegrationType integration_type = 4 [(google.api.field_behavior) = REQUIRED];
1544*d5c09012SAndroid Build Coastguard Worker
1545*d5c09012SAndroid Build Coastguard Worker  // Optional. Settings for the frequency and difficulty at which this key
1546*d5c09012SAndroid Build Coastguard Worker  // triggers captcha challenges. This should only be specified for
1547*d5c09012SAndroid Build Coastguard Worker  // IntegrationTypes CHECKBOX and INVISIBLE.
1548*d5c09012SAndroid Build Coastguard Worker  ChallengeSecurityPreference challenge_security_preference = 5
1549*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
1550*d5c09012SAndroid Build Coastguard Worker}
1551*d5c09012SAndroid Build Coastguard Worker
1552*d5c09012SAndroid Build Coastguard Worker// Settings specific to keys that can be used by Android apps.
1553*d5c09012SAndroid Build Coastguard Workermessage AndroidKeySettings {
1554*d5c09012SAndroid Build Coastguard Worker  // Optional. If set to true, allowed_package_names are not enforced.
1555*d5c09012SAndroid Build Coastguard Worker  bool allow_all_package_names = 2 [(google.api.field_behavior) = OPTIONAL];
1556*d5c09012SAndroid Build Coastguard Worker
1557*d5c09012SAndroid Build Coastguard Worker  // Optional. Android package names of apps allowed to use the key.
1558*d5c09012SAndroid Build Coastguard Worker  // Example: 'com.companyname.appname'
1559*d5c09012SAndroid Build Coastguard Worker  repeated string allowed_package_names = 1
1560*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
1561*d5c09012SAndroid Build Coastguard Worker
1562*d5c09012SAndroid Build Coastguard Worker  // Optional. Set to true for keys that are used in an Android application that
1563*d5c09012SAndroid Build Coastguard Worker  // is available for download in app stores in addition to the Google Play
1564*d5c09012SAndroid Build Coastguard Worker  // Store.
1565*d5c09012SAndroid Build Coastguard Worker  bool support_non_google_app_store_distribution = 3
1566*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
1567*d5c09012SAndroid Build Coastguard Worker}
1568*d5c09012SAndroid Build Coastguard Worker
1569*d5c09012SAndroid Build Coastguard Worker// Settings specific to keys that can be used by iOS apps.
1570*d5c09012SAndroid Build Coastguard Workermessage IOSKeySettings {
1571*d5c09012SAndroid Build Coastguard Worker  // Optional. If set to true, allowed_bundle_ids are not enforced.
1572*d5c09012SAndroid Build Coastguard Worker  bool allow_all_bundle_ids = 2 [(google.api.field_behavior) = OPTIONAL];
1573*d5c09012SAndroid Build Coastguard Worker
1574*d5c09012SAndroid Build Coastguard Worker  // Optional. iOS bundle ids of apps allowed to use the key.
1575*d5c09012SAndroid Build Coastguard Worker  // Example: 'com.companyname.productname.appname'
1576*d5c09012SAndroid Build Coastguard Worker  repeated string allowed_bundle_ids = 1
1577*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
1578*d5c09012SAndroid Build Coastguard Worker
1579*d5c09012SAndroid Build Coastguard Worker  // Optional. Apple Developer account details for the app that is protected by
1580*d5c09012SAndroid Build Coastguard Worker  // the reCAPTCHA Key. reCAPTCHA Enterprise leverages platform-specific checks
1581*d5c09012SAndroid Build Coastguard Worker  // like Apple App Attest and Apple DeviceCheck to protect your app from abuse.
1582*d5c09012SAndroid Build Coastguard Worker  // Providing these fields allows reCAPTCHA Enterprise to get a better
1583*d5c09012SAndroid Build Coastguard Worker  // assessment of the integrity of your app.
1584*d5c09012SAndroid Build Coastguard Worker  AppleDeveloperId apple_developer_id = 3
1585*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
1586*d5c09012SAndroid Build Coastguard Worker}
1587*d5c09012SAndroid Build Coastguard Worker
1588*d5c09012SAndroid Build Coastguard Worker// Contains fields that are required to perform Apple-specific integrity checks.
1589*d5c09012SAndroid Build Coastguard Workermessage AppleDeveloperId {
1590*d5c09012SAndroid Build Coastguard Worker  // Required. Input only. A private key (downloaded as a text file with a .p8
1591*d5c09012SAndroid Build Coastguard Worker  // file extension) generated for your Apple Developer account. Ensure that
1592*d5c09012SAndroid Build Coastguard Worker  // Apple DeviceCheck is enabled for the private key.
1593*d5c09012SAndroid Build Coastguard Worker  string private_key = 1 [
1594*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1595*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = INPUT_ONLY
1596*d5c09012SAndroid Build Coastguard Worker  ];
1597*d5c09012SAndroid Build Coastguard Worker
1598*d5c09012SAndroid Build Coastguard Worker  // Required. The Apple developer key ID (10-character string).
1599*d5c09012SAndroid Build Coastguard Worker  string key_id = 2 [(google.api.field_behavior) = REQUIRED];
1600*d5c09012SAndroid Build Coastguard Worker
1601*d5c09012SAndroid Build Coastguard Worker  // Required. The Apple team ID (10-character string) owning the provisioning
1602*d5c09012SAndroid Build Coastguard Worker  // profile used to build your application.
1603*d5c09012SAndroid Build Coastguard Worker  string team_id = 3 [(google.api.field_behavior) = REQUIRED];
1604*d5c09012SAndroid Build Coastguard Worker}
1605*d5c09012SAndroid Build Coastguard Worker
1606*d5c09012SAndroid Build Coastguard Worker// Score distribution.
1607*d5c09012SAndroid Build Coastguard Workermessage ScoreDistribution {
1608*d5c09012SAndroid Build Coastguard Worker  // Map key is score value multiplied by 100. The scores are discrete values
1609*d5c09012SAndroid Build Coastguard Worker  // between [0, 1]. The maximum number of buckets is on order of a few dozen,
1610*d5c09012SAndroid Build Coastguard Worker  // but typically much lower (ie. 10).
1611*d5c09012SAndroid Build Coastguard Worker  map<int32, int64> score_buckets = 1;
1612*d5c09012SAndroid Build Coastguard Worker}
1613*d5c09012SAndroid Build Coastguard Worker
1614*d5c09012SAndroid Build Coastguard Worker// Metrics related to scoring.
1615*d5c09012SAndroid Build Coastguard Workermessage ScoreMetrics {
1616*d5c09012SAndroid Build Coastguard Worker  // Aggregated score metrics for all traffic.
1617*d5c09012SAndroid Build Coastguard Worker  ScoreDistribution overall_metrics = 1;
1618*d5c09012SAndroid Build Coastguard Worker
1619*d5c09012SAndroid Build Coastguard Worker  // Action-based metrics. The map key is the action name which specified by the
1620*d5c09012SAndroid Build Coastguard Worker  // site owners at time of the "execute" client-side call.
1621*d5c09012SAndroid Build Coastguard Worker  map<string, ScoreDistribution> action_metrics = 2;
1622*d5c09012SAndroid Build Coastguard Worker}
1623*d5c09012SAndroid Build Coastguard Worker
1624*d5c09012SAndroid Build Coastguard Worker// Metrics related to challenges.
1625*d5c09012SAndroid Build Coastguard Workermessage ChallengeMetrics {
1626*d5c09012SAndroid Build Coastguard Worker  // Count of reCAPTCHA checkboxes or badges rendered. This is mostly equivalent
1627*d5c09012SAndroid Build Coastguard Worker  // to a count of pageloads for pages that include reCAPTCHA.
1628*d5c09012SAndroid Build Coastguard Worker  int64 pageload_count = 1;
1629*d5c09012SAndroid Build Coastguard Worker
1630*d5c09012SAndroid Build Coastguard Worker  // Count of nocaptchas (successful verification without a challenge) issued.
1631*d5c09012SAndroid Build Coastguard Worker  int64 nocaptcha_count = 2;
1632*d5c09012SAndroid Build Coastguard Worker
1633*d5c09012SAndroid Build Coastguard Worker  // Count of submitted challenge solutions that were incorrect or otherwise
1634*d5c09012SAndroid Build Coastguard Worker  // deemed suspicious such that a subsequent challenge was triggered.
1635*d5c09012SAndroid Build Coastguard Worker  int64 failed_count = 3;
1636*d5c09012SAndroid Build Coastguard Worker
1637*d5c09012SAndroid Build Coastguard Worker  // Count of nocaptchas (successful verification without a challenge) plus
1638*d5c09012SAndroid Build Coastguard Worker  // submitted challenge solutions that were correct and resulted in
1639*d5c09012SAndroid Build Coastguard Worker  // verification.
1640*d5c09012SAndroid Build Coastguard Worker  int64 passed_count = 4;
1641*d5c09012SAndroid Build Coastguard Worker}
1642*d5c09012SAndroid Build Coastguard Worker
1643*d5c09012SAndroid Build Coastguard Worker// Policy config assessment.
1644*d5c09012SAndroid Build Coastguard Workermessage FirewallPolicyAssessment {
1645*d5c09012SAndroid Build Coastguard Worker  // Output only. If the processing of a policy config fails, an error will be
1646*d5c09012SAndroid Build Coastguard Worker  // populated and the firewall_policy will be left empty.
1647*d5c09012SAndroid Build Coastguard Worker  google.rpc.Status error = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
1648*d5c09012SAndroid Build Coastguard Worker
1649*d5c09012SAndroid Build Coastguard Worker  // Output only. The policy that matched the request. If more than one policy
1650*d5c09012SAndroid Build Coastguard Worker  // may match, this is the first match. If no policy matches the incoming
1651*d5c09012SAndroid Build Coastguard Worker  // request, the policy field will be left empty.
1652*d5c09012SAndroid Build Coastguard Worker  FirewallPolicy firewall_policy = 8
1653*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
1654*d5c09012SAndroid Build Coastguard Worker}
1655*d5c09012SAndroid Build Coastguard Worker
1656*d5c09012SAndroid Build Coastguard Worker// An individual action. Each action represents what to do if a policy
1657*d5c09012SAndroid Build Coastguard Worker// matches.
1658*d5c09012SAndroid Build Coastguard Workermessage FirewallAction {
1659*d5c09012SAndroid Build Coastguard Worker  // An allow action continues processing a request unimpeded.
1660*d5c09012SAndroid Build Coastguard Worker  message AllowAction {}
1661*d5c09012SAndroid Build Coastguard Worker
1662*d5c09012SAndroid Build Coastguard Worker  // A block action serves an HTTP error code a prevents the request from
1663*d5c09012SAndroid Build Coastguard Worker  // hitting the backend.
1664*d5c09012SAndroid Build Coastguard Worker  message BlockAction {}
1665*d5c09012SAndroid Build Coastguard Worker
1666*d5c09012SAndroid Build Coastguard Worker  // An include reCAPTCHA script action involves injecting reCAPTCHA JavaScript
1667*d5c09012SAndroid Build Coastguard Worker  // code into the HTML returned by the site backend. This reCAPTCHA
1668*d5c09012SAndroid Build Coastguard Worker  // script is tasked with collecting user signals on the requested web page,
1669*d5c09012SAndroid Build Coastguard Worker  // issuing tokens as a cookie within the site domain, and enabling their
1670*d5c09012SAndroid Build Coastguard Worker  // utilization in subsequent page requests.
1671*d5c09012SAndroid Build Coastguard Worker  message IncludeRecaptchaScriptAction {}
1672*d5c09012SAndroid Build Coastguard Worker
1673*d5c09012SAndroid Build Coastguard Worker  // A redirect action returns a 307 (temporary redirect) response, pointing
1674*d5c09012SAndroid Build Coastguard Worker  // the user to a ReCaptcha interstitial page to attach a token.
1675*d5c09012SAndroid Build Coastguard Worker  message RedirectAction {}
1676*d5c09012SAndroid Build Coastguard Worker
1677*d5c09012SAndroid Build Coastguard Worker  // A substitute action transparently serves a different page than the one
1678*d5c09012SAndroid Build Coastguard Worker  // requested.
1679*d5c09012SAndroid Build Coastguard Worker  message SubstituteAction {
1680*d5c09012SAndroid Build Coastguard Worker    // Optional. The address to redirect to. The target is a relative path in
1681*d5c09012SAndroid Build Coastguard Worker    // the current host. Example: "/blog/404.html".
1682*d5c09012SAndroid Build Coastguard Worker    string path = 1 [(google.api.field_behavior) = OPTIONAL];
1683*d5c09012SAndroid Build Coastguard Worker  }
1684*d5c09012SAndroid Build Coastguard Worker
1685*d5c09012SAndroid Build Coastguard Worker  // A set header action sets a header and forwards the request to the
1686*d5c09012SAndroid Build Coastguard Worker  // backend. This can be used to trigger custom protection implemented on the
1687*d5c09012SAndroid Build Coastguard Worker  // backend.
1688*d5c09012SAndroid Build Coastguard Worker  message SetHeaderAction {
1689*d5c09012SAndroid Build Coastguard Worker    // Optional. The header key to set in the request to the backend server.
1690*d5c09012SAndroid Build Coastguard Worker    string key = 1 [(google.api.field_behavior) = OPTIONAL];
1691*d5c09012SAndroid Build Coastguard Worker
1692*d5c09012SAndroid Build Coastguard Worker    // Optional. The header value to set in the request to the backend server.
1693*d5c09012SAndroid Build Coastguard Worker    string value = 2 [(google.api.field_behavior) = OPTIONAL];
1694*d5c09012SAndroid Build Coastguard Worker  }
1695*d5c09012SAndroid Build Coastguard Worker
1696*d5c09012SAndroid Build Coastguard Worker  oneof firewall_action_oneof {
1697*d5c09012SAndroid Build Coastguard Worker    // The user request did not match any policy and should be allowed
1698*d5c09012SAndroid Build Coastguard Worker    // access to the requested resource.
1699*d5c09012SAndroid Build Coastguard Worker    AllowAction allow = 1;
1700*d5c09012SAndroid Build Coastguard Worker
1701*d5c09012SAndroid Build Coastguard Worker    // This action will deny access to a given page. The user will get an HTTP
1702*d5c09012SAndroid Build Coastguard Worker    // error code.
1703*d5c09012SAndroid Build Coastguard Worker    BlockAction block = 2;
1704*d5c09012SAndroid Build Coastguard Worker
1705*d5c09012SAndroid Build Coastguard Worker    // This action will inject reCAPTCHA JavaScript code into the HTML page
1706*d5c09012SAndroid Build Coastguard Worker    // returned by the site backend.
1707*d5c09012SAndroid Build Coastguard Worker    IncludeRecaptchaScriptAction include_recaptcha_script = 6;
1708*d5c09012SAndroid Build Coastguard Worker
1709*d5c09012SAndroid Build Coastguard Worker    // This action will redirect the request to a ReCaptcha interstitial to
1710*d5c09012SAndroid Build Coastguard Worker    // attach a token.
1711*d5c09012SAndroid Build Coastguard Worker    RedirectAction redirect = 5;
1712*d5c09012SAndroid Build Coastguard Worker
1713*d5c09012SAndroid Build Coastguard Worker    // This action will transparently serve a different page to an offending
1714*d5c09012SAndroid Build Coastguard Worker    // user.
1715*d5c09012SAndroid Build Coastguard Worker    SubstituteAction substitute = 3;
1716*d5c09012SAndroid Build Coastguard Worker
1717*d5c09012SAndroid Build Coastguard Worker    // This action will set a custom header but allow the request to continue
1718*d5c09012SAndroid Build Coastguard Worker    // to the customer backend.
1719*d5c09012SAndroid Build Coastguard Worker    SetHeaderAction set_header = 4;
1720*d5c09012SAndroid Build Coastguard Worker  }
1721*d5c09012SAndroid Build Coastguard Worker}
1722*d5c09012SAndroid Build Coastguard Worker
1723*d5c09012SAndroid Build Coastguard Worker// A FirewallPolicy represents a single matching pattern and resulting actions
1724*d5c09012SAndroid Build Coastguard Worker// to take.
1725*d5c09012SAndroid Build Coastguard Workermessage FirewallPolicy {
1726*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
1727*d5c09012SAndroid Build Coastguard Worker    type: "recaptchaenterprise.googleapis.com/FirewallPolicy"
1728*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/firewallpolicies/{firewallpolicy}"
1729*d5c09012SAndroid Build Coastguard Worker    plural: "firewallPolicies"
1730*d5c09012SAndroid Build Coastguard Worker    singular: "firewallPolicy"
1731*d5c09012SAndroid Build Coastguard Worker  };
1732*d5c09012SAndroid Build Coastguard Worker
1733*d5c09012SAndroid Build Coastguard Worker  // Identifier. The resource name for the FirewallPolicy in the format
1734*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/firewallpolicies/{firewallpolicy}`.
1735*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = IDENTIFIER];
1736*d5c09012SAndroid Build Coastguard Worker
1737*d5c09012SAndroid Build Coastguard Worker  // Optional. A description of what this policy aims to achieve, for
1738*d5c09012SAndroid Build Coastguard Worker  // convenience purposes. The description can at most include 256 UTF-8
1739*d5c09012SAndroid Build Coastguard Worker  // characters.
1740*d5c09012SAndroid Build Coastguard Worker  string description = 2 [(google.api.field_behavior) = OPTIONAL];
1741*d5c09012SAndroid Build Coastguard Worker
1742*d5c09012SAndroid Build Coastguard Worker  // Optional. The path for which this policy applies, specified as a glob
1743*d5c09012SAndroid Build Coastguard Worker  // pattern. For more information on glob, see the [manual
1744*d5c09012SAndroid Build Coastguard Worker  // page](https://man7.org/linux/man-pages/man7/glob.7.html).
1745*d5c09012SAndroid Build Coastguard Worker  // A path has a max length of 200 characters.
1746*d5c09012SAndroid Build Coastguard Worker  string path = 4 [(google.api.field_behavior) = OPTIONAL];
1747*d5c09012SAndroid Build Coastguard Worker
1748*d5c09012SAndroid Build Coastguard Worker  // Optional. A CEL (Common Expression Language) conditional expression that
1749*d5c09012SAndroid Build Coastguard Worker  // specifies if this policy applies to an incoming user request. If this
1750*d5c09012SAndroid Build Coastguard Worker  // condition evaluates to true and the requested path matched the path
1751*d5c09012SAndroid Build Coastguard Worker  // pattern, the associated actions should be executed by the caller. The
1752*d5c09012SAndroid Build Coastguard Worker  // condition string is checked for CEL syntax correctness on creation. For
1753*d5c09012SAndroid Build Coastguard Worker  // more information, see the [CEL spec](https://github.com/google/cel-spec)
1754*d5c09012SAndroid Build Coastguard Worker  // and its [language
1755*d5c09012SAndroid Build Coastguard Worker  // definition](https://github.com/google/cel-spec/blob/master/doc/langdef.md).
1756*d5c09012SAndroid Build Coastguard Worker  // A condition has a max length of 500 characters.
1757*d5c09012SAndroid Build Coastguard Worker  string condition = 5 [(google.api.field_behavior) = OPTIONAL];
1758*d5c09012SAndroid Build Coastguard Worker
1759*d5c09012SAndroid Build Coastguard Worker  // Optional. The actions that the caller should take regarding user access.
1760*d5c09012SAndroid Build Coastguard Worker  // There should be at most one terminal action. A terminal action is any
1761*d5c09012SAndroid Build Coastguard Worker  // action that forces a response, such as `AllowAction`,
1762*d5c09012SAndroid Build Coastguard Worker  // `BlockAction` or `SubstituteAction`.
1763*d5c09012SAndroid Build Coastguard Worker  // Zero or more non-terminal actions such as `SetHeader` might be
1764*d5c09012SAndroid Build Coastguard Worker  // specified. A single policy can contain up to 16 actions.
1765*d5c09012SAndroid Build Coastguard Worker  repeated FirewallAction actions = 6 [(google.api.field_behavior) = OPTIONAL];
1766*d5c09012SAndroid Build Coastguard Worker}
1767*d5c09012SAndroid Build Coastguard Worker
1768*d5c09012SAndroid Build Coastguard Worker// The request message to list memberships in a related account group.
1769*d5c09012SAndroid Build Coastguard Workermessage ListRelatedAccountGroupMembershipsRequest {
1770*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name for the related account group in the format
1771*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/relatedaccountgroups/{relatedaccountgroup}`.
1772*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
1773*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1774*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1775*d5c09012SAndroid Build Coastguard Worker      child_type: "recaptchaenterprise.googleapis.com/RelatedAccountGroupMembership"
1776*d5c09012SAndroid Build Coastguard Worker    }
1777*d5c09012SAndroid Build Coastguard Worker  ];
1778*d5c09012SAndroid Build Coastguard Worker
1779*d5c09012SAndroid Build Coastguard Worker  // Optional. The maximum number of accounts to return. The service might
1780*d5c09012SAndroid Build Coastguard Worker  // return fewer than this value. If unspecified, at most 50 accounts are
1781*d5c09012SAndroid Build Coastguard Worker  // returned. The maximum value is 1000; values above 1000 are coerced to 1000.
1782*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
1783*d5c09012SAndroid Build Coastguard Worker
1784*d5c09012SAndroid Build Coastguard Worker  // Optional. A page token, received from a previous
1785*d5c09012SAndroid Build Coastguard Worker  // `ListRelatedAccountGroupMemberships` call.
1786*d5c09012SAndroid Build Coastguard Worker  //
1787*d5c09012SAndroid Build Coastguard Worker  // When paginating, all other parameters provided to
1788*d5c09012SAndroid Build Coastguard Worker  // `ListRelatedAccountGroupMemberships` must match the call that provided the
1789*d5c09012SAndroid Build Coastguard Worker  // page token.
1790*d5c09012SAndroid Build Coastguard Worker  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
1791*d5c09012SAndroid Build Coastguard Worker}
1792*d5c09012SAndroid Build Coastguard Worker
1793*d5c09012SAndroid Build Coastguard Worker// The response to a `ListRelatedAccountGroupMemberships` call.
1794*d5c09012SAndroid Build Coastguard Workermessage ListRelatedAccountGroupMembershipsResponse {
1795*d5c09012SAndroid Build Coastguard Worker  // The memberships listed by the query.
1796*d5c09012SAndroid Build Coastguard Worker  repeated RelatedAccountGroupMembership related_account_group_memberships = 1;
1797*d5c09012SAndroid Build Coastguard Worker
1798*d5c09012SAndroid Build Coastguard Worker  // A token, which can be sent as `page_token` to retrieve the next page.
1799*d5c09012SAndroid Build Coastguard Worker  // If this field is omitted, there are no subsequent pages.
1800*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
1801*d5c09012SAndroid Build Coastguard Worker}
1802*d5c09012SAndroid Build Coastguard Worker
1803*d5c09012SAndroid Build Coastguard Worker// The request message to list related account groups.
1804*d5c09012SAndroid Build Coastguard Workermessage ListRelatedAccountGroupsRequest {
1805*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the project to list related account groups from, in
1806*d5c09012SAndroid Build Coastguard Worker  // the format `projects/{project}`.
1807*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
1808*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1809*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1810*d5c09012SAndroid Build Coastguard Worker      child_type: "recaptchaenterprise.googleapis.com/RelatedAccountGroup"
1811*d5c09012SAndroid Build Coastguard Worker    }
1812*d5c09012SAndroid Build Coastguard Worker  ];
1813*d5c09012SAndroid Build Coastguard Worker
1814*d5c09012SAndroid Build Coastguard Worker  // Optional. The maximum number of groups to return. The service might return
1815*d5c09012SAndroid Build Coastguard Worker  // fewer than this value. If unspecified, at most 50 groups are returned. The
1816*d5c09012SAndroid Build Coastguard Worker  // maximum value is 1000; values above 1000 are coerced to 1000.
1817*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
1818*d5c09012SAndroid Build Coastguard Worker
1819*d5c09012SAndroid Build Coastguard Worker  // Optional. A page token, received from a previous `ListRelatedAccountGroups`
1820*d5c09012SAndroid Build Coastguard Worker  // call. Provide this to retrieve the subsequent page.
1821*d5c09012SAndroid Build Coastguard Worker  //
1822*d5c09012SAndroid Build Coastguard Worker  // When paginating, all other parameters provided to
1823*d5c09012SAndroid Build Coastguard Worker  // `ListRelatedAccountGroups` must match the call that provided the page
1824*d5c09012SAndroid Build Coastguard Worker  // token.
1825*d5c09012SAndroid Build Coastguard Worker  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
1826*d5c09012SAndroid Build Coastguard Worker}
1827*d5c09012SAndroid Build Coastguard Worker
1828*d5c09012SAndroid Build Coastguard Worker// The response to a `ListRelatedAccountGroups` call.
1829*d5c09012SAndroid Build Coastguard Workermessage ListRelatedAccountGroupsResponse {
1830*d5c09012SAndroid Build Coastguard Worker  // The groups of related accounts listed by the query.
1831*d5c09012SAndroid Build Coastguard Worker  repeated RelatedAccountGroup related_account_groups = 1;
1832*d5c09012SAndroid Build Coastguard Worker
1833*d5c09012SAndroid Build Coastguard Worker  // A token, which can be sent as `page_token` to retrieve the next page.
1834*d5c09012SAndroid Build Coastguard Worker  // If this field is omitted, there are no subsequent pages.
1835*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
1836*d5c09012SAndroid Build Coastguard Worker}
1837*d5c09012SAndroid Build Coastguard Worker
1838*d5c09012SAndroid Build Coastguard Worker// The request message to search related account group memberships.
1839*d5c09012SAndroid Build Coastguard Workermessage SearchRelatedAccountGroupMembershipsRequest {
1840*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the project to search related account group
1841*d5c09012SAndroid Build Coastguard Worker  // memberships from. Specify the project name in the following format:
1842*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}`.
1843*d5c09012SAndroid Build Coastguard Worker  string project = 1 [
1844*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
1845*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1846*d5c09012SAndroid Build Coastguard Worker      type: "cloudresourcemanager.googleapis.com/Project"
1847*d5c09012SAndroid Build Coastguard Worker    }
1848*d5c09012SAndroid Build Coastguard Worker  ];
1849*d5c09012SAndroid Build Coastguard Worker
1850*d5c09012SAndroid Build Coastguard Worker  // Optional. The unique stable account identifier used to search connections.
1851*d5c09012SAndroid Build Coastguard Worker  // The identifier should correspond to an `account_id` provided in a previous
1852*d5c09012SAndroid Build Coastguard Worker  // `CreateAssessment` or `AnnotateAssessment` call. Either hashed_account_id
1853*d5c09012SAndroid Build Coastguard Worker  // or account_id must be set, but not both.
1854*d5c09012SAndroid Build Coastguard Worker  string account_id = 5 [(google.api.field_behavior) = OPTIONAL];
1855*d5c09012SAndroid Build Coastguard Worker
1856*d5c09012SAndroid Build Coastguard Worker  // Optional. Deprecated: use `account_id` instead.
1857*d5c09012SAndroid Build Coastguard Worker  // The unique stable hashed account identifier used to search connections. The
1858*d5c09012SAndroid Build Coastguard Worker  // identifier should correspond to a `hashed_account_id` provided in a
1859*d5c09012SAndroid Build Coastguard Worker  // previous `CreateAssessment` or `AnnotateAssessment` call. Either
1860*d5c09012SAndroid Build Coastguard Worker  // hashed_account_id or account_id must be set, but not both.
1861*d5c09012SAndroid Build Coastguard Worker  bytes hashed_account_id = 2
1862*d5c09012SAndroid Build Coastguard Worker      [deprecated = true, (google.api.field_behavior) = OPTIONAL];
1863*d5c09012SAndroid Build Coastguard Worker
1864*d5c09012SAndroid Build Coastguard Worker  // Optional. The maximum number of groups to return. The service might return
1865*d5c09012SAndroid Build Coastguard Worker  // fewer than this value. If unspecified, at most 50 groups are returned. The
1866*d5c09012SAndroid Build Coastguard Worker  // maximum value is 1000; values above 1000 are coerced to 1000.
1867*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL];
1868*d5c09012SAndroid Build Coastguard Worker
1869*d5c09012SAndroid Build Coastguard Worker  // Optional. A page token, received from a previous
1870*d5c09012SAndroid Build Coastguard Worker  // `SearchRelatedAccountGroupMemberships` call. Provide this to retrieve the
1871*d5c09012SAndroid Build Coastguard Worker  // subsequent page.
1872*d5c09012SAndroid Build Coastguard Worker  //
1873*d5c09012SAndroid Build Coastguard Worker  // When paginating, all other parameters provided to
1874*d5c09012SAndroid Build Coastguard Worker  // `SearchRelatedAccountGroupMemberships` must match the call that provided
1875*d5c09012SAndroid Build Coastguard Worker  // the page token.
1876*d5c09012SAndroid Build Coastguard Worker  string page_token = 4 [(google.api.field_behavior) = OPTIONAL];
1877*d5c09012SAndroid Build Coastguard Worker}
1878*d5c09012SAndroid Build Coastguard Worker
1879*d5c09012SAndroid Build Coastguard Worker// The response to a `SearchRelatedAccountGroupMemberships` call.
1880*d5c09012SAndroid Build Coastguard Workermessage SearchRelatedAccountGroupMembershipsResponse {
1881*d5c09012SAndroid Build Coastguard Worker  // The queried memberships.
1882*d5c09012SAndroid Build Coastguard Worker  repeated RelatedAccountGroupMembership related_account_group_memberships = 1;
1883*d5c09012SAndroid Build Coastguard Worker
1884*d5c09012SAndroid Build Coastguard Worker  // A token, which can be sent as `page_token` to retrieve the next page.
1885*d5c09012SAndroid Build Coastguard Worker  // If this field is omitted, there are no subsequent pages.
1886*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
1887*d5c09012SAndroid Build Coastguard Worker}
1888*d5c09012SAndroid Build Coastguard Worker
1889*d5c09012SAndroid Build Coastguard Worker// A membership in a group of related accounts.
1890*d5c09012SAndroid Build Coastguard Workermessage RelatedAccountGroupMembership {
1891*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
1892*d5c09012SAndroid Build Coastguard Worker    type: "recaptchaenterprise.googleapis.com/RelatedAccountGroupMembership"
1893*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/relatedaccountgroups/{relatedaccountgroup}/memberships/{membership}"
1894*d5c09012SAndroid Build Coastguard Worker    plural: "relatedAccountGroupMemberships"
1895*d5c09012SAndroid Build Coastguard Worker    singular: "relatedAccountGroupMembership"
1896*d5c09012SAndroid Build Coastguard Worker  };
1897*d5c09012SAndroid Build Coastguard Worker
1898*d5c09012SAndroid Build Coastguard Worker  // Required. Identifier. The resource name for this membership in the format
1899*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/relatedaccountgroups/{relatedaccountgroup}/memberships/{membership}`.
1900*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
1901*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = IDENTIFIER,
1902*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED
1903*d5c09012SAndroid Build Coastguard Worker  ];
1904*d5c09012SAndroid Build Coastguard Worker
1905*d5c09012SAndroid Build Coastguard Worker  // The unique stable account identifier of the member. The identifier
1906*d5c09012SAndroid Build Coastguard Worker  // corresponds to an `account_id` provided in a previous `CreateAssessment` or
1907*d5c09012SAndroid Build Coastguard Worker  // `AnnotateAssessment` call.
1908*d5c09012SAndroid Build Coastguard Worker  string account_id = 4;
1909*d5c09012SAndroid Build Coastguard Worker
1910*d5c09012SAndroid Build Coastguard Worker  // Deprecated: use `account_id` instead.
1911*d5c09012SAndroid Build Coastguard Worker  // The unique stable hashed account identifier of the member. The identifier
1912*d5c09012SAndroid Build Coastguard Worker  // corresponds to a `hashed_account_id` provided in a previous
1913*d5c09012SAndroid Build Coastguard Worker  // `CreateAssessment` or `AnnotateAssessment` call.
1914*d5c09012SAndroid Build Coastguard Worker  bytes hashed_account_id = 2 [deprecated = true];
1915*d5c09012SAndroid Build Coastguard Worker}
1916*d5c09012SAndroid Build Coastguard Worker
1917*d5c09012SAndroid Build Coastguard Worker// A group of related accounts.
1918*d5c09012SAndroid Build Coastguard Workermessage RelatedAccountGroup {
1919*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
1920*d5c09012SAndroid Build Coastguard Worker    type: "recaptchaenterprise.googleapis.com/RelatedAccountGroup"
1921*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/relatedaccountgroups/{relatedaccountgroup}"
1922*d5c09012SAndroid Build Coastguard Worker    plural: "relatedAccountGroups"
1923*d5c09012SAndroid Build Coastguard Worker    singular: "relatedAccountGroup"
1924*d5c09012SAndroid Build Coastguard Worker  };
1925*d5c09012SAndroid Build Coastguard Worker
1926*d5c09012SAndroid Build Coastguard Worker  // Required. Identifier. The resource name for the related account group in
1927*d5c09012SAndroid Build Coastguard Worker  // the format
1928*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/relatedaccountgroups/{related_account_group}`.
1929*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
1930*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = IDENTIFIER,
1931*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED
1932*d5c09012SAndroid Build Coastguard Worker  ];
1933*d5c09012SAndroid Build Coastguard Worker}
1934*d5c09012SAndroid Build Coastguard Worker
1935*d5c09012SAndroid Build Coastguard Worker// Settings specific to keys that can be used for WAF (Web Application
1936*d5c09012SAndroid Build Coastguard Worker// Firewall).
1937*d5c09012SAndroid Build Coastguard Workermessage WafSettings {
1938*d5c09012SAndroid Build Coastguard Worker  // Supported WAF features. For more information, see
1939*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/recaptcha-enterprise/docs/usecase#comparison_of_features.
1940*d5c09012SAndroid Build Coastguard Worker  enum WafFeature {
1941*d5c09012SAndroid Build Coastguard Worker    // Undefined feature.
1942*d5c09012SAndroid Build Coastguard Worker    WAF_FEATURE_UNSPECIFIED = 0;
1943*d5c09012SAndroid Build Coastguard Worker
1944*d5c09012SAndroid Build Coastguard Worker    // Redirects suspicious traffic to reCAPTCHA.
1945*d5c09012SAndroid Build Coastguard Worker    CHALLENGE_PAGE = 1;
1946*d5c09012SAndroid Build Coastguard Worker
1947*d5c09012SAndroid Build Coastguard Worker    // Use reCAPTCHA session-tokens to protect the whole user session on the
1948*d5c09012SAndroid Build Coastguard Worker    // site's domain.
1949*d5c09012SAndroid Build Coastguard Worker    SESSION_TOKEN = 2;
1950*d5c09012SAndroid Build Coastguard Worker
1951*d5c09012SAndroid Build Coastguard Worker    // Use reCAPTCHA action-tokens to protect user actions.
1952*d5c09012SAndroid Build Coastguard Worker    ACTION_TOKEN = 3;
1953*d5c09012SAndroid Build Coastguard Worker
1954*d5c09012SAndroid Build Coastguard Worker    // Use reCAPTCHA WAF express protection to protect any content other than
1955*d5c09012SAndroid Build Coastguard Worker    // web pages, like APIs and IoT devices.
1956*d5c09012SAndroid Build Coastguard Worker    EXPRESS = 5;
1957*d5c09012SAndroid Build Coastguard Worker  }
1958*d5c09012SAndroid Build Coastguard Worker
1959*d5c09012SAndroid Build Coastguard Worker  // Web Application Firewalls supported by reCAPTCHA Enterprise.
1960*d5c09012SAndroid Build Coastguard Worker  enum WafService {
1961*d5c09012SAndroid Build Coastguard Worker    // Undefined WAF
1962*d5c09012SAndroid Build Coastguard Worker    WAF_SERVICE_UNSPECIFIED = 0;
1963*d5c09012SAndroid Build Coastguard Worker
1964*d5c09012SAndroid Build Coastguard Worker    // Cloud Armor
1965*d5c09012SAndroid Build Coastguard Worker    CA = 1;
1966*d5c09012SAndroid Build Coastguard Worker
1967*d5c09012SAndroid Build Coastguard Worker    // Fastly
1968*d5c09012SAndroid Build Coastguard Worker    FASTLY = 3;
1969*d5c09012SAndroid Build Coastguard Worker
1970*d5c09012SAndroid Build Coastguard Worker    // Cloudflare
1971*d5c09012SAndroid Build Coastguard Worker    CLOUDFLARE = 4;
1972*d5c09012SAndroid Build Coastguard Worker  }
1973*d5c09012SAndroid Build Coastguard Worker
1974*d5c09012SAndroid Build Coastguard Worker  // Required. The WAF service that uses this key.
1975*d5c09012SAndroid Build Coastguard Worker  WafService waf_service = 1 [(google.api.field_behavior) = REQUIRED];
1976*d5c09012SAndroid Build Coastguard Worker
1977*d5c09012SAndroid Build Coastguard Worker  // Required. The WAF feature for which this key is enabled.
1978*d5c09012SAndroid Build Coastguard Worker  WafFeature waf_feature = 2 [(google.api.field_behavior) = REQUIRED];
1979*d5c09012SAndroid Build Coastguard Worker}
1980