d8a_prepare_property_settings_change
Prepare a property settings change without saving it. Omitted settings keep their saved values; settings locked by account policies can't change. filters replaces all traffic filters; new and edited rules start in Test mode, which labels matching traffic without dropping it, and unchanged rules keep their mode. To make Test mode filters live, set filter_mode=live: the default reviewed activation first counts what they matched (needs query permission); immediate skips the counts. Live allow and exclude filters both drop traffic, so suggest testing first. If the counts can't show the impact, requires_acknowledgment is true and nothing is stored: explain this, and only if the user still wants it prepare again with explicit_request_reason and acknowledge_unverified_impact (immediate always needs both). Protocol, destination and account settings can't change here. Show the user the complete preview, ask them to approve, then call d8a_execute_change.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"property_id": "<property_id>"
},
"name": "d8a_prepare_property_settings_change"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| filters | No | Complete replacement; condition and metadata group test flags are normalized together. Rules may only use fields from d8a_get_query_catalog kind=traffic_filter_fields. Write each expression as the app's editor does: terms joined by " && ", each field op "value" (==, !=, startsWith, endsWith, contains, matches with an RE2 pattern) or inCidr(ip_address, "10.0.0.0/8"); for OR add another rule. fields is filled in from the expressions; omit metadata, the app rebuilds it. | |
| timezone | No | ||
| filter_mode | No | test (default) or live. live makes the saved Test mode rules live; send filters only to choose which rules, with test_mode false on them. | |
| property_id | Yes | Property ID. | |
| review_date_to | No | Last day to count matches, YYYY-MM-DD; default yesterday. | |
| activation_path | No | For live: reviewed (default) counts matches first; immediate skips that. | |
| ip_masking_level | No | ||
| review_date_from | No | First day to count matches, YYYY-MM-DD; default seven full days ago. | |
| excluded_url_params | No | Custom URL parameters to exclude, replacing the saved list. Built-in exclusions always apply and are never saved; don't send them. | |
| feature_ask_ai_enabled | No | ||
| explicit_request_reason | No | Why the user wants filters live without verified impact. | |
| session_timeout_seconds | No | ||
| tracking_enable_user_id | No | ||
| feature_insights_enabled | No | ||
| acknowledge_unverified_impact | No | The user accepted that the impact on traffic is not verified. | |
| tracking_enable_session_stamp | No | ||
| tracking_split_on_user_id_change | No | ||
| tracking_split_on_campaign_change | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| review | No | ||
| target | Yes | ||
| preview | Yes | ||
| expires_at | No | ||
| proposal_id | No | ||
| requires_acknowledgment | Yes |