MQTT discovery msg: availability vs expire_after

Hi

I use discovery msg with option expire_after = 300 s where after 300s with no state msg the entity change state to unavailable. This is clear for me.

However in MQTT discovery msg there is also availability option. What is different availability vs expired_after?

BR, Krzysiek