Collect reCAPTCHA Enterprise logs
This document describes how you can collect reCAPTCHA Enterprise logs by enabling Google Cloud telemetry ingestion to Google Security Operations and how log fields of reCAPTCHA Enterprise logs map to Google Security Operations Unified Data Model (UDM) fields.
For more information, see Data ingestion to Google Security Operations overview.
A typical deployment consists of reCAPTCHA Enterprise logs that are enabled for ingestion to Google Security Operations. Each customer deployment might differ and might be more complex.
Consider a deployment that contains the following components:
- Google Cloud: The Google Cloud services and products from which you collect logs. 
- reCAPTCHA Enterprise logs: The reCAPTCHA Enterprise logs that are enabled for ingestion to Google Security Operations. 
- Google Security Operations: Google Security Operations retains and analyzes the logs from reCAPTCHA Enterprise. 
You need to use an ingestion label to identify the parser which normalizes raw log data to structured UDM format. This document applies to the parser with the GCP_RECAPTCHA_ENTERPRISE ingestion label.
Before you begin
- Ensure that all systems in the deployment architecture are configured in the UTC time zone. 
- Ensure that you have enabled platform logging for reCAPTCHA Enterprise specifically for the following: - Assessment logs
- Annotation logs
 
Configure Google Cloud for ingestion
To ingest reCAPTCHA Enterprise logs to Google Security Operations, follow the steps on the Ingest Google Cloud data to Google Security Operations page.
If you encounter issues when you ingest reCAPTCHA Enterprise logs, contact Google Security Operations support.
Field mapping reference
Field mapping reference: reCAPTCHA Enterprise - Assessment
The following table lists the log fields of the Assessment log type and their corresponding UDM fields.
| Log field | UDM mapping | Logic | 
|---|---|---|
|  | metadata.product_name | The metadata.product_nameUDM field is set toreCAPTCHA. | 
|  | metadata.vendor_name | The metadata.vendor_nameUDM field is set toGoogle Cloud Platform. | 
|  | metadata.event_type | The metadata.event_typeUDM field is set toUSER_UNCATEGORIZED. | 
| jsonPayload.@type | metadata.product_event_type | |
| jsonPayload.name | security_result.detection_fields[json_payload_name] | |
| insertId | metadata.product_log_id | |
| timestamp | metadata.event_timestamp | |
| logName | metadata.url_back_to_product | The https://console.cloud.google.com/logs?%{logName}field is mapped to themetadata.url_back_to_productUDM field. | 
| receiveTimestamp | metadata.collected_timestamp | |
| resource.labels.key_id | target.resource.product_object_id | |
| resource.type | target.resource.resource_subtype | |
| resource.labels.location | target.location.name | |
| resource.labels.resource_container | target.resource.attribute.labels[resource_labels_resource_container] | |
| labels.backend_language | target.resource.attribute.labels[labels_backend_language] | |
| labels.demo_key | target.resource.attribute.labels[labels_demo_key] | |
| jsonPayload.event.userAgent | network.http.user_agent | |
| jsonPayload.event.userIpAddress | principal.ip | |
|  | principal.resource.resource_type | If jsonPayload.event.tokenlog field value is not empty, thenprincipal.resource.resource_typeUDM field is set toCREDENTIAL. | 
| jsonPayload.event.token | principal.resource.product_object_id | |
| jsonPayload.event.siteKey | security_result.detection_fields[event_site_key] | |
| jsonPayload.event.hashedAccountId | principal.user.attribute.labels[event_hashed_account_id] | |
| jsonPayload.event.expectedAction | principal.user.attribute.labels[event_expected_action] | |
| jsonPayload.tokenProperties.action | principal.resource.attribute.labels[token_properties_action] | |
| jsonPayload.tokenProperties.createTime | principal.resource.attribute.creation_time | |
| jsonPayload.tokenProperties.hostname | target.hostname | |
| jsonPayload.tokenProperties.invalidReason | principal.resource.attribute.labels[token_properties_invalid_reason] | |
| jsonPayload.tokenProperties.valid | principal.resource.attribute.labels[token_properties_valid] | |
| jsonPayload.tokenProperties.androidPackageName | principal.resource.attribute.labels[token_properties_android_package_name] | |
| jsonPayload.tokenProperties.iosBundleId | principal.resource.attribute.labels[token_properties_ios_bundle_id] | |
|  | security_result.verdict_info.verdict_type | If the jsonPayload.riskAnalysis.reasonslog field value is not empty, then thesecurity_result.verdict_info.verdict_typeUDM field is set toPROVIDER_ML_VERDICT. | 
| jsonPayload.riskAnalysis.reasons | security_result.verdict_info.category_details | If the indexvalue is equal to0, then thejsonPayload.riskAnalysis.reasonslog field is mapped to thesecurity_result.verdict_info.category_detailsUDM field.Else, the jsonPayload.riskAnalysis.reasonslog field is mapped to thesecurity_result.detection_fields.risk_analysis_reasonsUDM field. | 
| jsonPayload.riskAnalysis.reasons | security_result.detection_fields[risk_analysis_reasons] | If the indexvalue is equal to0, then thejsonPayload.riskAnalysis.reasonslog field is mapped to thesecurity_result.verdict_info.category_detailsUDM field.Else, the jsonPayload.riskAnalysis.reasonslog field is mapped to thesecurity_result.detection_fields.risk_analysis_reasonsUDM field. | 
| jsonPayload.riskAnalysis.score | security_result.risk_score | |
| jsonPayload.riskAnalysis.extendedVerdictReasons | security_result.detection_fields[risk_analysis_extended_verdict_reasons] | |
| jsonPayload.event.express | additional.fields[event_express] | |
| jsonPayload.event.requestedUri | target.url | |
| jsonPayload.event.wafTokenAssessment | security_result.detection_fields[event_waf_token_assessment] | |
| jsonPayload.event.ja3 | network.tls.client.ja3 | |
| jsonPayload.event.headers | additional.fields[event_headers_%{index}] | The jsonPayload.event.headerslog field is mapped to theadditional.fields[event_headers_%{index}]UDM field. | 
| jsonPayload.event.firewallPolicyEvaluation | additional.fields[event_firewall_policy_evaluation] | |
| jsonPayload.event.userInfo.createAccountTime | principal.user.attribute.creation_time | |
| jsonPayload.event.userInfo.accountId | principal.user.userid | If the jsonPayload.event.userInfo.accountIdlog field value is not empty, then thejsonPayload.event.userInfo.accountIdlog field is mapped to theprincipal.user.useridUDM field.Else, the jsonPayload.event.transactionData.user.accountId log field is mapped to theprincipal.user.useridUDM field. | 
| jsonPayload.event.userInfo.userIds.email | principal.user.email_addresses | |
| jsonPayload.event.userInfo.userIds.phoneNumber | principal.user.phone_numbers | |
| jsonPayload.event.userInfo.userIds.username | principal.user.user_display_name | If the indexvalue is equal to0, then thejsonPayload.event.userInfo.userIds.usernamelog field is mapped to theprincipal.user.user_display_nameUDM field.Else, the jsonPayload.event.userInfo.userIds.usernamelog field is mapped to theprincipal.user.attribute.labels.event_user_info_user_ids_usernameUDM field. | 
| jsonPayload.event.userInfo.userIds.username | principal.user.attribute.labels[event_user_info_user_ids_username] | If the indexvalue is equal to0, then thejsonPayload.event.userInfo.userIds.usernamelog field is mapped to theprincipal.user.user_display_nameUDM field.Else, the jsonPayload.event.userInfo.userIds.usernamelog field is mapped to theprincipal.user.attribute.labels.event_user_info_user_ids_usernameUDM field. | 
| jsonPayload.event.transactionData.transactionId | security_result.detection_fields[event_transaction_data_transaction_id] | |
| jsonPayload.event.transactionData.paymentMethod | security_result.detection_fields[event_transaction_data_payment_method] | |
| jsonPayload.event.transactionData.cardBin | security_result.detection_fields[event_transaction_data_card_bin] | |
| jsonPayload.event.transactionData.cardLastFour | security_result.detection_fields[event_transaction_data_card_last_four] | |
| jsonPayload.event.transactionData.currencyCode | security_result.detection_fields[event_transaction_data_currency_code] | |
| jsonPayload.event.transactionData.value | security_result.detection_fields[event_transaction_data_value] | |
| jsonPayload.event.transactionData.shippingValue | security_result.detection_fields[event_transaction_data_shipping_value] | |
| jsonPayload.event.transactionData.shippingAddress.recipient | principal.user.attribute.labels[event_transaction_data_shipping_address_recipient] | |
| jsonPayload.event.transactionData.shippingAddress.address | principal.user.personal_address.name | If the indexvalue is equal to0, then thejsonPayload.event.transactionData.shippingAddress.addresslog field is mapped to theprincipal.user.personal_address.nameUDM field.Else, the jsonPayload.event.transactionData.shippingAddress.addresslog field is mapped to theprincipal.user.attribute.labels.event_transaction_data_shipping_address_addressUDM field. | 
| jsonPayload.event.transactionData.shippingAddress.address | principal.user.attribute.labels[event_transaction_data_shipping_address_address] | If the indexvalue is equal to0, then thejsonPayload.event.transactionData.shippingAddress.addresslog field is mapped to theprincipal.user.personal_address.nameUDM field.Else, the jsonPayload.event.transactionData.shippingAddress.addresslog field is mapped to theprincipal.user.attribute.labels.event_transaction_data_shipping_address_addressUDM field. | 
| jsonPayload.event.transactionData.shippingAddress.locality | principal.user.personal_address.city | |
| jsonPayload.event.transactionData.shippingAddress.administrativeArea | principal.user.personal_address.state | |
| jsonPayload.event.transactionData.shippingAddress.regionCode | principal.user.personal_address.country_or_region | |
| jsonPayload.event.transactionData.shippingAddress.postalCode | principal.user.attribute.labels[event_transaction_data_shipping_address_postal_code] | |
| jsonPayload.event.transactionData.billingAddress.recipient | about.user.attribute.labels[event_transaction_data_billing_address_recipient] | |
| jsonPayload.event.transactionData.billingAddress.address | about.user.personal_address.name | If the indexvalue is equal to0, then thejsonPayload.event.transactionData.billingAddress.addresslog field is mapped to theabout.user.personal_address.nameUDM field.Else, the jsonPayload.event.transactionData.billingAddress.addresslog field is mapped to theabout.user.attribute.labels.event_transaction_data_billing_address_addressUDM field. | 
| jsonPayload.event.transactionData.billingAddress.address | about.user.attribute.labels[event_transaction_data_billing_address_address] | If the indexvalue is equal to0, then thejsonPayload.event.transactionData.billingAddress.addresslog field is mapped to theabout.user.personal_address.nameUDM field.Else, the jsonPayload.event.transactionData.billingAddress.addresslog field is mapped to theabout.user.attribute.labels.event_transaction_data_billing_address_addressUDM field. | 
| jsonPayload.event.transactionData.billingAddress.locality | about.user.personal_address.city | |
| jsonPayload.event.transactionData.billingAddress.administrativeArea | about.user.personal_address.state | |
| jsonPayload.event.transactionData.billingAddress.regionCode | about.user.personal_address.country_or_region | |
| jsonPayload.event.transactionData.billingAddress.postalCode | about.user.attribute.labels[event_transaction_data_billing_address_postal_code] | |
| jsonPayload.event.transactionData.user.accountId | principal.user.userid | If the jsonPayload.event.userInfo.accountIdlog field value is not empty, then thejsonPayload.event.userInfo.accountIdlog field is mapped to theprincipal.user.useridUDM field.Else, the jsonPayload.event.transactionData.user.accountId log field is mapped to theprincipal.user.useridUDM field. | 
| jsonPayload.event.transactionData.user.creationMs | principal.user.attribute.creation_time | |
| jsonPayload.event.transactionData.user.email | principal.user.email_addresses | |
| jsonPayload.event.transactionData.user.emailVerified | principal.user.attribute.labels[event_transaction_data_user_email_verified] | |
| jsonPayload.event.transactionData.user.phoneNumber | principal.user.phone_numbers | |
| jsonPayload.event.transactionData.user.phoneVerified | principal.user.attribute.labels[event_transaction_data_user_phone_verified] | |
| jsonPayload.event.transactionData.merchants.accountId | about.user.userid | |
| jsonPayload.event.transactionData.merchants.creationMs | about.user.attribute.creation_time | |
| jsonPayload.event.transactionData.merchants.email | about.user.email_addresses | |
| jsonPayload.event.transactionData.merchants.emailVerified | about.user.attribute.labels[event_transaction_data_merchants_email_verified] | |
| jsonPayload.event.transactionData.merchants.phoneNumber | about.user.phone_numbers | |
| jsonPayload.event.transactionData.merchants.phoneVerified | about.user.attribute.labels[event_transaction_data_merchants_phone_verified] | |
| jsonPayload.event.transactionData.gatewayInfo.name | security_result.detection_fields[event_transaction_data_gateway_info_name] | |
| jsonPayload.event.transactionData.gatewayInfo.gatewayResponseCode | security_result.detection_fields[event_transaction_data_gateway_info_gateway_response_code] | |
| jsonPayload.event.transactionData.gatewayInfo.avsResponseCode | security_result.detection_fields[event_transaction_data_gateway_info_avs_response_code] | |
| jsonPayload.event.transactionData.gatewayInfo.cvvResponseCode | security_result.detection_fields[event_transaction_data_gateway_info_cvv_response_code] | |
| jsonPayload.event.transactionData.items.name | security_result.detection_fields[event_transaction_data_items_name] | |
| jsonPayload.event.transactionData.items.value | security_result.detection_fields[event_transaction_data_items_value] | |
| jsonPayload.event.transactionData.items.quantity | security_result.detection_fields[event_transaction_data_items_quantity] | |
| jsonPayload.event.transactionData.items.merchantAccountId | security_result.detection_fields[event_transaction_data_items_merchant_account_id] | |
| jsonPayload.accountVerification.endpoints.requestToken | principal.user.attribute.labels[account_verification_endpoint_request_token] | |
| jsonPayload.accountVerification.endpoints.lastVerificationTime | principal.user.attribute.labels[account_verification_endpoint_last_verification_time] | |
| jsonPayload.accountVerification.endpoints.emailAddress | principal.user.email_addresses | |
| jsonPayload.accountVerification.endpoints.phoneNumber | principal.user.phone_numbers | |
| jsonPayload.accountVerification.languageCode | additional.fields[account_verification_language_code] | |
|  | security_result.action | If the jsonPayload.accountVerification.latestVerificationResultlog field value is equal toSUCCESS_USER_VERIFIED, then thesecurity_result.actionUDM field is set toCHALLENGE.Else, if the jsonPayload.accountVerification.latestVerificationResultlog field value is equal toERROR_USER_NOT_VERIFIED, then thesecurity_result.actionUDM field is set toFAIL.Else, if the jsonPayload.accountVerification.latestVerificationResultlog field value is equal toERROR_RECIPIENT_NOT_ALLOWED, then thesecurity_result.actionUDM field is set toBLOCK.Else, if the jsonPayload.accountVerification.latestVerificationResultlog field value is equal toERROR_VERDICT_MISMATCH, then thesecurity_result.actionUDM field is set toALLOW_WITH_MODIFICATION.Else, the security_result.actionUDM field is set toUNKNOWN_ACTION. | 
| jsonPayload.accountVerification.latestVerificationResult | security_result.action_details | |
| jsonPayload.accountDefenderAssessment.labels | security_result.detection_fields[account_defender_assessment_labels] | |
| jsonPayload.privatePasswordLeakVerification.lookupHashPrefix | principal.user.attribute.labels[private_password_leak_verification_lookup_hash_prefix] | |
| jsonPayload.privatePasswordLeakVerification.encryptedUserCredentialsHash | principal.user.attribute.labels[private_password_leak_verification_encrypted_user_credentials_hash] | |
| jsonPayload.privatePasswordLeakVerification.encryptedLeakMatchPrefixes | principal.user.attribute.labels[private_password_leak_verification_encrypted_leak_match_prefixes] | |
| jsonPayload.privatePasswordLeakVerification.reencryptedUserCredentialsHash | principal.user.attribute.labels[private_password_leak_verification_reencrypted_user_credentials_hash] | |
|  | network.http.response_code | If the jsonPayload.firewallPolicyAssessment.error.codelog field value is equal to0, then thenetwork.http.response_codeUDM field is set to200.Else, if the jsonPayload.firewallPolicyAssessment.error.codelog field value contains one of the following values, then thenetwork.http.response_codeUDM field is set to400.
 jsonPayload.firewallPolicyAssessment.error.codelog field value is equal to16, then thenetwork.http.response_codeUDM field is set to401.Else, if the jsonPayload.firewallPolicyAssessment.error.codelog field value is equal to7, then thenetwork.http.response_codeUDM field is set to403.Else, if the jsonPayload.firewallPolicyAssessment.error.codelog field value is equal to5, then thenetwork.http.response_codeUDM field is set to404.Else, if the jsonPayload.firewallPolicyAssessment.error.codelog field value contains one of the following values, then thenetwork.http.response_codeUDM field is set to409.
 jsonPayload.firewallPolicyAssessment.error.codelog field value is equal to8, then thenetwork.http.response_codeUDM field is set to429.Else, if the jsonPayload.firewallPolicyAssessment.error.codelog field value is equal to1, then thenetwork.http.response_codeUDM field is set to499.Else, if the jsonPayload.firewallPolicyAssessment.error.codelog field value contains one of the following values, then thenetwork.http.response_codeUDM field is set to500.
 jsonPayload.firewallPolicyAssessment.error.codelog field value is equal to12, then thenetwork.http.response_codeUDM field is set to501.Else, if the jsonPayload.firewallPolicyAssessment.error.codelog field value is equal to14, then thenetwork.http.response_codeUDM field is set to503.Else the jsonPayload.firewallPolicyAssessment.error.codelog field value is equal to4, then thenetwork.http.response_codeUDM field is set to504. | 
| jsonPayload.firewallPolicyAssessment.error.message | security_result.detection_fields[firewall_policy_assessment_error_message] | |
| jsonPayload.firewallPolicyAssessment.error.details | security_result.detection_fields[firewall_policy_assessment_error_details] | |
| jsonPayload.fraudPreventionAssessment.transactionRisk | security_result.detection_fields[fraud_prevention_assessment_transaction_risk] | |
| jsonPayload.fraudPreventionAssessment.stolenInstrumentVerdict.risk | security_result.detection_fields[fraud_prevention_assessment_stolen_instrument_verdict_risk] | |
| jsonPayload.fraudPreventionAssessment.cardTestingVerdict.risk | security_result.detection_fields[fraud_prevention_assessment_card_testing_erdict_risk] | |
| jsonPayload.fraudPreventionAssessment.behavioralTrustVerdict.trust | security_result.detection_fields[fraud_prevention_assessment_behavioral_trust_verdict_trust] | |
| jsonPayload.fraudSignals.userSignals.activeDaysLowerBound | security_result.detection_fields[fraud_signals_user_signals_active_days_lower_bound] | |
| jsonPayload.fraudSignals.userSignals.syntheticRisk | security_result.detection_fields[fraud_signals_user_signals_synthetic_risk] | |
| jsonPayload.fraudSignals.cardSignals.cardLabels | security_result.detection_fields[fraud_signals_card_signals_card_labels] | |
| jsonPayload.firewallPolicyAssessment.firewallPolicy.name | intermediary.resource.name | |
|  | intermediary.resource.resource_type | If the jsonPayload.firewallPolicyAssessment.firewallPolicy.namelog field value is not empty, then theintermediary.resource.resource_typeUDM field is set toFIREWALL_RULE. | 
| jsonPayload.firewallPolicyAssessment.firewallPolicy.description | intermediary.resource.attribute.labels[firewall_policy_assessment_description] | |
| jsonPayload.firewallPolicyAssessment.firewallPolicy.path | intermediary.resource.attribute.labels[firewall_policy_assessment_path] | |
| jsonPayload.firewallPolicyAssessment.firewallPolicy.conditions | intermediary.resource.attribute.labels[firewall_policy_assessment_conditions] | |
|  | security_result.action | If the jsonPayload.firewallPolicyAssessment.firewallPolicy.actions.allowlog field value is not empty, then thesecurity_result.actionUDM field is set toALLOW. | 
|  | security_result.action | If the jsonPayload.firewallPolicyAssessment.firewallPolicy.actions.blocklog field value is not empty, then thesecurity_result.actionUDM field is set toBLOCK. | 
|  | security_result.action | If the jsonPayload.firewallPolicyAssessment.firewallPolicy.actions.redirectlog field value is not empty, then thesecurity_result.actionUDM field is set toCHALLENGE. | 
| jsonPayload.firewallPolicyAssessment.firewallPolicy.actions.substitute.path | target.url_metadata.last_final_url | If the indexvalue is equal to0, then thejsonPayload.firewallPolicyAssessment.firewallPolicy.actions.substitute.pathlog field is mapped to thetarget.url_metadata.last_final_urlUDM field.Else, the jsonPayload.firewallPolicyAssessment.firewallPolicy.actions.substitute.pathlog field is mapped to theintermediary.resource.attribute.labels.firewall_policy_assessment_firewall_policy_actions_substitute_pathUDM field. | 
| jsonPayload.firewallPolicyAssessment.firewallPolicy.actions.substitute.path | intermediary.resource.attribute.labels[firewall_policy_assessment_firewall_policy_actions_substitute_path] | If the indexvalue is equal to0, then thejsonPayload.firewallPolicyAssessment.firewallPolicy.actions.substitute.pathlog field is mapped to thetarget.url_metadata.last_final_urlUDM field.Else, the jsonPayload.firewallPolicyAssessment.firewallPolicy.actions.substitute.pathlog field is mapped to theintermediary.resource.attribute.labels.firewall_policy_assessment_firewall_policy_actions_substitute_pathUDM field. | 
| jsonPayload.firewallPolicyAssessment.firewallPolicy.actions.setHeader.key | intermediary.resource.attribute.labels[firewall_policy_assessment_firewall_policy_actions_set_header_key] | |
| jsonPayload.firewallPolicyAssessment.firewallPolicy.actions.setHeader.value | intermediary.resource.attribute.labels[firewall_policy_assessment_firewall_policy_actions_set_header_value] | 
Field mapping reference: reCAPTCHA Enterprise - Annotation
The following table lists the log fields of the Annotation log type and their corresponding UDM fields.
| Log field | UDM mapping | Logic | 
|---|---|---|
|  | metadata.product_name | The metadata.product_nameUDM field is set toreCAPTCHA. | 
|  | metadata.vendor_name | The metadata.vendor_nameUDM field is set toGoogle Cloud Platform. | 
|  | metadata.event_type | The metadata.event_typeUDM field is set toGENERIC_EVENT. | 
| jsonPayload.@type | metadata.product_event_type | |
| insertId | metadata.product_log_id | |
| timestamp | metadata.event_timestamp | |
| logName | metadata.url_back_to_product | The https://console.cloud.google.com/logs?%{logName}field is mapped to themetadata.url_back_to_productUDM field. | 
| receiveTimestamp | metadata.collected_timestamp | |
| jsonPayload.name | security_result.detection_fields[json_payload_name] | |
| resource.labels.key_id | target.resource.product_object_id | |
| resource.type | target.resource.resource_subtype | |
| resource.labels.location | target.location.name | |
| resource.labels.resource_container | target.resource.attribute.labels[resource_labels_resource_container] | |
| labels.backend_language | target.resource.attribute.labels[labels_backend_language] | |
| labels.demo_key | target.resource.attribute.labels[labels_demo_key] | |
|  | security_result.verdict_info.verdict_response | If the jsonPayload.annotationlog field value is equal toLEGITIMATE, then thesecurity_result.verdict_info.verdict_responseUDM field is set toBENIGN.Else, if the jsonPayload.annotationlog field value is equal toFRAUDULENT, then thesecurity_result.verdict_info.verdict_responseUDM field is set toMALICIOUS.Else, the jsonPayload.annotationlog field value is equal toANNOTATION_UNSPECIFIED, then thesecurity_result.verdict_info.verdict_responseUDM field is set toVERDICT_RESPONSE_UNSPECIFIED. | 
| jsonPayload.reasons | security_result.verdict_info.category_details | If the indexvalue is equal to0, then thejsonPayload.reasonslog field is mapped to thesecurity_result.verdict_info.category_detailsUDM field.Else, the jsonPayload.reasonslog field is mapped to thesecurity_result.detection_fields.reasonsUDM field. | 
| jsonPayload.reasons | security_result.detection_fields[reasons] | If the indexvalue is equal to0, then thejsonPayload.reasonslog field is mapped to thesecurity_result.verdict_info.category_detailsUDM field.Else, the jsonPayload.reasonslog field is mapped to thesecurity_result.detection_fields.reasonsUDM field. | 
| jsonPayload.accountId | target.user.userid | |
| jsonPayload.hashedAccountId | target.user.attribute.labels[hashed_account_id] | |
| jsonPayload.transactionEvent.eventType | security_result.detection_fields[transaction_event_event_type] | |
| jsonPayload.transactionEvent.reason | security_result.detection_fields[transaction_event_reason] | |
| jsonPayload.transactionEvent.value | security_result.detection_fields[transaction_event_value] | |
| jsonPayload.transactionEvent.eventTime | security_result.detection_fields[transaction_event_event_time] | 
What's next
Need more help? Get answers from Community members and Google SecOps professionals.