Parent: #346
Grandparent: #290
Scope
Patch-sized child issue for canonical typed CLI support for TextCampaign.BiddingStrategy.Search rows in direct campaigns add/update.
WSDL audit routing
Current audit route: missing_followup under campaigns add/update: shared bidding-strategy builder foundation #290 .
Row count at split time: 253.
Operations: campaigns.add/campaigns.update.
Exact path prefixes: TextCampaign.BiddingStrategy.Search, TextCampaign.BiddingStrategy.Search.*.
Strategy families in scope: WbMaximumClicks, WbMaximumConversionRate, AverageCpc, AverageCpa, PayForConversion, AverageRoi, AverageCrr, MaxProfit, AverageCpaMultipleGoals, PayForConversionMultipleGoals, WeeklyClickPackage, PlacementTypes.
CLI contract
Typed flags only; no public --json or blob payload forwarding.
Preserve canonical command shape: direct campaigns <add|update> [flags].
Keep examples single-line if docs/help examples are added.
Validate only documented local constraints unless official Yandex API docs require stricter behavior.
Acceptance criteria
Focused dry-run tests prove the exact Yandex Direct payload shape for add and update where both operations are in scope.
tests/test_wsdl_parity_gate.py routes this scope to this issue or marks the implemented rows supported.
tests/WSDL_OPTIONAL_FIELD_AUDIT.md is regenerated consistently.
Relevant CLI/help/docs tests pass.
Official Yandex API docs are checked for field placement/types before implementation.
Out of scope
TextCampaign.Network, DynamicTextCampaign, UnifiedCampaign, Smart/MobileApp/CPM branches.
Live API write tests.
Broad all-optional-fields parity outside this child issue.
Parent: #346
Grandparent: #290
Scope
Patch-sized child issue for canonical typed CLI support for
TextCampaign.BiddingStrategy.Searchrows indirect campaigns add/update.WSDL audit routing
missing_followupunder campaigns add/update: shared bidding-strategy builder foundation #290.TextCampaign.BiddingStrategy.Search,TextCampaign.BiddingStrategy.Search.*.CLI contract
--jsonor blob payload forwarding.direct campaigns <add|update> [flags].Acceptance criteria
tests/test_wsdl_parity_gate.pyroutes this scope to this issue or marks the implemented rows supported.tests/WSDL_OPTIONAL_FIELD_AUDIT.mdis regenerated consistently.Out of scope