It is called with each header name/value pair, together with the user_data parameter which is passed to arrowflight.call_options.CallOptions.foreachHeader and so on.
The major version.
The micro version.
The minor version.
The version tag. Normally, it's an empty string. It's "SNAPSHOT" for snapshot version.