Every action id the structured available_actions[].action surface can
carry. Derived from the generated wire type plus the generated
update_media_buy dispatch table, preserving the legacy vocabulary on schema pins that predate
core/media-buy-available-action-id.json (AdCP <= 3.2.0-rc.2) and widens
to include structured-only ids such as update_media_buy_frequency_cap
once the pin picks that schema up. Canonical task metadata keeps the union
narrow even when a generated oneOf wire type flattens action to string.
Use this — not MediaBuyValidAction —
wherever code reads available_actions[].action, allowed_actions[].action,
or ACTION_NOT_ALLOWED.attempted_action. MediaBuyValidAction remains the
correct type for the deprecated flat valid_actions[] list only.
Every action id the structured
available_actions[].actionsurface can carry. Derived from the generated wire type plus the generatedupdate_media_buydispatch table, preserving the legacy vocabulary on schema pins that predatecore/media-buy-available-action-id.json(AdCP <= 3.2.0-rc.2) and widens to include structured-only ids such asupdate_media_buy_frequency_caponce the pin picks that schema up. Canonical task metadata keeps the union narrow even when a generated oneOf wire type flattens action to string. Use this — notMediaBuyValidAction— wherever code readsavailable_actions[].action,allowed_actions[].action, orACTION_NOT_ALLOWED.attempted_action.MediaBuyValidActionremains the correct type for the deprecated flatvalid_actions[]list only.