{
  "db_peer": {
    "assignment_source": "bootstrap",
    "cooldown_until": null,
    "egress_class": "cs3",
    "enabled": true,
    "forced": false,
    "node_id": "ddn-test",
    "peer_id": "a3cbe3b5-8416-4847-b5ee-21f42359b465",
    "reason": "activity_sampler_idle_no_delta",
    "state": "idle",
    "target_id": "cs3_vpn5",
    "tunnel_ip": "10.253.1.12"
  },
  "db_summary": {
    "active_leases": 1,
    "enabled_peers": 5,
    "forced_leases": 0,
    "idle_leases": 4,
    "lease_rows": 5,
    "pending_jobs": 0
  },
  "db_targets": [
    {
      "created_at": "2026-07-09T12:34:52.059511+00:00",
      "description": "Current proven cs2 -> vpn4 target",
      "egress_class": "cs2",
      "fwmark": "0x204",
      "id": "cs2_vpn4",
      "interface_name": "vpn4",
      "is_emergency": false,
      "kind": "vpn",
      "route_table": 204,
      "status": "enabled",
      "updated_at": "2026-07-09T12:34:52.059511+00:00",
      "weight": 100
    },
    {
      "created_at": "2026-07-09T12:34:52.059511+00:00",
      "description": "Current proven cs3 -> vpn5 target",
      "egress_class": "cs3",
      "fwmark": "0x205",
      "id": "cs3_vpn5",
      "interface_name": "vpn5",
      "is_emergency": false,
      "kind": "vpn",
      "route_table": 205,
      "status": "enabled",
      "updated_at": "2026-07-09T12:34:52.059511+00:00",
      "weight": 100
    }
  ],
  "errors": [],
  "handler_version": "step046c-v1",
  "job_shape": {
    "action": "peer_egress_reassign",
    "attempts": 0,
    "id": "00000000-0000-0000-0000-000000046c01",
    "node_id": "ddn-test",
    "payload_keys": [
      "from_egress_class",
      "from_target_id",
      "reason",
      "rebalancer",
      "requested_by",
      "to_egress_class",
      "to_target_id",
      "tunnel_ip"
    ],
    "peer_id": "a3cbe3b5-8416-4847-b5ee-21f42359b465",
    "status": "pending"
  },
  "mode": "dryrun-no-write",
  "planned": {
    "db_update_preview": {
      "peer_id": "a3cbe3b5-8416-4847-b5ee-21f42359b465",
      "preserve_activity_baselines": true,
      "set_assignment_source": "rebalancer",
      "set_egress_class": "cs2",
      "set_reason": "rebalancer_idle_reassign",
      "set_target_id": "cs2_vpn4",
      "would_update_peer_egress_leases": true
    },
    "explicit_non_changes": {
      "would_not_add_or_remove_wg_peer": true,
      "would_not_change_wg_keys": true,
      "would_not_publish_client_config": true,
      "would_not_recreate_wg_paid": true,
      "would_not_touch_vm101_slots": true
    },
    "job_marking_preview": {
      "would_increment_attempts": true,
      "would_set_completed_at_on_success": true,
      "would_set_started_at": true,
      "would_store_last_error_on_failure": true
    },
    "scope": "dry-run only: one peer egress selector reassignment",
    "selector_update_preview": {
      "from_line_prefix": "10.253.1.12 cs3",
      "replace_entry_for_tunnel_ip": "10.253.1.12",
      "selector_file": "/etc/router-wgpay-selector.d/peers.conf",
      "to_line_prefix": "10.253.1.12 cs2",
      "would_edit_vm100_selector_file": true,
      "would_run_existing_selector_apply_path": true
    }
  },
  "safety": {
    "client_config_published": false,
    "db_written": false,
    "job_status_changed": false,
    "jobs_created": false,
    "private_material_required": false,
    "production_service_hooked": false,
    "selector_changed": false,
    "vm101_changed": false,
    "wg_runtime_changed": false
  },
  "schema": "wg-access-peer-egress-reassign-dryrun-handler-v1",
  "validation": {
    "action_is_peer_egress_reassign": true,
    "all_ok": true,
    "attempts_is_zero": true,
    "db_current_class_matches_from": true,
    "db_current_target_matches_from": true,
    "db_node_id_matches": true,
    "db_peer_enabled": true,
    "db_peer_found": true,
    "db_peer_is_idle": true,
    "db_peer_not_forced": true,
    "db_pending_jobs_zero": true,
    "db_tunnel_ip_matches": true,
    "from_target_exists": true,
    "node_id_present": true,
    "payload_forbidden_keys_absent": true,
    "payload_has_class_change": true,
    "payload_has_target_change": true,
    "payload_has_tunnel_ip": true,
    "payload_rebalancer_true": true,
    "payload_required_keys_present": true,
    "peer_id_present": true,
    "peer_id_uuid_like": true,
    "status_is_pending": true,
    "to_target_class_matches_payload": true,
    "to_target_exists": true
  }
}
