ArchiveRule (V2) parity mapping
This guide details the request and response mapping specifications and property parity analysis for migrating from the legacy Backstory Rules Engine V2 API (ArchiveRule) to the modern Chronicle API (UpdateRuleDeployment).
Protocol and mapping overview
| Feature | Legacy API (ArchiveRule V2) |
Modern Chronicle API (UpdateRuleDeployment) |
|---|---|---|
| HTTP method | POST |
PATCH |
| Permissions | Partner token or legacy API keys | chronicle.googleapis.com/ruleDeployments.update |
Request payload field-by-field parity
The legacy backstory API implemented archiving as a dedicated POST RPC endpoint. The modern Chronicle API models archiving as a PATCH modification of the archived boolean attribute on RuleDeployment.
Legacy field (ArchiveRuleRequest) |
Modern field (UpdateRuleDeploymentRequest / RuleDeployment) |
Field type | Parity & migration notes |
|---|---|---|---|
version_id |
rule_deployment.name (in HTTP path) |
string |
Google Cloud scoping / resource unification: Legacy passed {rule_id} (or {rule_id}@{version_ts}) in version_id. Modern archiving targets the Rule's deployment path (excluding revisions): projects/{project}/locations/{location}/instances/{instance}/rules/{rule_id}/deployment. |
| — | rule_deployment.archived |
bool |
Target attribute mapping: To archive a rule, set archived = true. To unarchive a rule (migrating from UnarchiveRule), set archived = false. |
| — | update_mask |
FieldMask |
Required mask: Include archived in JSON updateMask. |
[!CAUTION] Ensure that
enabled = false(rule deployment is disabled) before settingarchived = true, as active rules cannot be archived.
Response payload field-by-field parity
In legacy backstory, ArchiveRule returned an empty response. In the modern API, UpdateRuleDeployment returns the modified deployment state.
Legacy field (Empty response) |
Modern field (RuleDeployment response) |
Field type | Parity & migration notes |
|---|---|---|---|
google.protobuf.Empty |
name |
string |
Canonical resource path name: projects/{project}/locations/{location}/instances/{instance}/rules/{rule_id}/deployment. |
| — | archived |
bool |
Returns true confirming rule archiving. |
| — | archive_time |
Timestamp |
Populated timestamp indicating when archiving was applied. Rename to archiveTime in JSON. |
| — | enabled, alerting, or run_frequency |
bool or enum |
Returns other deployment properties (where enabled = false and alerting = false are automatically applied upon successful archiving). |
Key differences
- Google Cloud project scoping integration:
- Scoped natively under parent project instance folder bindings (
rule_deployment.namepath parameter).
- Scoped natively under parent project instance folder bindings (
- Stateful attributes (archived):
- Rather than launching custom
POSTendpoints:archiveor:unarchive, archiving is parameterized as a boolean flagarchived = trueinside the sub-resourceRuleDeployment.
- Rather than launching custom
- Execution dependencies:
- The modern API enforces validation rules: attempting to archive an active rule (
enabled = true) fails. The client must disable rule execution before submitting the archiving request.
- The modern API enforces validation rules: attempting to archive an active rule (
- IAM permissions:
- Request validation maps to standard Cloud IAM permission check (
chronicle.googleapis.com/ruleDeployments.update).
- Request validation maps to standard Cloud IAM permission check (