ListResults (V1) parity mapping
This guide details the request and response mapping specifications and property parity analysis for migrating from the legacy Backstory Rules Engine V1 API (ListResults) to the modern Chronicle API (LegacySearchRuleResults).
Protocol and mapping overview
| Feature | Legacy API (ListResults V1) |
Modern Chronicle API (LegacySearchRuleResults) |
|---|---|---|
| HTTP method | GET |
GET |
| Permissions | Partner token or legacy API keys | chronicle.googleapis.com/legacies.legacySearchRuleResults |
Request payload field-by-field parity
The modern Chronicle API LegacySearchRuleResultsRequest scopes queries under parent project instances and renames execution tracker segments.
Legacy field (ListResultsRequest V1) |
Modern field (LegacySearchRuleResultsRequest) |
Field type | Parity and migration notes |
|---|---|---|---|
| — | instance (in HTTP path) |
string |
Google Cloud scoping context / new field: Scopes the search queries under target instance environments: projects/{project}/locations/{location}/instances/{instance}. |
name |
rule_id / version_timestamp |
string -> string / Timestamp |
Architectural realignment: Legacy listed results by target job run identifier using name (LRO name). The modern API lists results by target rule UUID (rule_id) and optional version revision selector (version_timestamp). Rename to ruleId and versionTimestamp in JSON. |
| — | time_range |
Interval |
New parameter: Bounds the search to target event start and end time windows (Interval). Rename to timeRange in JSON. |
page_size |
max_matches |
int32 |
Renamed: Sets the limit of returned matching detections (default 10000). Rename to maxMatches in JSON. |
page_token |
— (retired) | string |
Retired: Token-based pagination is retired in favor of specifying bounding window filters (time_range). |
| — | rule_source |
enum |
New parameter: Dictates whether rule queries evaluate client-authored rules (CUSTOMER) or Uppercase system-provided rules (UPPERCASE). Rename to ruleSource in JSON. |
| — | max_resp_size_bytes |
int32 |
New field: Restricts response size in bytes to prevent large message serialization overflows. Rename to maxRespSizeBytes in JSON. |
Response payload field-by-field parity
While legacy backstory V1 returned a flat array of RunResult messages containing raw UDM event properties, the modern API returns compiled YaraL2Detection objects.
Legacy field (ListResultsResponse V1) |
Modern field (LegacySearchRuleResultsResponse) |
Field type | Parity and migration notes |
|---|---|---|---|
results |
yara_l_2_detections |
repeated RunResult -> repeated YaraL2Detection |
Renamed / restructured: Legacy returned RunResult items containing raw UDM events. The modern API returns structured YaraL2Detection lists capturing the full match details and custom bindings. Rename to yaraL2Detections in JSON. |
| — | yara_l_2_too_many_detections |
bool |
New field: Flag indicating if more detections matched than allowed by max_matches. Rename to yaraL2TooManyDetections in JSON. |
| — | resp_too_large_detections_truncated |
bool |
New field: Truncation status indicator flagging whether matching detections were omitted to respect max_resp_size_bytes limits. |
next_page_token |
— (retired) | string |
Retired: Paging continuation tokens are retired in favor of window bounding filters. |
Key differences
- Google Cloud project scoping integration:
- Scoped natively under parent project instance folder bindings (
instancepath parameter).
- Scoped natively under parent project instance folder bindings (
- Identification shift:
- Legacy indexed output lists using temporary job run identifiers (
nameoperation paths). - Modern Chronicle API index queries target the rule UUID (
rule_id) and timestamps directly, allowing history extraction without mapping back to operations.
- Legacy indexed output lists using temporary job run identifiers (
- Detection representation:
- Decouples UDM event lists into structured compiled detection models (
yara_l_2_detections), exposing matched keys and syntax contexts.
- Decouples UDM event lists into structured compiled detection models (
- Response size protection:
- Introduces
max_resp_size_bytesand truncation indicators (resp_too_large_detections_truncated) to secure clients against large memory allocations.
- Introduces
- IAM permissions:
- Request validation maps to standard Cloud IAM permission validation check (
chronicle.googleapis.com/legacies.legacySearchRuleResults).
- Request validation maps to standard Cloud IAM permission validation check (