// SASLAuthenticate continues a sasl authentication flow. Prior to Kafka 1.0.0, // authenticating with sasl involved sending raw blobs of data back and forth. // After, those blobs are wrapped in a SASLAuthenticateRequest The benefit of // this wrapping is that Kafka can indicate errors in the response, rather than // just closing the connection. Additionally, the response allows for further // extension fields. SASLAuthenticateRequest => key 36, max version 2, flexible v2+ // SASLAuthBytes contains bytes for a SASL client request. SASLAuthBytes: bytes // SASLAuthenticateResponse is returned for a SASLAuthenticateRequest. SASLAuthenticateResponse => // ErrorCode is a potential error. ErrorCode: int16 // ErrorMessage can contain a message for an error. ErrorMessage: nullable-string // SASLAuthBytes is the server challenge continuing SASL flow. SASLAuthBytes: bytes // SessionLifetimeMillis, added in Kafka 2.2.0, is how long the SASL // authentication is valid for. This timeout is only enforced if the request // was v1. After this timeout, Kafka expects the next bytes on the wire to // begin reauthentication. Otherwise, Kafka closes the connection. SessionLifetimeMillis: int64 // v1+