Headers:
Request Header v1 => request_api_key request_api_version correlation_id client_id 
  request_api_key => INT16
  request_api_version => INT16
  correlation_id => INT32
  client_id => NULLABLE_STRING
| Field | Description | 
|---|
| request_api_key | The API key of this request. | 
| request_api_version | The API version of this request. | 
| correlation_id | The correlation ID of this request. | 
| client_id | The client ID string. | 
Request Header v2 => request_api_key request_api_version correlation_id client_id _tagged_fields 
  request_api_key => INT16
  request_api_version => INT16
  correlation_id => INT32
  client_id => NULLABLE_STRING
| Field | Description | 
|---|
| request_api_key | The API key of this request. | 
| request_api_version | The API version of this request. | 
| correlation_id | The correlation ID of this request. | 
| client_id | The client ID string. | 
| _tagged_fields | The tagged fields | 
Response Header v0 => correlation_id 
  correlation_id => INT32
| Field | Description | 
|---|
| correlation_id | The correlation ID of this response. | 
Response Header v1 => correlation_id _tagged_fields 
  correlation_id => INT32
| Field | Description | 
|---|
| correlation_id | The correlation ID of this response. | 
| _tagged_fields | The tagged fields | 
Requests:
Produce Request (Version: 3) => transactional_id acks timeout_ms [topic_data] 
  transactional_id => NULLABLE_STRING
  acks => INT16
  timeout_ms => INT32
  topic_data => name [partition_data] 
    name => STRING
    partition_data => index records 
      index => INT32
      records => RECORDS
Request header version: 1
| Field | Description | 
|---|
| transactional_id | The transactional ID, or null if the producer is not transactional. | 
| acks | The number of acknowledgments the producer requires the leader to have received before considering a request complete. Allowed values: 0 for no acknowledgments, 1 for only the leader and -1 for the full ISR. | 
| timeout_ms | The timeout to await a response in milliseconds. | 
| topic_data | Each topic to produce to. | 
| name | The topic name. | 
| partition_data | Each partition to produce to. | 
| index | The partition index. | 
| records | The record data to be produced. | 
Produce Request (Version: 4) => transactional_id acks timeout_ms [topic_data] 
  transactional_id => NULLABLE_STRING
  acks => INT16
  timeout_ms => INT32
  topic_data => name [partition_data] 
    name => STRING
    partition_data => index records 
      index => INT32
      records => RECORDS
Request header version: 1
| Field | Description | 
|---|
| transactional_id | The transactional ID, or null if the producer is not transactional. | 
| acks | The number of acknowledgments the producer requires the leader to have received before considering a request complete. Allowed values: 0 for no acknowledgments, 1 for only the leader and -1 for the full ISR. | 
| timeout_ms | The timeout to await a response in milliseconds. | 
| topic_data | Each topic to produce to. | 
| name | The topic name. | 
| partition_data | Each partition to produce to. | 
| index | The partition index. | 
| records | The record data to be produced. | 
Produce Request (Version: 5) => transactional_id acks timeout_ms [topic_data] 
  transactional_id => NULLABLE_STRING
  acks => INT16
  timeout_ms => INT32
  topic_data => name [partition_data] 
    name => STRING
    partition_data => index records 
      index => INT32
      records => RECORDS
Request header version: 1
| Field | Description | 
|---|
| transactional_id | The transactional ID, or null if the producer is not transactional. | 
| acks | The number of acknowledgments the producer requires the leader to have received before considering a request complete. Allowed values: 0 for no acknowledgments, 1 for only the leader and -1 for the full ISR. | 
| timeout_ms | The timeout to await a response in milliseconds. | 
| topic_data | Each topic to produce to. | 
| name | The topic name. | 
| partition_data | Each partition to produce to. | 
| index | The partition index. | 
| records | The record data to be produced. | 
Produce Request (Version: 6) => transactional_id acks timeout_ms [topic_data] 
  transactional_id => NULLABLE_STRING
  acks => INT16
  timeout_ms => INT32
  topic_data => name [partition_data] 
    name => STRING
    partition_data => index records 
      index => INT32
      records => RECORDS
Request header version: 1
| Field | Description | 
|---|
| transactional_id | The transactional ID, or null if the producer is not transactional. | 
| acks | The number of acknowledgments the producer requires the leader to have received before considering a request complete. Allowed values: 0 for no acknowledgments, 1 for only the leader and -1 for the full ISR. | 
| timeout_ms | The timeout to await a response in milliseconds. | 
| topic_data | Each topic to produce to. | 
| name | The topic name. | 
| partition_data | Each partition to produce to. | 
| index | The partition index. | 
| records | The record data to be produced. | 
Produce Request (Version: 7) => transactional_id acks timeout_ms [topic_data] 
  transactional_id => NULLABLE_STRING
  acks => INT16
  timeout_ms => INT32
  topic_data => name [partition_data] 
    name => STRING
    partition_data => index records 
      index => INT32
      records => RECORDS
Request header version: 1
| Field | Description | 
|---|
| transactional_id | The transactional ID, or null if the producer is not transactional. | 
| acks | The number of acknowledgments the producer requires the leader to have received before considering a request complete. Allowed values: 0 for no acknowledgments, 1 for only the leader and -1 for the full ISR. | 
| timeout_ms | The timeout to await a response in milliseconds. | 
| topic_data | Each topic to produce to. | 
| name | The topic name. | 
| partition_data | Each partition to produce to. | 
| index | The partition index. | 
| records | The record data to be produced. | 
Produce Request (Version: 8) => transactional_id acks timeout_ms [topic_data] 
  transactional_id => NULLABLE_STRING
  acks => INT16
  timeout_ms => INT32
  topic_data => name [partition_data] 
    name => STRING
    partition_data => index records 
      index => INT32
      records => RECORDS
Request header version: 1
| Field | Description | 
|---|
| transactional_id | The transactional ID, or null if the producer is not transactional. | 
| acks | The number of acknowledgments the producer requires the leader to have received before considering a request complete. Allowed values: 0 for no acknowledgments, 1 for only the leader and -1 for the full ISR. | 
| timeout_ms | The timeout to await a response in milliseconds. | 
| topic_data | Each topic to produce to. | 
| name | The topic name. | 
| partition_data | Each partition to produce to. | 
| index | The partition index. | 
| records | The record data to be produced. | 
Produce Request (Version: 9) => transactional_id acks timeout_ms [topic_data] _tagged_fields 
  transactional_id => COMPACT_NULLABLE_STRING
  acks => INT16
  timeout_ms => INT32
  topic_data => name [partition_data] _tagged_fields 
    name => COMPACT_STRING
    partition_data => index records _tagged_fields 
      index => INT32
      records => COMPACT_RECORDS
Request header version: 2
| Field | Description | 
|---|
| transactional_id | The transactional ID, or null if the producer is not transactional. | 
| acks | The number of acknowledgments the producer requires the leader to have received before considering a request complete. Allowed values: 0 for no acknowledgments, 1 for only the leader and -1 for the full ISR. | 
| timeout_ms | The timeout to await a response in milliseconds. | 
| topic_data | Each topic to produce to. | 
| name | The topic name. | 
| partition_data | Each partition to produce to. | 
| index | The partition index. | 
| records | The record data to be produced. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
Produce Request (Version: 10) => transactional_id acks timeout_ms [topic_data] _tagged_fields 
  transactional_id => COMPACT_NULLABLE_STRING
  acks => INT16
  timeout_ms => INT32
  topic_data => name [partition_data] _tagged_fields 
    name => COMPACT_STRING
    partition_data => index records _tagged_fields 
      index => INT32
      records => COMPACT_RECORDS
Request header version: 2
| Field | Description | 
|---|
| transactional_id | The transactional ID, or null if the producer is not transactional. | 
| acks | The number of acknowledgments the producer requires the leader to have received before considering a request complete. Allowed values: 0 for no acknowledgments, 1 for only the leader and -1 for the full ISR. | 
| timeout_ms | The timeout to await a response in milliseconds. | 
| topic_data | Each topic to produce to. | 
| name | The topic name. | 
| partition_data | Each partition to produce to. | 
| index | The partition index. | 
| records | The record data to be produced. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
Produce Request (Version: 11) => transactional_id acks timeout_ms [topic_data] _tagged_fields 
  transactional_id => COMPACT_NULLABLE_STRING
  acks => INT16
  timeout_ms => INT32
  topic_data => name [partition_data] _tagged_fields 
    name => COMPACT_STRING
    partition_data => index records _tagged_fields 
      index => INT32
      records => COMPACT_RECORDS
Request header version: 2
| Field | Description | 
|---|
| transactional_id | The transactional ID, or null if the producer is not transactional. | 
| acks | The number of acknowledgments the producer requires the leader to have received before considering a request complete. Allowed values: 0 for no acknowledgments, 1 for only the leader and -1 for the full ISR. | 
| timeout_ms | The timeout to await a response in milliseconds. | 
| topic_data | Each topic to produce to. | 
| name | The topic name. | 
| partition_data | Each partition to produce to. | 
| index | The partition index. | 
| records | The record data to be produced. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
Produce Request (Version: 12) => transactional_id acks timeout_ms [topic_data] _tagged_fields 
  transactional_id => COMPACT_NULLABLE_STRING
  acks => INT16
  timeout_ms => INT32
  topic_data => name [partition_data] _tagged_fields 
    name => COMPACT_STRING
    partition_data => index records _tagged_fields 
      index => INT32
      records => COMPACT_RECORDS
Request header version: 2
| Field | Description | 
|---|
| transactional_id | The transactional ID, or null if the producer is not transactional. | 
| acks | The number of acknowledgments the producer requires the leader to have received before considering a request complete. Allowed values: 0 for no acknowledgments, 1 for only the leader and -1 for the full ISR. | 
| timeout_ms | The timeout to await a response in milliseconds. | 
| topic_data | Each topic to produce to. | 
| name | The topic name. | 
| partition_data | Each partition to produce to. | 
| index | The partition index. | 
| records | The record data to be produced. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
Produce Response (Version: 3) => [responses] throttle_time_ms 
  responses => name [partition_responses] 
    name => STRING
    partition_responses => index error_code base_offset log_append_time_ms 
      index => INT32
      error_code => INT16
      base_offset => INT64
      log_append_time_ms => INT64
  throttle_time_ms => INT32
Response header version: 0
| Field | Description | 
|---|
| responses | Each produce response. | 
| name | The topic name. | 
| partition_responses | Each partition that we produced to within the topic. | 
| index | The partition index. | 
| error_code | The error code, or 0 if there was no error. | 
| base_offset | The base offset. | 
| log_append_time_ms | The timestamp returned by broker after appending the messages. If CreateTime is used for the topic, the timestamp will be -1.  If LogAppendTime is used for the topic, the timestamp will be the broker local time when the messages are appended. | 
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
Produce Response (Version: 4) => [responses] throttle_time_ms 
  responses => name [partition_responses] 
    name => STRING
    partition_responses => index error_code base_offset log_append_time_ms 
      index => INT32
      error_code => INT16
      base_offset => INT64
      log_append_time_ms => INT64
  throttle_time_ms => INT32
Response header version: 0
| Field | Description | 
|---|
| responses | Each produce response. | 
| name | The topic name. | 
| partition_responses | Each partition that we produced to within the topic. | 
| index | The partition index. | 
| error_code | The error code, or 0 if there was no error. | 
| base_offset | The base offset. | 
| log_append_time_ms | The timestamp returned by broker after appending the messages. If CreateTime is used for the topic, the timestamp will be -1.  If LogAppendTime is used for the topic, the timestamp will be the broker local time when the messages are appended. | 
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
Produce Response (Version: 5) => [responses] throttle_time_ms 
  responses => name [partition_responses] 
    name => STRING
    partition_responses => index error_code base_offset log_append_time_ms log_start_offset 
      index => INT32
      error_code => INT16
      base_offset => INT64
      log_append_time_ms => INT64
      log_start_offset => INT64
  throttle_time_ms => INT32
Response header version: 0
| Field | Description | 
|---|
| responses | Each produce response. | 
| name | The topic name. | 
| partition_responses | Each partition that we produced to within the topic. | 
| index | The partition index. | 
| error_code | The error code, or 0 if there was no error. | 
| base_offset | The base offset. | 
| log_append_time_ms | The timestamp returned by broker after appending the messages. If CreateTime is used for the topic, the timestamp will be -1.  If LogAppendTime is used for the topic, the timestamp will be the broker local time when the messages are appended. | 
| log_start_offset | The log start offset. | 
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
Produce Response (Version: 6) => [responses] throttle_time_ms 
  responses => name [partition_responses] 
    name => STRING
    partition_responses => index error_code base_offset log_append_time_ms log_start_offset 
      index => INT32
      error_code => INT16
      base_offset => INT64
      log_append_time_ms => INT64
      log_start_offset => INT64
  throttle_time_ms => INT32
Response header version: 0
| Field | Description | 
|---|
| responses | Each produce response. | 
| name | The topic name. | 
| partition_responses | Each partition that we produced to within the topic. | 
| index | The partition index. | 
| error_code | The error code, or 0 if there was no error. | 
| base_offset | The base offset. | 
| log_append_time_ms | The timestamp returned by broker after appending the messages. If CreateTime is used for the topic, the timestamp will be -1.  If LogAppendTime is used for the topic, the timestamp will be the broker local time when the messages are appended. | 
| log_start_offset | The log start offset. | 
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
Produce Response (Version: 7) => [responses] throttle_time_ms 
  responses => name [partition_responses] 
    name => STRING
    partition_responses => index error_code base_offset log_append_time_ms log_start_offset 
      index => INT32
      error_code => INT16
      base_offset => INT64
      log_append_time_ms => INT64
      log_start_offset => INT64
  throttle_time_ms => INT32
Response header version: 0
| Field | Description | 
|---|
| responses | Each produce response. | 
| name | The topic name. | 
| partition_responses | Each partition that we produced to within the topic. | 
| index | The partition index. | 
| error_code | The error code, or 0 if there was no error. | 
| base_offset | The base offset. | 
| log_append_time_ms | The timestamp returned by broker after appending the messages. If CreateTime is used for the topic, the timestamp will be -1.  If LogAppendTime is used for the topic, the timestamp will be the broker local time when the messages are appended. | 
| log_start_offset | The log start offset. | 
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
Produce Response (Version: 8) => [responses] throttle_time_ms 
  responses => name [partition_responses] 
    name => STRING
    partition_responses => index error_code base_offset log_append_time_ms log_start_offset [record_errors] error_message 
      index => INT32
      error_code => INT16
      base_offset => INT64
      log_append_time_ms => INT64
      log_start_offset => INT64
      record_errors => batch_index batch_index_error_message 
        batch_index => INT32
        batch_index_error_message => NULLABLE_STRING
      error_message => NULLABLE_STRING
  throttle_time_ms => INT32
Response header version: 0
| Field | Description | 
|---|
| responses | Each produce response. | 
| name | The topic name. | 
| partition_responses | Each partition that we produced to within the topic. | 
| index | The partition index. | 
| error_code | The error code, or 0 if there was no error. | 
| base_offset | The base offset. | 
| log_append_time_ms | The timestamp returned by broker after appending the messages. If CreateTime is used for the topic, the timestamp will be -1.  If LogAppendTime is used for the topic, the timestamp will be the broker local time when the messages are appended. | 
| log_start_offset | The log start offset. | 
| record_errors | The batch indices of records that caused the batch to be dropped. | 
| batch_index | The batch index of the record that caused the batch to be dropped. | 
| batch_index_error_message | The error message of the record that caused the batch to be dropped. | 
| error_message | The global error message summarizing the common root cause of the records that caused the batch to be dropped. | 
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
Produce Response (Version: 9) => [responses] throttle_time_ms _tagged_fields 
  responses => name [partition_responses] _tagged_fields 
    name => COMPACT_STRING
    partition_responses => index error_code base_offset log_append_time_ms log_start_offset [record_errors] error_message _tagged_fields 
      index => INT32
      error_code => INT16
      base_offset => INT64
      log_append_time_ms => INT64
      log_start_offset => INT64
      record_errors => batch_index batch_index_error_message _tagged_fields 
        batch_index => INT32
        batch_index_error_message => COMPACT_NULLABLE_STRING
      error_message => COMPACT_NULLABLE_STRING
  throttle_time_ms => INT32
Response header version: 1
| Field | Description | 
|---|
| responses | Each produce response. | 
| name | The topic name. | 
| partition_responses | Each partition that we produced to within the topic. | 
| index | The partition index. | 
| error_code | The error code, or 0 if there was no error. | 
| base_offset | The base offset. | 
| log_append_time_ms | The timestamp returned by broker after appending the messages. If CreateTime is used for the topic, the timestamp will be -1.  If LogAppendTime is used for the topic, the timestamp will be the broker local time when the messages are appended. | 
| log_start_offset | The log start offset. | 
| record_errors | The batch indices of records that caused the batch to be dropped. | 
| batch_index | The batch index of the record that caused the batch to be dropped. | 
| batch_index_error_message | The error message of the record that caused the batch to be dropped. | 
| _tagged_fields | The tagged fields | 
| error_message | The global error message summarizing the common root cause of the records that caused the batch to be dropped. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| _tagged_fields | The tagged fields | 
Produce Response (Version: 10) => [responses] throttle_time_ms _tagged_fields 
  responses => name [partition_responses] _tagged_fields 
    name => COMPACT_STRING
    partition_responses => index error_code base_offset log_append_time_ms log_start_offset [record_errors] error_message _tagged_fields 
      index => INT32
      error_code => INT16
      base_offset => INT64
      log_append_time_ms => INT64
      log_start_offset => INT64
      record_errors => batch_index batch_index_error_message _tagged_fields 
        batch_index => INT32
        batch_index_error_message => COMPACT_NULLABLE_STRING
      error_message => COMPACT_NULLABLE_STRING
  throttle_time_ms => INT32
Response header version: 1
| Field | Description | 
|---|
| responses | Each produce response. | 
| name | The topic name. | 
| partition_responses | Each partition that we produced to within the topic. | 
| index | The partition index. | 
| error_code | The error code, or 0 if there was no error. | 
| base_offset | The base offset. | 
| log_append_time_ms | The timestamp returned by broker after appending the messages. If CreateTime is used for the topic, the timestamp will be -1.  If LogAppendTime is used for the topic, the timestamp will be the broker local time when the messages are appended. | 
| log_start_offset | The log start offset. | 
| record_errors | The batch indices of records that caused the batch to be dropped. | 
| batch_index | The batch index of the record that caused the batch to be dropped. | 
| batch_index_error_message | The error message of the record that caused the batch to be dropped. | 
| _tagged_fields | The tagged fields | 
| error_message | The global error message summarizing the common root cause of the records that caused the batch to be dropped. | 
| _tagged_fields | 
| Tag | Tagged field | Description | 
|---|
 
| 0 | current_leader | The leader broker that the producer should use for future requests. 
| Field | Description | 
|---|
 
| leader_id | The ID of the current leader or -1 if the leader is unknown. |  
| leader_epoch | The latest known leader epoch. |  
| _tagged_fields | The tagged fields |  |  | 
| _tagged_fields | The tagged fields | 
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| _tagged_fields | 
| Tag | Tagged field | Description | 
|---|
 
| 0 | node_endpoints | Endpoints for all current-leaders enumerated in PartitionProduceResponses, with errors NOT_LEADER_OR_FOLLOWER. 
| Field | Description | 
|---|
 
| node_id | The ID of the associated node. |  
| host | The node's hostname. |  
| port | The node's port. |  
| rack | The rack of the node, or null if it has not been assigned to a rack. |  
| _tagged_fields | The tagged fields |  |  | 
Produce Response (Version: 11) => [responses] throttle_time_ms _tagged_fields 
  responses => name [partition_responses] _tagged_fields 
    name => COMPACT_STRING
    partition_responses => index error_code base_offset log_append_time_ms log_start_offset [record_errors] error_message _tagged_fields 
      index => INT32
      error_code => INT16
      base_offset => INT64
      log_append_time_ms => INT64
      log_start_offset => INT64
      record_errors => batch_index batch_index_error_message _tagged_fields 
        batch_index => INT32
        batch_index_error_message => COMPACT_NULLABLE_STRING
      error_message => COMPACT_NULLABLE_STRING
  throttle_time_ms => INT32
Response header version: 1
| Field | Description | 
|---|
| responses | Each produce response. | 
| name | The topic name. | 
| partition_responses | Each partition that we produced to within the topic. | 
| index | The partition index. | 
| error_code | The error code, or 0 if there was no error. | 
| base_offset | The base offset. | 
| log_append_time_ms | The timestamp returned by broker after appending the messages. If CreateTime is used for the topic, the timestamp will be -1.  If LogAppendTime is used for the topic, the timestamp will be the broker local time when the messages are appended. | 
| log_start_offset | The log start offset. | 
| record_errors | The batch indices of records that caused the batch to be dropped. | 
| batch_index | The batch index of the record that caused the batch to be dropped. | 
| batch_index_error_message | The error message of the record that caused the batch to be dropped. | 
| _tagged_fields | The tagged fields | 
| error_message | The global error message summarizing the common root cause of the records that caused the batch to be dropped. | 
| _tagged_fields | 
| Tag | Tagged field | Description | 
|---|
 
| 0 | current_leader | The leader broker that the producer should use for future requests. 
| Field | Description | 
|---|
 
| leader_id | The ID of the current leader or -1 if the leader is unknown. |  
| leader_epoch | The latest known leader epoch. |  
| _tagged_fields | The tagged fields |  |  | 
| _tagged_fields | The tagged fields | 
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| _tagged_fields | 
| Tag | Tagged field | Description | 
|---|
 
| 0 | node_endpoints | Endpoints for all current-leaders enumerated in PartitionProduceResponses, with errors NOT_LEADER_OR_FOLLOWER. 
| Field | Description | 
|---|
 
| node_id | The ID of the associated node. |  
| host | The node's hostname. |  
| port | The node's port. |  
| rack | The rack of the node, or null if it has not been assigned to a rack. |  
| _tagged_fields | The tagged fields |  |  | 
Fetch Request (Version: 4) => replica_id max_wait_ms min_bytes max_bytes isolation_level [topics] 
  replica_id => INT32
  max_wait_ms => INT32
  min_bytes => INT32
  max_bytes => INT32
  isolation_level => INT8
  topics => topic [partitions] 
    topic => STRING
    partitions => partition fetch_offset partition_max_bytes 
      partition => INT32
      fetch_offset => INT64
      partition_max_bytes => INT32
Request header version: 1
| Field | Description | 
|---|
| replica_id | The broker ID of the follower, of -1 if this request is from a consumer. | 
| max_wait_ms | The maximum time in milliseconds to wait for the response. | 
| min_bytes | The minimum bytes to accumulate in the response. | 
| max_bytes | The maximum bytes to fetch.  See KIP-74 for cases where this limit may not be honored. | 
| isolation_level | This setting controls the visibility of transactional records. Using READ_UNCOMMITTED (isolation_level = 0) makes all records visible. With READ_COMMITTED (isolation_level = 1), non-transactional and COMMITTED transactional records are visible. To be more concrete, READ_COMMITTED returns all data from offsets smaller than the current LSO (last stable offset), and enables the inclusion of the list of aborted transactions in the result, which allows consumers to discard ABORTED transactional records. | 
| topics | The topics to fetch. | 
| topic | The name of the topic to fetch. | 
| partitions | The partitions to fetch. | 
| partition | The partition index. | 
| fetch_offset | The message offset. | 
| partition_max_bytes | The maximum bytes to fetch from this partition.  See KIP-74 for cases where this limit may not be honored. | 
Fetch Request (Version: 5) => replica_id max_wait_ms min_bytes max_bytes isolation_level [topics] 
  replica_id => INT32
  max_wait_ms => INT32
  min_bytes => INT32
  max_bytes => INT32
  isolation_level => INT8
  topics => topic [partitions] 
    topic => STRING
    partitions => partition fetch_offset log_start_offset partition_max_bytes 
      partition => INT32
      fetch_offset => INT64
      log_start_offset => INT64
      partition_max_bytes => INT32
Request header version: 1
| Field | Description | 
|---|
| replica_id | The broker ID of the follower, of -1 if this request is from a consumer. | 
| max_wait_ms | The maximum time in milliseconds to wait for the response. | 
| min_bytes | The minimum bytes to accumulate in the response. | 
| max_bytes | The maximum bytes to fetch.  See KIP-74 for cases where this limit may not be honored. | 
| isolation_level | This setting controls the visibility of transactional records. Using READ_UNCOMMITTED (isolation_level = 0) makes all records visible. With READ_COMMITTED (isolation_level = 1), non-transactional and COMMITTED transactional records are visible. To be more concrete, READ_COMMITTED returns all data from offsets smaller than the current LSO (last stable offset), and enables the inclusion of the list of aborted transactions in the result, which allows consumers to discard ABORTED transactional records. | 
| topics | The topics to fetch. | 
| topic | The name of the topic to fetch. | 
| partitions | The partitions to fetch. | 
| partition | The partition index. | 
| fetch_offset | The message offset. | 
| log_start_offset | The earliest available offset of the follower replica.  The field is only used when the request is sent by the follower. | 
| partition_max_bytes | The maximum bytes to fetch from this partition.  See KIP-74 for cases where this limit may not be honored. | 
Fetch Request (Version: 6) => replica_id max_wait_ms min_bytes max_bytes isolation_level [topics] 
  replica_id => INT32
  max_wait_ms => INT32
  min_bytes => INT32
  max_bytes => INT32
  isolation_level => INT8
  topics => topic [partitions] 
    topic => STRING
    partitions => partition fetch_offset log_start_offset partition_max_bytes 
      partition => INT32
      fetch_offset => INT64
      log_start_offset => INT64
      partition_max_bytes => INT32
Request header version: 1
| Field | Description | 
|---|
| replica_id | The broker ID of the follower, of -1 if this request is from a consumer. | 
| max_wait_ms | The maximum time in milliseconds to wait for the response. | 
| min_bytes | The minimum bytes to accumulate in the response. | 
| max_bytes | The maximum bytes to fetch.  See KIP-74 for cases where this limit may not be honored. | 
| isolation_level | This setting controls the visibility of transactional records. Using READ_UNCOMMITTED (isolation_level = 0) makes all records visible. With READ_COMMITTED (isolation_level = 1), non-transactional and COMMITTED transactional records are visible. To be more concrete, READ_COMMITTED returns all data from offsets smaller than the current LSO (last stable offset), and enables the inclusion of the list of aborted transactions in the result, which allows consumers to discard ABORTED transactional records. | 
| topics | The topics to fetch. | 
| topic | The name of the topic to fetch. | 
| partitions | The partitions to fetch. | 
| partition | The partition index. | 
| fetch_offset | The message offset. | 
| log_start_offset | The earliest available offset of the follower replica.  The field is only used when the request is sent by the follower. | 
| partition_max_bytes | The maximum bytes to fetch from this partition.  See KIP-74 for cases where this limit may not be honored. | 
Fetch Request (Version: 7) => replica_id max_wait_ms min_bytes max_bytes isolation_level session_id session_epoch [topics] [forgotten_topics_data] 
  replica_id => INT32
  max_wait_ms => INT32
  min_bytes => INT32
  max_bytes => INT32
  isolation_level => INT8
  session_id => INT32
  session_epoch => INT32
  topics => topic [partitions] 
    topic => STRING
    partitions => partition fetch_offset log_start_offset partition_max_bytes 
      partition => INT32
      fetch_offset => INT64
      log_start_offset => INT64
      partition_max_bytes => INT32
  forgotten_topics_data => topic [partitions] 
    topic => STRING
    partitions => INT32
Request header version: 1
| Field | Description | 
|---|
| replica_id | The broker ID of the follower, of -1 if this request is from a consumer. | 
| max_wait_ms | The maximum time in milliseconds to wait for the response. | 
| min_bytes | The minimum bytes to accumulate in the response. | 
| max_bytes | The maximum bytes to fetch.  See KIP-74 for cases where this limit may not be honored. | 
| isolation_level | This setting controls the visibility of transactional records. Using READ_UNCOMMITTED (isolation_level = 0) makes all records visible. With READ_COMMITTED (isolation_level = 1), non-transactional and COMMITTED transactional records are visible. To be more concrete, READ_COMMITTED returns all data from offsets smaller than the current LSO (last stable offset), and enables the inclusion of the list of aborted transactions in the result, which allows consumers to discard ABORTED transactional records. | 
| session_id | The fetch session ID. | 
| session_epoch | The fetch session epoch, which is used for ordering requests in a session. | 
| topics | The topics to fetch. | 
| topic | The name of the topic to fetch. | 
| partitions | The partitions to fetch. | 
| partition | The partition index. | 
| fetch_offset | The message offset. | 
| log_start_offset | The earliest available offset of the follower replica.  The field is only used when the request is sent by the follower. | 
| partition_max_bytes | The maximum bytes to fetch from this partition.  See KIP-74 for cases where this limit may not be honored. | 
| forgotten_topics_data | In an incremental fetch request, the partitions to remove. | 
| topic | The topic name. | 
| partitions | The partitions indexes to forget. | 
Fetch Request (Version: 8) => replica_id max_wait_ms min_bytes max_bytes isolation_level session_id session_epoch [topics] [forgotten_topics_data] 
  replica_id => INT32
  max_wait_ms => INT32
  min_bytes => INT32
  max_bytes => INT32
  isolation_level => INT8
  session_id => INT32
  session_epoch => INT32
  topics => topic [partitions] 
    topic => STRING
    partitions => partition fetch_offset log_start_offset partition_max_bytes 
      partition => INT32
      fetch_offset => INT64
      log_start_offset => INT64
      partition_max_bytes => INT32
  forgotten_topics_data => topic [partitions] 
    topic => STRING
    partitions => INT32
Request header version: 1
| Field | Description | 
|---|
| replica_id | The broker ID of the follower, of -1 if this request is from a consumer. | 
| max_wait_ms | The maximum time in milliseconds to wait for the response. | 
| min_bytes | The minimum bytes to accumulate in the response. | 
| max_bytes | The maximum bytes to fetch.  See KIP-74 for cases where this limit may not be honored. | 
| isolation_level | This setting controls the visibility of transactional records. Using READ_UNCOMMITTED (isolation_level = 0) makes all records visible. With READ_COMMITTED (isolation_level = 1), non-transactional and COMMITTED transactional records are visible. To be more concrete, READ_COMMITTED returns all data from offsets smaller than the current LSO (last stable offset), and enables the inclusion of the list of aborted transactions in the result, which allows consumers to discard ABORTED transactional records. | 
| session_id | The fetch session ID. | 
| session_epoch | The fetch session epoch, which is used for ordering requests in a session. | 
| topics | The topics to fetch. | 
| topic | The name of the topic to fetch. | 
| partitions | The partitions to fetch. | 
| partition | The partition index. | 
| fetch_offset | The message offset. | 
| log_start_offset | The earliest available offset of the follower replica.  The field is only used when the request is sent by the follower. | 
| partition_max_bytes | The maximum bytes to fetch from this partition.  See KIP-74 for cases where this limit may not be honored. | 
| forgotten_topics_data | In an incremental fetch request, the partitions to remove. | 
| topic | The topic name. | 
| partitions | The partitions indexes to forget. | 
Fetch Request (Version: 9) => replica_id max_wait_ms min_bytes max_bytes isolation_level session_id session_epoch [topics] [forgotten_topics_data] 
  replica_id => INT32
  max_wait_ms => INT32
  min_bytes => INT32
  max_bytes => INT32
  isolation_level => INT8
  session_id => INT32
  session_epoch => INT32
  topics => topic [partitions] 
    topic => STRING
    partitions => partition current_leader_epoch fetch_offset log_start_offset partition_max_bytes 
      partition => INT32
      current_leader_epoch => INT32
      fetch_offset => INT64
      log_start_offset => INT64
      partition_max_bytes => INT32
  forgotten_topics_data => topic [partitions] 
    topic => STRING
    partitions => INT32
Request header version: 1
| Field | Description | 
|---|
| replica_id | The broker ID of the follower, of -1 if this request is from a consumer. | 
| max_wait_ms | The maximum time in milliseconds to wait for the response. | 
| min_bytes | The minimum bytes to accumulate in the response. | 
| max_bytes | The maximum bytes to fetch.  See KIP-74 for cases where this limit may not be honored. | 
| isolation_level | This setting controls the visibility of transactional records. Using READ_UNCOMMITTED (isolation_level = 0) makes all records visible. With READ_COMMITTED (isolation_level = 1), non-transactional and COMMITTED transactional records are visible. To be more concrete, READ_COMMITTED returns all data from offsets smaller than the current LSO (last stable offset), and enables the inclusion of the list of aborted transactions in the result, which allows consumers to discard ABORTED transactional records. | 
| session_id | The fetch session ID. | 
| session_epoch | The fetch session epoch, which is used for ordering requests in a session. | 
| topics | The topics to fetch. | 
| topic | The name of the topic to fetch. | 
| partitions | The partitions to fetch. | 
| partition | The partition index. | 
| current_leader_epoch | The current leader epoch of the partition. | 
| fetch_offset | The message offset. | 
| log_start_offset | The earliest available offset of the follower replica.  The field is only used when the request is sent by the follower. | 
| partition_max_bytes | The maximum bytes to fetch from this partition.  See KIP-74 for cases where this limit may not be honored. | 
| forgotten_topics_data | In an incremental fetch request, the partitions to remove. | 
| topic | The topic name. | 
| partitions | The partitions indexes to forget. | 
Fetch Request (Version: 10) => replica_id max_wait_ms min_bytes max_bytes isolation_level session_id session_epoch [topics] [forgotten_topics_data] 
  replica_id => INT32
  max_wait_ms => INT32
  min_bytes => INT32
  max_bytes => INT32
  isolation_level => INT8
  session_id => INT32
  session_epoch => INT32
  topics => topic [partitions] 
    topic => STRING
    partitions => partition current_leader_epoch fetch_offset log_start_offset partition_max_bytes 
      partition => INT32
      current_leader_epoch => INT32
      fetch_offset => INT64
      log_start_offset => INT64
      partition_max_bytes => INT32
  forgotten_topics_data => topic [partitions] 
    topic => STRING
    partitions => INT32
Request header version: 1
| Field | Description | 
|---|
| replica_id | The broker ID of the follower, of -1 if this request is from a consumer. | 
| max_wait_ms | The maximum time in milliseconds to wait for the response. | 
| min_bytes | The minimum bytes to accumulate in the response. | 
| max_bytes | The maximum bytes to fetch.  See KIP-74 for cases where this limit may not be honored. | 
| isolation_level | This setting controls the visibility of transactional records. Using READ_UNCOMMITTED (isolation_level = 0) makes all records visible. With READ_COMMITTED (isolation_level = 1), non-transactional and COMMITTED transactional records are visible. To be more concrete, READ_COMMITTED returns all data from offsets smaller than the current LSO (last stable offset), and enables the inclusion of the list of aborted transactions in the result, which allows consumers to discard ABORTED transactional records. | 
| session_id | The fetch session ID. | 
| session_epoch | The fetch session epoch, which is used for ordering requests in a session. | 
| topics | The topics to fetch. | 
| topic | The name of the topic to fetch. | 
| partitions | The partitions to fetch. | 
| partition | The partition index. | 
| current_leader_epoch | The current leader epoch of the partition. | 
| fetch_offset | The message offset. | 
| log_start_offset | The earliest available offset of the follower replica.  The field is only used when the request is sent by the follower. | 
| partition_max_bytes | The maximum bytes to fetch from this partition.  See KIP-74 for cases where this limit may not be honored. | 
| forgotten_topics_data | In an incremental fetch request, the partitions to remove. | 
| topic | The topic name. | 
| partitions | The partitions indexes to forget. | 
Fetch Request (Version: 11) => replica_id max_wait_ms min_bytes max_bytes isolation_level session_id session_epoch [topics] [forgotten_topics_data] rack_id 
  replica_id => INT32
  max_wait_ms => INT32
  min_bytes => INT32
  max_bytes => INT32
  isolation_level => INT8
  session_id => INT32
  session_epoch => INT32
  topics => topic [partitions] 
    topic => STRING
    partitions => partition current_leader_epoch fetch_offset log_start_offset partition_max_bytes 
      partition => INT32
      current_leader_epoch => INT32
      fetch_offset => INT64
      log_start_offset => INT64
      partition_max_bytes => INT32
  forgotten_topics_data => topic [partitions] 
    topic => STRING
    partitions => INT32
  rack_id => STRING
Request header version: 1
| Field | Description | 
|---|
| replica_id | The broker ID of the follower, of -1 if this request is from a consumer. | 
| max_wait_ms | The maximum time in milliseconds to wait for the response. | 
| min_bytes | The minimum bytes to accumulate in the response. | 
| max_bytes | The maximum bytes to fetch.  See KIP-74 for cases where this limit may not be honored. | 
| isolation_level | This setting controls the visibility of transactional records. Using READ_UNCOMMITTED (isolation_level = 0) makes all records visible. With READ_COMMITTED (isolation_level = 1), non-transactional and COMMITTED transactional records are visible. To be more concrete, READ_COMMITTED returns all data from offsets smaller than the current LSO (last stable offset), and enables the inclusion of the list of aborted transactions in the result, which allows consumers to discard ABORTED transactional records. | 
| session_id | The fetch session ID. | 
| session_epoch | The fetch session epoch, which is used for ordering requests in a session. | 
| topics | The topics to fetch. | 
| topic | The name of the topic to fetch. | 
| partitions | The partitions to fetch. | 
| partition | The partition index. | 
| current_leader_epoch | The current leader epoch of the partition. | 
| fetch_offset | The message offset. | 
| log_start_offset | The earliest available offset of the follower replica.  The field is only used when the request is sent by the follower. | 
| partition_max_bytes | The maximum bytes to fetch from this partition.  See KIP-74 for cases where this limit may not be honored. | 
| forgotten_topics_data | In an incremental fetch request, the partitions to remove. | 
| topic | The topic name. | 
| partitions | The partitions indexes to forget. | 
| rack_id | Rack ID of the consumer making this request. | 
Fetch Request (Version: 12) => replica_id max_wait_ms min_bytes max_bytes isolation_level session_id session_epoch [topics] [forgotten_topics_data] rack_id _tagged_fields 
  replica_id => INT32
  max_wait_ms => INT32
  min_bytes => INT32
  max_bytes => INT32
  isolation_level => INT8
  session_id => INT32
  session_epoch => INT32
  topics => topic [partitions] _tagged_fields 
    topic => COMPACT_STRING
    partitions => partition current_leader_epoch fetch_offset last_fetched_epoch log_start_offset partition_max_bytes _tagged_fields 
      partition => INT32
      current_leader_epoch => INT32
      fetch_offset => INT64
      last_fetched_epoch => INT32
      log_start_offset => INT64
      partition_max_bytes => INT32
  forgotten_topics_data => topic [partitions] _tagged_fields 
    topic => COMPACT_STRING
    partitions => INT32
  rack_id => COMPACT_STRING
Request header version: 2
| Field | Description | 
|---|
| replica_id | The broker ID of the follower, of -1 if this request is from a consumer. | 
| max_wait_ms | The maximum time in milliseconds to wait for the response. | 
| min_bytes | The minimum bytes to accumulate in the response. | 
| max_bytes | The maximum bytes to fetch.  See KIP-74 for cases where this limit may not be honored. | 
| isolation_level | This setting controls the visibility of transactional records. Using READ_UNCOMMITTED (isolation_level = 0) makes all records visible. With READ_COMMITTED (isolation_level = 1), non-transactional and COMMITTED transactional records are visible. To be more concrete, READ_COMMITTED returns all data from offsets smaller than the current LSO (last stable offset), and enables the inclusion of the list of aborted transactions in the result, which allows consumers to discard ABORTED transactional records. | 
| session_id | The fetch session ID. | 
| session_epoch | The fetch session epoch, which is used for ordering requests in a session. | 
| topics | The topics to fetch. | 
| topic | The name of the topic to fetch. | 
| partitions | The partitions to fetch. | 
| partition | The partition index. | 
| current_leader_epoch | The current leader epoch of the partition. | 
| fetch_offset | The message offset. | 
| last_fetched_epoch | The epoch of the last fetched record or -1 if there is none. | 
| log_start_offset | The earliest available offset of the follower replica.  The field is only used when the request is sent by the follower. | 
| partition_max_bytes | The maximum bytes to fetch from this partition.  See KIP-74 for cases where this limit may not be honored. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| forgotten_topics_data | In an incremental fetch request, the partitions to remove. | 
| topic | The topic name. | 
| partitions | The partitions indexes to forget. | 
| _tagged_fields | The tagged fields | 
| rack_id | Rack ID of the consumer making this request. | 
| _tagged_fields | 
| Tag | Tagged field | Description | 
|---|
 
| 0 | cluster_id | The clusterId if known. This is used to validate metadata fetches prior to broker registration. |  | 
Fetch Request (Version: 13) => replica_id max_wait_ms min_bytes max_bytes isolation_level session_id session_epoch [topics] [forgotten_topics_data] rack_id _tagged_fields 
  replica_id => INT32
  max_wait_ms => INT32
  min_bytes => INT32
  max_bytes => INT32
  isolation_level => INT8
  session_id => INT32
  session_epoch => INT32
  topics => topic_id [partitions] _tagged_fields 
    topic_id => UUID
    partitions => partition current_leader_epoch fetch_offset last_fetched_epoch log_start_offset partition_max_bytes _tagged_fields 
      partition => INT32
      current_leader_epoch => INT32
      fetch_offset => INT64
      last_fetched_epoch => INT32
      log_start_offset => INT64
      partition_max_bytes => INT32
  forgotten_topics_data => topic_id [partitions] _tagged_fields 
    topic_id => UUID
    partitions => INT32
  rack_id => COMPACT_STRING
Request header version: 2
| Field | Description | 
|---|
| replica_id | The broker ID of the follower, of -1 if this request is from a consumer. | 
| max_wait_ms | The maximum time in milliseconds to wait for the response. | 
| min_bytes | The minimum bytes to accumulate in the response. | 
| max_bytes | The maximum bytes to fetch.  See KIP-74 for cases where this limit may not be honored. | 
| isolation_level | This setting controls the visibility of transactional records. Using READ_UNCOMMITTED (isolation_level = 0) makes all records visible. With READ_COMMITTED (isolation_level = 1), non-transactional and COMMITTED transactional records are visible. To be more concrete, READ_COMMITTED returns all data from offsets smaller than the current LSO (last stable offset), and enables the inclusion of the list of aborted transactions in the result, which allows consumers to discard ABORTED transactional records. | 
| session_id | The fetch session ID. | 
| session_epoch | The fetch session epoch, which is used for ordering requests in a session. | 
| topics | The topics to fetch. | 
| topic_id | The unique topic ID. | 
| partitions | The partitions to fetch. | 
| partition | The partition index. | 
| current_leader_epoch | The current leader epoch of the partition. | 
| fetch_offset | The message offset. | 
| last_fetched_epoch | The epoch of the last fetched record or -1 if there is none. | 
| log_start_offset | The earliest available offset of the follower replica.  The field is only used when the request is sent by the follower. | 
| partition_max_bytes | The maximum bytes to fetch from this partition.  See KIP-74 for cases where this limit may not be honored. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| forgotten_topics_data | In an incremental fetch request, the partitions to remove. | 
| topic_id | The unique topic ID. | 
| partitions | The partitions indexes to forget. | 
| _tagged_fields | The tagged fields | 
| rack_id | Rack ID of the consumer making this request. | 
| _tagged_fields | 
| Tag | Tagged field | Description | 
|---|
 
| 0 | cluster_id | The clusterId if known. This is used to validate metadata fetches prior to broker registration. |  | 
Fetch Request (Version: 14) => replica_id max_wait_ms min_bytes max_bytes isolation_level session_id session_epoch [topics] [forgotten_topics_data] rack_id _tagged_fields 
  replica_id => INT32
  max_wait_ms => INT32
  min_bytes => INT32
  max_bytes => INT32
  isolation_level => INT8
  session_id => INT32
  session_epoch => INT32
  topics => topic_id [partitions] _tagged_fields 
    topic_id => UUID
    partitions => partition current_leader_epoch fetch_offset last_fetched_epoch log_start_offset partition_max_bytes _tagged_fields 
      partition => INT32
      current_leader_epoch => INT32
      fetch_offset => INT64
      last_fetched_epoch => INT32
      log_start_offset => INT64
      partition_max_bytes => INT32
  forgotten_topics_data => topic_id [partitions] _tagged_fields 
    topic_id => UUID
    partitions => INT32
  rack_id => COMPACT_STRING
Request header version: 2
| Field | Description | 
|---|
| replica_id | The broker ID of the follower, of -1 if this request is from a consumer. | 
| max_wait_ms | The maximum time in milliseconds to wait for the response. | 
| min_bytes | The minimum bytes to accumulate in the response. | 
| max_bytes | The maximum bytes to fetch.  See KIP-74 for cases where this limit may not be honored. | 
| isolation_level | This setting controls the visibility of transactional records. Using READ_UNCOMMITTED (isolation_level = 0) makes all records visible. With READ_COMMITTED (isolation_level = 1), non-transactional and COMMITTED transactional records are visible. To be more concrete, READ_COMMITTED returns all data from offsets smaller than the current LSO (last stable offset), and enables the inclusion of the list of aborted transactions in the result, which allows consumers to discard ABORTED transactional records. | 
| session_id | The fetch session ID. | 
| session_epoch | The fetch session epoch, which is used for ordering requests in a session. | 
| topics | The topics to fetch. | 
| topic_id | The unique topic ID. | 
| partitions | The partitions to fetch. | 
| partition | The partition index. | 
| current_leader_epoch | The current leader epoch of the partition. | 
| fetch_offset | The message offset. | 
| last_fetched_epoch | The epoch of the last fetched record or -1 if there is none. | 
| log_start_offset | The earliest available offset of the follower replica.  The field is only used when the request is sent by the follower. | 
| partition_max_bytes | The maximum bytes to fetch from this partition.  See KIP-74 for cases where this limit may not be honored. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| forgotten_topics_data | In an incremental fetch request, the partitions to remove. | 
| topic_id | The unique topic ID. | 
| partitions | The partitions indexes to forget. | 
| _tagged_fields | The tagged fields | 
| rack_id | Rack ID of the consumer making this request. | 
| _tagged_fields | 
| Tag | Tagged field | Description | 
|---|
 
| 0 | cluster_id | The clusterId if known. This is used to validate metadata fetches prior to broker registration. |  | 
Fetch Request (Version: 15) => max_wait_ms min_bytes max_bytes isolation_level session_id session_epoch [topics] [forgotten_topics_data] rack_id _tagged_fields 
  max_wait_ms => INT32
  min_bytes => INT32
  max_bytes => INT32
  isolation_level => INT8
  session_id => INT32
  session_epoch => INT32
  topics => topic_id [partitions] _tagged_fields 
    topic_id => UUID
    partitions => partition current_leader_epoch fetch_offset last_fetched_epoch log_start_offset partition_max_bytes _tagged_fields 
      partition => INT32
      current_leader_epoch => INT32
      fetch_offset => INT64
      last_fetched_epoch => INT32
      log_start_offset => INT64
      partition_max_bytes => INT32
  forgotten_topics_data => topic_id [partitions] _tagged_fields 
    topic_id => UUID
    partitions => INT32
  rack_id => COMPACT_STRING
Request header version: 2
| Field | Description | 
|---|
| max_wait_ms | The maximum time in milliseconds to wait for the response. | 
| min_bytes | The minimum bytes to accumulate in the response. | 
| max_bytes | The maximum bytes to fetch.  See KIP-74 for cases where this limit may not be honored. | 
| isolation_level | This setting controls the visibility of transactional records. Using READ_UNCOMMITTED (isolation_level = 0) makes all records visible. With READ_COMMITTED (isolation_level = 1), non-transactional and COMMITTED transactional records are visible. To be more concrete, READ_COMMITTED returns all data from offsets smaller than the current LSO (last stable offset), and enables the inclusion of the list of aborted transactions in the result, which allows consumers to discard ABORTED transactional records. | 
| session_id | The fetch session ID. | 
| session_epoch | The fetch session epoch, which is used for ordering requests in a session. | 
| topics | The topics to fetch. | 
| topic_id | The unique topic ID. | 
| partitions | The partitions to fetch. | 
| partition | The partition index. | 
| current_leader_epoch | The current leader epoch of the partition. | 
| fetch_offset | The message offset. | 
| last_fetched_epoch | The epoch of the last fetched record or -1 if there is none. | 
| log_start_offset | The earliest available offset of the follower replica.  The field is only used when the request is sent by the follower. | 
| partition_max_bytes | The maximum bytes to fetch from this partition.  See KIP-74 for cases where this limit may not be honored. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| forgotten_topics_data | In an incremental fetch request, the partitions to remove. | 
| topic_id | The unique topic ID. | 
| partitions | The partitions indexes to forget. | 
| _tagged_fields | The tagged fields | 
| rack_id | Rack ID of the consumer making this request. | 
| _tagged_fields | 
| Tag | Tagged field | Description | 
|---|
 
| 0 | cluster_id | The clusterId if known. This is used to validate metadata fetches prior to broker registration. |  
| 1 | replica_state | The state of the replica in the follower. 
| Field | Description | 
|---|
 
| replica_id | The replica ID of the follower, or -1 if this request is from a consumer. |  
| replica_epoch | The epoch of this follower, or -1 if not available. |  
| _tagged_fields | The tagged fields |  |  | 
Fetch Request (Version: 16) => max_wait_ms min_bytes max_bytes isolation_level session_id session_epoch [topics] [forgotten_topics_data] rack_id _tagged_fields 
  max_wait_ms => INT32
  min_bytes => INT32
  max_bytes => INT32
  isolation_level => INT8
  session_id => INT32
  session_epoch => INT32
  topics => topic_id [partitions] _tagged_fields 
    topic_id => UUID
    partitions => partition current_leader_epoch fetch_offset last_fetched_epoch log_start_offset partition_max_bytes _tagged_fields 
      partition => INT32
      current_leader_epoch => INT32
      fetch_offset => INT64
      last_fetched_epoch => INT32
      log_start_offset => INT64
      partition_max_bytes => INT32
  forgotten_topics_data => topic_id [partitions] _tagged_fields 
    topic_id => UUID
    partitions => INT32
  rack_id => COMPACT_STRING
Request header version: 2
| Field | Description | 
|---|
| max_wait_ms | The maximum time in milliseconds to wait for the response. | 
| min_bytes | The minimum bytes to accumulate in the response. | 
| max_bytes | The maximum bytes to fetch.  See KIP-74 for cases where this limit may not be honored. | 
| isolation_level | This setting controls the visibility of transactional records. Using READ_UNCOMMITTED (isolation_level = 0) makes all records visible. With READ_COMMITTED (isolation_level = 1), non-transactional and COMMITTED transactional records are visible. To be more concrete, READ_COMMITTED returns all data from offsets smaller than the current LSO (last stable offset), and enables the inclusion of the list of aborted transactions in the result, which allows consumers to discard ABORTED transactional records. | 
| session_id | The fetch session ID. | 
| session_epoch | The fetch session epoch, which is used for ordering requests in a session. | 
| topics | The topics to fetch. | 
| topic_id | The unique topic ID. | 
| partitions | The partitions to fetch. | 
| partition | The partition index. | 
| current_leader_epoch | The current leader epoch of the partition. | 
| fetch_offset | The message offset. | 
| last_fetched_epoch | The epoch of the last fetched record or -1 if there is none. | 
| log_start_offset | The earliest available offset of the follower replica.  The field is only used when the request is sent by the follower. | 
| partition_max_bytes | The maximum bytes to fetch from this partition.  See KIP-74 for cases where this limit may not be honored. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| forgotten_topics_data | In an incremental fetch request, the partitions to remove. | 
| topic_id | The unique topic ID. | 
| partitions | The partitions indexes to forget. | 
| _tagged_fields | The tagged fields | 
| rack_id | Rack ID of the consumer making this request. | 
| _tagged_fields | 
| Tag | Tagged field | Description | 
|---|
 
| 0 | cluster_id | The clusterId if known. This is used to validate metadata fetches prior to broker registration. |  
| 1 | replica_state | The state of the replica in the follower. 
| Field | Description | 
|---|
 
| replica_id | The replica ID of the follower, or -1 if this request is from a consumer. |  
| replica_epoch | The epoch of this follower, or -1 if not available. |  
| _tagged_fields | The tagged fields |  |  | 
Fetch Request (Version: 17) => max_wait_ms min_bytes max_bytes isolation_level session_id session_epoch [topics] [forgotten_topics_data] rack_id _tagged_fields 
  max_wait_ms => INT32
  min_bytes => INT32
  max_bytes => INT32
  isolation_level => INT8
  session_id => INT32
  session_epoch => INT32
  topics => topic_id [partitions] _tagged_fields 
    topic_id => UUID
    partitions => partition current_leader_epoch fetch_offset last_fetched_epoch log_start_offset partition_max_bytes _tagged_fields 
      partition => INT32
      current_leader_epoch => INT32
      fetch_offset => INT64
      last_fetched_epoch => INT32
      log_start_offset => INT64
      partition_max_bytes => INT32
  forgotten_topics_data => topic_id [partitions] _tagged_fields 
    topic_id => UUID
    partitions => INT32
  rack_id => COMPACT_STRING
Request header version: 2
| Field | Description | 
|---|
| max_wait_ms | The maximum time in milliseconds to wait for the response. | 
| min_bytes | The minimum bytes to accumulate in the response. | 
| max_bytes | The maximum bytes to fetch.  See KIP-74 for cases where this limit may not be honored. | 
| isolation_level | This setting controls the visibility of transactional records. Using READ_UNCOMMITTED (isolation_level = 0) makes all records visible. With READ_COMMITTED (isolation_level = 1), non-transactional and COMMITTED transactional records are visible. To be more concrete, READ_COMMITTED returns all data from offsets smaller than the current LSO (last stable offset), and enables the inclusion of the list of aborted transactions in the result, which allows consumers to discard ABORTED transactional records. | 
| session_id | The fetch session ID. | 
| session_epoch | The fetch session epoch, which is used for ordering requests in a session. | 
| topics | The topics to fetch. | 
| topic_id | The unique topic ID. | 
| partitions | The partitions to fetch. | 
| partition | The partition index. | 
| current_leader_epoch | The current leader epoch of the partition. | 
| fetch_offset | The message offset. | 
| last_fetched_epoch | The epoch of the last fetched record or -1 if there is none. | 
| log_start_offset | The earliest available offset of the follower replica.  The field is only used when the request is sent by the follower. | 
| partition_max_bytes | The maximum bytes to fetch from this partition.  See KIP-74 for cases where this limit may not be honored. | 
| _tagged_fields | 
| Tag | Tagged field | Description | 
|---|
 
| 0 | replica_directory_id | The directory id of the follower fetching. |  | 
| _tagged_fields | The tagged fields | 
| forgotten_topics_data | In an incremental fetch request, the partitions to remove. | 
| topic_id | The unique topic ID. | 
| partitions | The partitions indexes to forget. | 
| _tagged_fields | The tagged fields | 
| rack_id | Rack ID of the consumer making this request. | 
| _tagged_fields | 
| Tag | Tagged field | Description | 
|---|
 
| 0 | cluster_id | The clusterId if known. This is used to validate metadata fetches prior to broker registration. |  
| 1 | replica_state | The state of the replica in the follower. 
| Field | Description | 
|---|
 
| replica_id | The replica ID of the follower, or -1 if this request is from a consumer. |  
| replica_epoch | The epoch of this follower, or -1 if not available. |  
| _tagged_fields | The tagged fields |  |  | 
Fetch Response (Version: 4) => throttle_time_ms [responses] 
  throttle_time_ms => INT32
  responses => topic [partitions] 
    topic => STRING
    partitions => partition_index error_code high_watermark last_stable_offset [aborted_transactions] records 
      partition_index => INT32
      error_code => INT16
      high_watermark => INT64
      last_stable_offset => INT64
      aborted_transactions => producer_id first_offset 
        producer_id => INT64
        first_offset => INT64
      records => RECORDS
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| responses | The response topics. | 
| topic | The topic name. | 
| partitions | The topic partitions. | 
| partition_index | The partition index. | 
| error_code | The error code, or 0 if there was no fetch error. | 
| high_watermark | The current high water mark. | 
| last_stable_offset | The last stable offset (or LSO) of the partition. This is the last offset such that the state of all transactional records prior to this offset have been decided (ABORTED or COMMITTED). | 
| aborted_transactions | The aborted transactions. | 
| producer_id | The producer id associated with the aborted transaction. | 
| first_offset | The first offset in the aborted transaction. | 
| records | The record data. | 
Fetch Response (Version: 5) => throttle_time_ms [responses] 
  throttle_time_ms => INT32
  responses => topic [partitions] 
    topic => STRING
    partitions => partition_index error_code high_watermark last_stable_offset log_start_offset [aborted_transactions] records 
      partition_index => INT32
      error_code => INT16
      high_watermark => INT64
      last_stable_offset => INT64
      log_start_offset => INT64
      aborted_transactions => producer_id first_offset 
        producer_id => INT64
        first_offset => INT64
      records => RECORDS
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| responses | The response topics. | 
| topic | The topic name. | 
| partitions | The topic partitions. | 
| partition_index | The partition index. | 
| error_code | The error code, or 0 if there was no fetch error. | 
| high_watermark | The current high water mark. | 
| last_stable_offset | The last stable offset (or LSO) of the partition. This is the last offset such that the state of all transactional records prior to this offset have been decided (ABORTED or COMMITTED). | 
| log_start_offset | The current log start offset. | 
| aborted_transactions | The aborted transactions. | 
| producer_id | The producer id associated with the aborted transaction. | 
| first_offset | The first offset in the aborted transaction. | 
| records | The record data. | 
Fetch Response (Version: 6) => throttle_time_ms [responses] 
  throttle_time_ms => INT32
  responses => topic [partitions] 
    topic => STRING
    partitions => partition_index error_code high_watermark last_stable_offset log_start_offset [aborted_transactions] records 
      partition_index => INT32
      error_code => INT16
      high_watermark => INT64
      last_stable_offset => INT64
      log_start_offset => INT64
      aborted_transactions => producer_id first_offset 
        producer_id => INT64
        first_offset => INT64
      records => RECORDS
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| responses | The response topics. | 
| topic | The topic name. | 
| partitions | The topic partitions. | 
| partition_index | The partition index. | 
| error_code | The error code, or 0 if there was no fetch error. | 
| high_watermark | The current high water mark. | 
| last_stable_offset | The last stable offset (or LSO) of the partition. This is the last offset such that the state of all transactional records prior to this offset have been decided (ABORTED or COMMITTED). | 
| log_start_offset | The current log start offset. | 
| aborted_transactions | The aborted transactions. | 
| producer_id | The producer id associated with the aborted transaction. | 
| first_offset | The first offset in the aborted transaction. | 
| records | The record data. | 
Fetch Response (Version: 7) => throttle_time_ms error_code session_id [responses] 
  throttle_time_ms => INT32
  error_code => INT16
  session_id => INT32
  responses => topic [partitions] 
    topic => STRING
    partitions => partition_index error_code high_watermark last_stable_offset log_start_offset [aborted_transactions] records 
      partition_index => INT32
      error_code => INT16
      high_watermark => INT64
      last_stable_offset => INT64
      log_start_offset => INT64
      aborted_transactions => producer_id first_offset 
        producer_id => INT64
        first_offset => INT64
      records => RECORDS
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The top level response error code. | 
| session_id | The fetch session ID, or 0 if this is not part of a fetch session. | 
| responses | The response topics. | 
| topic | The topic name. | 
| partitions | The topic partitions. | 
| partition_index | The partition index. | 
| error_code | The error code, or 0 if there was no fetch error. | 
| high_watermark | The current high water mark. | 
| last_stable_offset | The last stable offset (or LSO) of the partition. This is the last offset such that the state of all transactional records prior to this offset have been decided (ABORTED or COMMITTED). | 
| log_start_offset | The current log start offset. | 
| aborted_transactions | The aborted transactions. | 
| producer_id | The producer id associated with the aborted transaction. | 
| first_offset | The first offset in the aborted transaction. | 
| records | The record data. | 
Fetch Response (Version: 8) => throttle_time_ms error_code session_id [responses] 
  throttle_time_ms => INT32
  error_code => INT16
  session_id => INT32
  responses => topic [partitions] 
    topic => STRING
    partitions => partition_index error_code high_watermark last_stable_offset log_start_offset [aborted_transactions] records 
      partition_index => INT32
      error_code => INT16
      high_watermark => INT64
      last_stable_offset => INT64
      log_start_offset => INT64
      aborted_transactions => producer_id first_offset 
        producer_id => INT64
        first_offset => INT64
      records => RECORDS
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The top level response error code. | 
| session_id | The fetch session ID, or 0 if this is not part of a fetch session. | 
| responses | The response topics. | 
| topic | The topic name. | 
| partitions | The topic partitions. | 
| partition_index | The partition index. | 
| error_code | The error code, or 0 if there was no fetch error. | 
| high_watermark | The current high water mark. | 
| last_stable_offset | The last stable offset (or LSO) of the partition. This is the last offset such that the state of all transactional records prior to this offset have been decided (ABORTED or COMMITTED). | 
| log_start_offset | The current log start offset. | 
| aborted_transactions | The aborted transactions. | 
| producer_id | The producer id associated with the aborted transaction. | 
| first_offset | The first offset in the aborted transaction. | 
| records | The record data. | 
Fetch Response (Version: 9) => throttle_time_ms error_code session_id [responses] 
  throttle_time_ms => INT32
  error_code => INT16
  session_id => INT32
  responses => topic [partitions] 
    topic => STRING
    partitions => partition_index error_code high_watermark last_stable_offset log_start_offset [aborted_transactions] records 
      partition_index => INT32
      error_code => INT16
      high_watermark => INT64
      last_stable_offset => INT64
      log_start_offset => INT64
      aborted_transactions => producer_id first_offset 
        producer_id => INT64
        first_offset => INT64
      records => RECORDS
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The top level response error code. | 
| session_id | The fetch session ID, or 0 if this is not part of a fetch session. | 
| responses | The response topics. | 
| topic | The topic name. | 
| partitions | The topic partitions. | 
| partition_index | The partition index. | 
| error_code | The error code, or 0 if there was no fetch error. | 
| high_watermark | The current high water mark. | 
| last_stable_offset | The last stable offset (or LSO) of the partition. This is the last offset such that the state of all transactional records prior to this offset have been decided (ABORTED or COMMITTED). | 
| log_start_offset | The current log start offset. | 
| aborted_transactions | The aborted transactions. | 
| producer_id | The producer id associated with the aborted transaction. | 
| first_offset | The first offset in the aborted transaction. | 
| records | The record data. | 
Fetch Response (Version: 10) => throttle_time_ms error_code session_id [responses] 
  throttle_time_ms => INT32
  error_code => INT16
  session_id => INT32
  responses => topic [partitions] 
    topic => STRING
    partitions => partition_index error_code high_watermark last_stable_offset log_start_offset [aborted_transactions] records 
      partition_index => INT32
      error_code => INT16
      high_watermark => INT64
      last_stable_offset => INT64
      log_start_offset => INT64
      aborted_transactions => producer_id first_offset 
        producer_id => INT64
        first_offset => INT64
      records => RECORDS
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The top level response error code. | 
| session_id | The fetch session ID, or 0 if this is not part of a fetch session. | 
| responses | The response topics. | 
| topic | The topic name. | 
| partitions | The topic partitions. | 
| partition_index | The partition index. | 
| error_code | The error code, or 0 if there was no fetch error. | 
| high_watermark | The current high water mark. | 
| last_stable_offset | The last stable offset (or LSO) of the partition. This is the last offset such that the state of all transactional records prior to this offset have been decided (ABORTED or COMMITTED). | 
| log_start_offset | The current log start offset. | 
| aborted_transactions | The aborted transactions. | 
| producer_id | The producer id associated with the aborted transaction. | 
| first_offset | The first offset in the aborted transaction. | 
| records | The record data. | 
Fetch Response (Version: 11) => throttle_time_ms error_code session_id [responses] 
  throttle_time_ms => INT32
  error_code => INT16
  session_id => INT32
  responses => topic [partitions] 
    topic => STRING
    partitions => partition_index error_code high_watermark last_stable_offset log_start_offset [aborted_transactions] preferred_read_replica records 
      partition_index => INT32
      error_code => INT16
      high_watermark => INT64
      last_stable_offset => INT64
      log_start_offset => INT64
      aborted_transactions => producer_id first_offset 
        producer_id => INT64
        first_offset => INT64
      preferred_read_replica => INT32
      records => RECORDS
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The top level response error code. | 
| session_id | The fetch session ID, or 0 if this is not part of a fetch session. | 
| responses | The response topics. | 
| topic | The topic name. | 
| partitions | The topic partitions. | 
| partition_index | The partition index. | 
| error_code | The error code, or 0 if there was no fetch error. | 
| high_watermark | The current high water mark. | 
| last_stable_offset | The last stable offset (or LSO) of the partition. This is the last offset such that the state of all transactional records prior to this offset have been decided (ABORTED or COMMITTED). | 
| log_start_offset | The current log start offset. | 
| aborted_transactions | The aborted transactions. | 
| producer_id | The producer id associated with the aborted transaction. | 
| first_offset | The first offset in the aborted transaction. | 
| preferred_read_replica | The preferred read replica for the consumer to use on its next fetch request. | 
| records | The record data. | 
Fetch Response (Version: 12) => throttle_time_ms error_code session_id [responses] _tagged_fields 
  throttle_time_ms => INT32
  error_code => INT16
  session_id => INT32
  responses => topic [partitions] _tagged_fields 
    topic => COMPACT_STRING
    partitions => partition_index error_code high_watermark last_stable_offset log_start_offset [aborted_transactions] preferred_read_replica records _tagged_fields 
      partition_index => INT32
      error_code => INT16
      high_watermark => INT64
      last_stable_offset => INT64
      log_start_offset => INT64
      aborted_transactions => producer_id first_offset _tagged_fields 
        producer_id => INT64
        first_offset => INT64
      preferred_read_replica => INT32
      records => COMPACT_RECORDS
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The top level response error code. | 
| session_id | The fetch session ID, or 0 if this is not part of a fetch session. | 
| responses | The response topics. | 
| topic | The topic name. | 
| partitions | The topic partitions. | 
| partition_index | The partition index. | 
| error_code | The error code, or 0 if there was no fetch error. | 
| high_watermark | The current high water mark. | 
| last_stable_offset | The last stable offset (or LSO) of the partition. This is the last offset such that the state of all transactional records prior to this offset have been decided (ABORTED or COMMITTED). | 
| log_start_offset | The current log start offset. | 
| aborted_transactions | The aborted transactions. | 
| producer_id | The producer id associated with the aborted transaction. | 
| first_offset | The first offset in the aborted transaction. | 
| _tagged_fields | The tagged fields | 
| preferred_read_replica | The preferred read replica for the consumer to use on its next fetch request. | 
| records | The record data. | 
| _tagged_fields | 
| Tag | Tagged field | Description | 
|---|
 
| 0 | diverging_epoch | In case divergence is detected based on the `LastFetchedEpoch` and `FetchOffset` in the request, this field indicates the largest epoch and its end offset such that subsequent records are known to diverge. 
| Field | Description | 
|---|
 
| epoch | The largest epoch. |  
| end_offset | The end offset of the epoch. |  
| _tagged_fields | The tagged fields |  |  
| 1 | current_leader | The current leader of the partition. 
| Field | Description | 
|---|
 
| leader_id | The ID of the current leader or -1 if the leader is unknown. |  
| leader_epoch | The latest known leader epoch. |  
| _tagged_fields | The tagged fields |  |  
| 2 | snapshot_id | In the case of fetching an offset less than the LogStartOffset, this is the end offset and epoch that should be used in the FetchSnapshot request. 
| Field | Description | 
|---|
 
| end_offset | The end offset of the epoch. |  
| epoch | The largest epoch. |  
| _tagged_fields | The tagged fields |  |  | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
Fetch Response (Version: 13) => throttle_time_ms error_code session_id [responses] _tagged_fields 
  throttle_time_ms => INT32
  error_code => INT16
  session_id => INT32
  responses => topic_id [partitions] _tagged_fields 
    topic_id => UUID
    partitions => partition_index error_code high_watermark last_stable_offset log_start_offset [aborted_transactions] preferred_read_replica records _tagged_fields 
      partition_index => INT32
      error_code => INT16
      high_watermark => INT64
      last_stable_offset => INT64
      log_start_offset => INT64
      aborted_transactions => producer_id first_offset _tagged_fields 
        producer_id => INT64
        first_offset => INT64
      preferred_read_replica => INT32
      records => COMPACT_RECORDS
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The top level response error code. | 
| session_id | The fetch session ID, or 0 if this is not part of a fetch session. | 
| responses | The response topics. | 
| topic_id | The unique topic ID. | 
| partitions | The topic partitions. | 
| partition_index | The partition index. | 
| error_code | The error code, or 0 if there was no fetch error. | 
| high_watermark | The current high water mark. | 
| last_stable_offset | The last stable offset (or LSO) of the partition. This is the last offset such that the state of all transactional records prior to this offset have been decided (ABORTED or COMMITTED). | 
| log_start_offset | The current log start offset. | 
| aborted_transactions | The aborted transactions. | 
| producer_id | The producer id associated with the aborted transaction. | 
| first_offset | The first offset in the aborted transaction. | 
| _tagged_fields | The tagged fields | 
| preferred_read_replica | The preferred read replica for the consumer to use on its next fetch request. | 
| records | The record data. | 
| _tagged_fields | 
| Tag | Tagged field | Description | 
|---|
 
| 0 | diverging_epoch | In case divergence is detected based on the `LastFetchedEpoch` and `FetchOffset` in the request, this field indicates the largest epoch and its end offset such that subsequent records are known to diverge. 
| Field | Description | 
|---|
 
| epoch | The largest epoch. |  
| end_offset | The end offset of the epoch. |  
| _tagged_fields | The tagged fields |  |  
| 1 | current_leader | The current leader of the partition. 
| Field | Description | 
|---|
 
| leader_id | The ID of the current leader or -1 if the leader is unknown. |  
| leader_epoch | The latest known leader epoch. |  
| _tagged_fields | The tagged fields |  |  
| 2 | snapshot_id | In the case of fetching an offset less than the LogStartOffset, this is the end offset and epoch that should be used in the FetchSnapshot request. 
| Field | Description | 
|---|
 
| end_offset | The end offset of the epoch. |  
| epoch | The largest epoch. |  
| _tagged_fields | The tagged fields |  |  | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
Fetch Response (Version: 14) => throttle_time_ms error_code session_id [responses] _tagged_fields 
  throttle_time_ms => INT32
  error_code => INT16
  session_id => INT32
  responses => topic_id [partitions] _tagged_fields 
    topic_id => UUID
    partitions => partition_index error_code high_watermark last_stable_offset log_start_offset [aborted_transactions] preferred_read_replica records _tagged_fields 
      partition_index => INT32
      error_code => INT16
      high_watermark => INT64
      last_stable_offset => INT64
      log_start_offset => INT64
      aborted_transactions => producer_id first_offset _tagged_fields 
        producer_id => INT64
        first_offset => INT64
      preferred_read_replica => INT32
      records => COMPACT_RECORDS
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The top level response error code. | 
| session_id | The fetch session ID, or 0 if this is not part of a fetch session. | 
| responses | The response topics. | 
| topic_id | The unique topic ID. | 
| partitions | The topic partitions. | 
| partition_index | The partition index. | 
| error_code | The error code, or 0 if there was no fetch error. | 
| high_watermark | The current high water mark. | 
| last_stable_offset | The last stable offset (or LSO) of the partition. This is the last offset such that the state of all transactional records prior to this offset have been decided (ABORTED or COMMITTED). | 
| log_start_offset | The current log start offset. | 
| aborted_transactions | The aborted transactions. | 
| producer_id | The producer id associated with the aborted transaction. | 
| first_offset | The first offset in the aborted transaction. | 
| _tagged_fields | The tagged fields | 
| preferred_read_replica | The preferred read replica for the consumer to use on its next fetch request. | 
| records | The record data. | 
| _tagged_fields | 
| Tag | Tagged field | Description | 
|---|
 
| 0 | diverging_epoch | In case divergence is detected based on the `LastFetchedEpoch` and `FetchOffset` in the request, this field indicates the largest epoch and its end offset such that subsequent records are known to diverge. 
| Field | Description | 
|---|
 
| epoch | The largest epoch. |  
| end_offset | The end offset of the epoch. |  
| _tagged_fields | The tagged fields |  |  
| 1 | current_leader | The current leader of the partition. 
| Field | Description | 
|---|
 
| leader_id | The ID of the current leader or -1 if the leader is unknown. |  
| leader_epoch | The latest known leader epoch. |  
| _tagged_fields | The tagged fields |  |  
| 2 | snapshot_id | In the case of fetching an offset less than the LogStartOffset, this is the end offset and epoch that should be used in the FetchSnapshot request. 
| Field | Description | 
|---|
 
| end_offset | The end offset of the epoch. |  
| epoch | The largest epoch. |  
| _tagged_fields | The tagged fields |  |  | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
Fetch Response (Version: 15) => throttle_time_ms error_code session_id [responses] _tagged_fields 
  throttle_time_ms => INT32
  error_code => INT16
  session_id => INT32
  responses => topic_id [partitions] _tagged_fields 
    topic_id => UUID
    partitions => partition_index error_code high_watermark last_stable_offset log_start_offset [aborted_transactions] preferred_read_replica records _tagged_fields 
      partition_index => INT32
      error_code => INT16
      high_watermark => INT64
      last_stable_offset => INT64
      log_start_offset => INT64
      aborted_transactions => producer_id first_offset _tagged_fields 
        producer_id => INT64
        first_offset => INT64
      preferred_read_replica => INT32
      records => COMPACT_RECORDS
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The top level response error code. | 
| session_id | The fetch session ID, or 0 if this is not part of a fetch session. | 
| responses | The response topics. | 
| topic_id | The unique topic ID. | 
| partitions | The topic partitions. | 
| partition_index | The partition index. | 
| error_code | The error code, or 0 if there was no fetch error. | 
| high_watermark | The current high water mark. | 
| last_stable_offset | The last stable offset (or LSO) of the partition. This is the last offset such that the state of all transactional records prior to this offset have been decided (ABORTED or COMMITTED). | 
| log_start_offset | The current log start offset. | 
| aborted_transactions | The aborted transactions. | 
| producer_id | The producer id associated with the aborted transaction. | 
| first_offset | The first offset in the aborted transaction. | 
| _tagged_fields | The tagged fields | 
| preferred_read_replica | The preferred read replica for the consumer to use on its next fetch request. | 
| records | The record data. | 
| _tagged_fields | 
| Tag | Tagged field | Description | 
|---|
 
| 0 | diverging_epoch | In case divergence is detected based on the `LastFetchedEpoch` and `FetchOffset` in the request, this field indicates the largest epoch and its end offset such that subsequent records are known to diverge. 
| Field | Description | 
|---|
 
| epoch | The largest epoch. |  
| end_offset | The end offset of the epoch. |  
| _tagged_fields | The tagged fields |  |  
| 1 | current_leader | The current leader of the partition. 
| Field | Description | 
|---|
 
| leader_id | The ID of the current leader or -1 if the leader is unknown. |  
| leader_epoch | The latest known leader epoch. |  
| _tagged_fields | The tagged fields |  |  
| 2 | snapshot_id | In the case of fetching an offset less than the LogStartOffset, this is the end offset and epoch that should be used in the FetchSnapshot request. 
| Field | Description | 
|---|
 
| end_offset | The end offset of the epoch. |  
| epoch | The largest epoch. |  
| _tagged_fields | The tagged fields |  |  | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
Fetch Response (Version: 16) => throttle_time_ms error_code session_id [responses] _tagged_fields 
  throttle_time_ms => INT32
  error_code => INT16
  session_id => INT32
  responses => topic_id [partitions] _tagged_fields 
    topic_id => UUID
    partitions => partition_index error_code high_watermark last_stable_offset log_start_offset [aborted_transactions] preferred_read_replica records _tagged_fields 
      partition_index => INT32
      error_code => INT16
      high_watermark => INT64
      last_stable_offset => INT64
      log_start_offset => INT64
      aborted_transactions => producer_id first_offset _tagged_fields 
        producer_id => INT64
        first_offset => INT64
      preferred_read_replica => INT32
      records => COMPACT_RECORDS
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The top level response error code. | 
| session_id | The fetch session ID, or 0 if this is not part of a fetch session. | 
| responses | The response topics. | 
| topic_id | The unique topic ID. | 
| partitions | The topic partitions. | 
| partition_index | The partition index. | 
| error_code | The error code, or 0 if there was no fetch error. | 
| high_watermark | The current high water mark. | 
| last_stable_offset | The last stable offset (or LSO) of the partition. This is the last offset such that the state of all transactional records prior to this offset have been decided (ABORTED or COMMITTED). | 
| log_start_offset | The current log start offset. | 
| aborted_transactions | The aborted transactions. | 
| producer_id | The producer id associated with the aborted transaction. | 
| first_offset | The first offset in the aborted transaction. | 
| _tagged_fields | The tagged fields | 
| preferred_read_replica | The preferred read replica for the consumer to use on its next fetch request. | 
| records | The record data. | 
| _tagged_fields | 
| Tag | Tagged field | Description | 
|---|
 
| 0 | diverging_epoch | In case divergence is detected based on the `LastFetchedEpoch` and `FetchOffset` in the request, this field indicates the largest epoch and its end offset such that subsequent records are known to diverge. 
| Field | Description | 
|---|
 
| epoch | The largest epoch. |  
| end_offset | The end offset of the epoch. |  
| _tagged_fields | The tagged fields |  |  
| 1 | current_leader | The current leader of the partition. 
| Field | Description | 
|---|
 
| leader_id | The ID of the current leader or -1 if the leader is unknown. |  
| leader_epoch | The latest known leader epoch. |  
| _tagged_fields | The tagged fields |  |  
| 2 | snapshot_id | In the case of fetching an offset less than the LogStartOffset, this is the end offset and epoch that should be used in the FetchSnapshot request. 
| Field | Description | 
|---|
 
| end_offset | The end offset of the epoch. |  
| epoch | The largest epoch. |  
| _tagged_fields | The tagged fields |  |  | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | 
| Tag | Tagged field | Description | 
|---|
 
| 0 | node_endpoints | Endpoints for all current-leaders enumerated in PartitionData, with errors NOT_LEADER_OR_FOLLOWER & FENCED_LEADER_EPOCH. 
| Field | Description | 
|---|
 
| node_id | The ID of the associated node. |  
| host | The node's hostname. |  
| port | The node's port. |  
| rack | The rack of the node, or null if it has not been assigned to a rack. |  
| _tagged_fields | The tagged fields |  |  | 
ListOffsets Request (Version: 1) => replica_id [topics] 
  replica_id => INT32
  topics => name [partitions] 
    name => STRING
    partitions => partition_index timestamp 
      partition_index => INT32
      timestamp => INT64
Request header version: 1
| Field | Description | 
|---|
| replica_id | The broker ID of the requester, or -1 if this request is being made by a normal consumer. | 
| topics | Each topic in the request. | 
| name | The topic name. | 
| partitions | Each partition in the request. | 
| partition_index | The partition index. | 
| timestamp | The current timestamp. | 
ListOffsets Request (Version: 2) => replica_id isolation_level [topics] 
  replica_id => INT32
  isolation_level => INT8
  topics => name [partitions] 
    name => STRING
    partitions => partition_index timestamp 
      partition_index => INT32
      timestamp => INT64
Request header version: 1
| Field | Description | 
|---|
| replica_id | The broker ID of the requester, or -1 if this request is being made by a normal consumer. | 
| isolation_level | This setting controls the visibility of transactional records. Using READ_UNCOMMITTED (isolation_level = 0) makes all records visible. With READ_COMMITTED (isolation_level = 1), non-transactional and COMMITTED transactional records are visible. To be more concrete, READ_COMMITTED returns all data from offsets smaller than the current LSO (last stable offset), and enables the inclusion of the list of aborted transactions in the result, which allows consumers to discard ABORTED transactional records. | 
| topics | Each topic in the request. | 
| name | The topic name. | 
| partitions | Each partition in the request. | 
| partition_index | The partition index. | 
| timestamp | The current timestamp. | 
ListOffsets Request (Version: 3) => replica_id isolation_level [topics] 
  replica_id => INT32
  isolation_level => INT8
  topics => name [partitions] 
    name => STRING
    partitions => partition_index timestamp 
      partition_index => INT32
      timestamp => INT64
Request header version: 1
| Field | Description | 
|---|
| replica_id | The broker ID of the requester, or -1 if this request is being made by a normal consumer. | 
| isolation_level | This setting controls the visibility of transactional records. Using READ_UNCOMMITTED (isolation_level = 0) makes all records visible. With READ_COMMITTED (isolation_level = 1), non-transactional and COMMITTED transactional records are visible. To be more concrete, READ_COMMITTED returns all data from offsets smaller than the current LSO (last stable offset), and enables the inclusion of the list of aborted transactions in the result, which allows consumers to discard ABORTED transactional records. | 
| topics | Each topic in the request. | 
| name | The topic name. | 
| partitions | Each partition in the request. | 
| partition_index | The partition index. | 
| timestamp | The current timestamp. | 
ListOffsets Request (Version: 4) => replica_id isolation_level [topics] 
  replica_id => INT32
  isolation_level => INT8
  topics => name [partitions] 
    name => STRING
    partitions => partition_index current_leader_epoch timestamp 
      partition_index => INT32
      current_leader_epoch => INT32
      timestamp => INT64
Request header version: 1
| Field | Description | 
|---|
| replica_id | The broker ID of the requester, or -1 if this request is being made by a normal consumer. | 
| isolation_level | This setting controls the visibility of transactional records. Using READ_UNCOMMITTED (isolation_level = 0) makes all records visible. With READ_COMMITTED (isolation_level = 1), non-transactional and COMMITTED transactional records are visible. To be more concrete, READ_COMMITTED returns all data from offsets smaller than the current LSO (last stable offset), and enables the inclusion of the list of aborted transactions in the result, which allows consumers to discard ABORTED transactional records. | 
| topics | Each topic in the request. | 
| name | The topic name. | 
| partitions | Each partition in the request. | 
| partition_index | The partition index. | 
| current_leader_epoch | The current leader epoch. | 
| timestamp | The current timestamp. | 
ListOffsets Request (Version: 5) => replica_id isolation_level [topics] 
  replica_id => INT32
  isolation_level => INT8
  topics => name [partitions] 
    name => STRING
    partitions => partition_index current_leader_epoch timestamp 
      partition_index => INT32
      current_leader_epoch => INT32
      timestamp => INT64
Request header version: 1
| Field | Description | 
|---|
| replica_id | The broker ID of the requester, or -1 if this request is being made by a normal consumer. | 
| isolation_level | This setting controls the visibility of transactional records. Using READ_UNCOMMITTED (isolation_level = 0) makes all records visible. With READ_COMMITTED (isolation_level = 1), non-transactional and COMMITTED transactional records are visible. To be more concrete, READ_COMMITTED returns all data from offsets smaller than the current LSO (last stable offset), and enables the inclusion of the list of aborted transactions in the result, which allows consumers to discard ABORTED transactional records. | 
| topics | Each topic in the request. | 
| name | The topic name. | 
| partitions | Each partition in the request. | 
| partition_index | The partition index. | 
| current_leader_epoch | The current leader epoch. | 
| timestamp | The current timestamp. | 
ListOffsets Request (Version: 6) => replica_id isolation_level [topics] _tagged_fields 
  replica_id => INT32
  isolation_level => INT8
  topics => name [partitions] _tagged_fields 
    name => COMPACT_STRING
    partitions => partition_index current_leader_epoch timestamp _tagged_fields 
      partition_index => INT32
      current_leader_epoch => INT32
      timestamp => INT64
Request header version: 2
| Field | Description | 
|---|
| replica_id | The broker ID of the requester, or -1 if this request is being made by a normal consumer. | 
| isolation_level | This setting controls the visibility of transactional records. Using READ_UNCOMMITTED (isolation_level = 0) makes all records visible. With READ_COMMITTED (isolation_level = 1), non-transactional and COMMITTED transactional records are visible. To be more concrete, READ_COMMITTED returns all data from offsets smaller than the current LSO (last stable offset), and enables the inclusion of the list of aborted transactions in the result, which allows consumers to discard ABORTED transactional records. | 
| topics | Each topic in the request. | 
| name | The topic name. | 
| partitions | Each partition in the request. | 
| partition_index | The partition index. | 
| current_leader_epoch | The current leader epoch. | 
| timestamp | The current timestamp. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
ListOffsets Request (Version: 7) => replica_id isolation_level [topics] _tagged_fields 
  replica_id => INT32
  isolation_level => INT8
  topics => name [partitions] _tagged_fields 
    name => COMPACT_STRING
    partitions => partition_index current_leader_epoch timestamp _tagged_fields 
      partition_index => INT32
      current_leader_epoch => INT32
      timestamp => INT64
Request header version: 2
| Field | Description | 
|---|
| replica_id | The broker ID of the requester, or -1 if this request is being made by a normal consumer. | 
| isolation_level | This setting controls the visibility of transactional records. Using READ_UNCOMMITTED (isolation_level = 0) makes all records visible. With READ_COMMITTED (isolation_level = 1), non-transactional and COMMITTED transactional records are visible. To be more concrete, READ_COMMITTED returns all data from offsets smaller than the current LSO (last stable offset), and enables the inclusion of the list of aborted transactions in the result, which allows consumers to discard ABORTED transactional records. | 
| topics | Each topic in the request. | 
| name | The topic name. | 
| partitions | Each partition in the request. | 
| partition_index | The partition index. | 
| current_leader_epoch | The current leader epoch. | 
| timestamp | The current timestamp. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
ListOffsets Request (Version: 8) => replica_id isolation_level [topics] _tagged_fields 
  replica_id => INT32
  isolation_level => INT8
  topics => name [partitions] _tagged_fields 
    name => COMPACT_STRING
    partitions => partition_index current_leader_epoch timestamp _tagged_fields 
      partition_index => INT32
      current_leader_epoch => INT32
      timestamp => INT64
Request header version: 2
| Field | Description | 
|---|
| replica_id | The broker ID of the requester, or -1 if this request is being made by a normal consumer. | 
| isolation_level | This setting controls the visibility of transactional records. Using READ_UNCOMMITTED (isolation_level = 0) makes all records visible. With READ_COMMITTED (isolation_level = 1), non-transactional and COMMITTED transactional records are visible. To be more concrete, READ_COMMITTED returns all data from offsets smaller than the current LSO (last stable offset), and enables the inclusion of the list of aborted transactions in the result, which allows consumers to discard ABORTED transactional records. | 
| topics | Each topic in the request. | 
| name | The topic name. | 
| partitions | Each partition in the request. | 
| partition_index | The partition index. | 
| current_leader_epoch | The current leader epoch. | 
| timestamp | The current timestamp. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
ListOffsets Request (Version: 9) => replica_id isolation_level [topics] _tagged_fields 
  replica_id => INT32
  isolation_level => INT8
  topics => name [partitions] _tagged_fields 
    name => COMPACT_STRING
    partitions => partition_index current_leader_epoch timestamp _tagged_fields 
      partition_index => INT32
      current_leader_epoch => INT32
      timestamp => INT64
Request header version: 2
| Field | Description | 
|---|
| replica_id | The broker ID of the requester, or -1 if this request is being made by a normal consumer. | 
| isolation_level | This setting controls the visibility of transactional records. Using READ_UNCOMMITTED (isolation_level = 0) makes all records visible. With READ_COMMITTED (isolation_level = 1), non-transactional and COMMITTED transactional records are visible. To be more concrete, READ_COMMITTED returns all data from offsets smaller than the current LSO (last stable offset), and enables the inclusion of the list of aborted transactions in the result, which allows consumers to discard ABORTED transactional records. | 
| topics | Each topic in the request. | 
| name | The topic name. | 
| partitions | Each partition in the request. | 
| partition_index | The partition index. | 
| current_leader_epoch | The current leader epoch. | 
| timestamp | The current timestamp. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
ListOffsets Request (Version: 10) => replica_id isolation_level [topics] timeout_ms _tagged_fields 
  replica_id => INT32
  isolation_level => INT8
  topics => name [partitions] _tagged_fields 
    name => COMPACT_STRING
    partitions => partition_index current_leader_epoch timestamp _tagged_fields 
      partition_index => INT32
      current_leader_epoch => INT32
      timestamp => INT64
  timeout_ms => INT32
Request header version: 2
| Field | Description | 
|---|
| replica_id | The broker ID of the requester, or -1 if this request is being made by a normal consumer. | 
| isolation_level | This setting controls the visibility of transactional records. Using READ_UNCOMMITTED (isolation_level = 0) makes all records visible. With READ_COMMITTED (isolation_level = 1), non-transactional and COMMITTED transactional records are visible. To be more concrete, READ_COMMITTED returns all data from offsets smaller than the current LSO (last stable offset), and enables the inclusion of the list of aborted transactions in the result, which allows consumers to discard ABORTED transactional records. | 
| topics | Each topic in the request. | 
| name | The topic name. | 
| partitions | Each partition in the request. | 
| partition_index | The partition index. | 
| current_leader_epoch | The current leader epoch. | 
| timestamp | The current timestamp. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| timeout_ms | The timeout to await a response in milliseconds for requests that require reading from remote storage for topics enabled with tiered storage. | 
| _tagged_fields | The tagged fields | 
ListOffsets Response (Version: 1) => [topics] 
  topics => name [partitions] 
    name => STRING
    partitions => partition_index error_code timestamp offset 
      partition_index => INT32
      error_code => INT16
      timestamp => INT64
      offset => INT64
Response header version: 0
| Field | Description | 
|---|
| topics | Each topic in the response. | 
| name | The topic name. | 
| partitions | Each partition in the response. | 
| partition_index | The partition index. | 
| error_code | The partition error code, or 0 if there was no error. | 
| timestamp | The timestamp associated with the returned offset. | 
| offset | The returned offset. | 
ListOffsets Response (Version: 2) => throttle_time_ms [topics] 
  throttle_time_ms => INT32
  topics => name [partitions] 
    name => STRING
    partitions => partition_index error_code timestamp offset 
      partition_index => INT32
      error_code => INT16
      timestamp => INT64
      offset => INT64
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | Each topic in the response. | 
| name | The topic name. | 
| partitions | Each partition in the response. | 
| partition_index | The partition index. | 
| error_code | The partition error code, or 0 if there was no error. | 
| timestamp | The timestamp associated with the returned offset. | 
| offset | The returned offset. | 
ListOffsets Response (Version: 3) => throttle_time_ms [topics] 
  throttle_time_ms => INT32
  topics => name [partitions] 
    name => STRING
    partitions => partition_index error_code timestamp offset 
      partition_index => INT32
      error_code => INT16
      timestamp => INT64
      offset => INT64
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | Each topic in the response. | 
| name | The topic name. | 
| partitions | Each partition in the response. | 
| partition_index | The partition index. | 
| error_code | The partition error code, or 0 if there was no error. | 
| timestamp | The timestamp associated with the returned offset. | 
| offset | The returned offset. | 
ListOffsets Response (Version: 4) => throttle_time_ms [topics] 
  throttle_time_ms => INT32
  topics => name [partitions] 
    name => STRING
    partitions => partition_index error_code timestamp offset leader_epoch 
      partition_index => INT32
      error_code => INT16
      timestamp => INT64
      offset => INT64
      leader_epoch => INT32
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | Each topic in the response. | 
| name | The topic name. | 
| partitions | Each partition in the response. | 
| partition_index | The partition index. | 
| error_code | The partition error code, or 0 if there was no error. | 
| timestamp | The timestamp associated with the returned offset. | 
| offset | The returned offset. | 
| leader_epoch | The leader epoch associated with the returned offset. | 
ListOffsets Response (Version: 5) => throttle_time_ms [topics] 
  throttle_time_ms => INT32
  topics => name [partitions] 
    name => STRING
    partitions => partition_index error_code timestamp offset leader_epoch 
      partition_index => INT32
      error_code => INT16
      timestamp => INT64
      offset => INT64
      leader_epoch => INT32
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | Each topic in the response. | 
| name | The topic name. | 
| partitions | Each partition in the response. | 
| partition_index | The partition index. | 
| error_code | The partition error code, or 0 if there was no error. | 
| timestamp | The timestamp associated with the returned offset. | 
| offset | The returned offset. | 
| leader_epoch | The leader epoch associated with the returned offset. | 
ListOffsets Response (Version: 6) => throttle_time_ms [topics] _tagged_fields 
  throttle_time_ms => INT32
  topics => name [partitions] _tagged_fields 
    name => COMPACT_STRING
    partitions => partition_index error_code timestamp offset leader_epoch _tagged_fields 
      partition_index => INT32
      error_code => INT16
      timestamp => INT64
      offset => INT64
      leader_epoch => INT32
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | Each topic in the response. | 
| name | The topic name. | 
| partitions | Each partition in the response. | 
| partition_index | The partition index. | 
| error_code | The partition error code, or 0 if there was no error. | 
| timestamp | The timestamp associated with the returned offset. | 
| offset | The returned offset. | 
| leader_epoch | The leader epoch associated with the returned offset. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
ListOffsets Response (Version: 7) => throttle_time_ms [topics] _tagged_fields 
  throttle_time_ms => INT32
  topics => name [partitions] _tagged_fields 
    name => COMPACT_STRING
    partitions => partition_index error_code timestamp offset leader_epoch _tagged_fields 
      partition_index => INT32
      error_code => INT16
      timestamp => INT64
      offset => INT64
      leader_epoch => INT32
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | Each topic in the response. | 
| name | The topic name. | 
| partitions | Each partition in the response. | 
| partition_index | The partition index. | 
| error_code | The partition error code, or 0 if there was no error. | 
| timestamp | The timestamp associated with the returned offset. | 
| offset | The returned offset. | 
| leader_epoch | The leader epoch associated with the returned offset. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
ListOffsets Response (Version: 8) => throttle_time_ms [topics] _tagged_fields 
  throttle_time_ms => INT32
  topics => name [partitions] _tagged_fields 
    name => COMPACT_STRING
    partitions => partition_index error_code timestamp offset leader_epoch _tagged_fields 
      partition_index => INT32
      error_code => INT16
      timestamp => INT64
      offset => INT64
      leader_epoch => INT32
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | Each topic in the response. | 
| name | The topic name. | 
| partitions | Each partition in the response. | 
| partition_index | The partition index. | 
| error_code | The partition error code, or 0 if there was no error. | 
| timestamp | The timestamp associated with the returned offset. | 
| offset | The returned offset. | 
| leader_epoch | The leader epoch associated with the returned offset. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
ListOffsets Response (Version: 9) => throttle_time_ms [topics] _tagged_fields 
  throttle_time_ms => INT32
  topics => name [partitions] _tagged_fields 
    name => COMPACT_STRING
    partitions => partition_index error_code timestamp offset leader_epoch _tagged_fields 
      partition_index => INT32
      error_code => INT16
      timestamp => INT64
      offset => INT64
      leader_epoch => INT32
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | Each topic in the response. | 
| name | The topic name. | 
| partitions | Each partition in the response. | 
| partition_index | The partition index. | 
| error_code | The partition error code, or 0 if there was no error. | 
| timestamp | The timestamp associated with the returned offset. | 
| offset | The returned offset. | 
| leader_epoch | The leader epoch associated with the returned offset. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
Metadata Request (Version: 0) => [topics] 
  topics => name 
    name => STRING
Request header version: 1
| Field | Description | 
|---|
| topics | The topics to fetch metadata for. | 
| name | The topic name. | 
Metadata Request (Version: 1) => [topics] 
  topics => name 
    name => STRING
Request header version: 1
| Field | Description | 
|---|
| topics | The topics to fetch metadata for. | 
| name | The topic name. | 
Metadata Request (Version: 2) => [topics] 
  topics => name 
    name => STRING
Request header version: 1
| Field | Description | 
|---|
| topics | The topics to fetch metadata for. | 
| name | The topic name. | 
Metadata Request (Version: 3) => [topics] 
  topics => name 
    name => STRING
Request header version: 1
| Field | Description | 
|---|
| topics | The topics to fetch metadata for. | 
| name | The topic name. | 
Metadata Request (Version: 4) => [topics] allow_auto_topic_creation 
  topics => name 
    name => STRING
  allow_auto_topic_creation => BOOLEAN
Request header version: 1
| Field | Description | 
|---|
| topics | The topics to fetch metadata for. | 
| name | The topic name. | 
| allow_auto_topic_creation | If this is true, the broker may auto-create topics that we requested which do not already exist, if it is configured to do so. | 
Metadata Request (Version: 5) => [topics] allow_auto_topic_creation 
  topics => name 
    name => STRING
  allow_auto_topic_creation => BOOLEAN
Request header version: 1
| Field | Description | 
|---|
| topics | The topics to fetch metadata for. | 
| name | The topic name. | 
| allow_auto_topic_creation | If this is true, the broker may auto-create topics that we requested which do not already exist, if it is configured to do so. | 
Metadata Request (Version: 6) => [topics] allow_auto_topic_creation 
  topics => name 
    name => STRING
  allow_auto_topic_creation => BOOLEAN
Request header version: 1
| Field | Description | 
|---|
| topics | The topics to fetch metadata for. | 
| name | The topic name. | 
| allow_auto_topic_creation | If this is true, the broker may auto-create topics that we requested which do not already exist, if it is configured to do so. | 
Metadata Request (Version: 7) => [topics] allow_auto_topic_creation 
  topics => name 
    name => STRING
  allow_auto_topic_creation => BOOLEAN
Request header version: 1
| Field | Description | 
|---|
| topics | The topics to fetch metadata for. | 
| name | The topic name. | 
| allow_auto_topic_creation | If this is true, the broker may auto-create topics that we requested which do not already exist, if it is configured to do so. | 
Metadata Request (Version: 8) => [topics] allow_auto_topic_creation include_cluster_authorized_operations include_topic_authorized_operations 
  topics => name 
    name => STRING
  allow_auto_topic_creation => BOOLEAN
  include_cluster_authorized_operations => BOOLEAN
  include_topic_authorized_operations => BOOLEAN
Request header version: 1
| Field | Description | 
|---|
| topics | The topics to fetch metadata for. | 
| name | The topic name. | 
| allow_auto_topic_creation | If this is true, the broker may auto-create topics that we requested which do not already exist, if it is configured to do so. | 
| include_cluster_authorized_operations | Whether to include cluster authorized operations. | 
| include_topic_authorized_operations | Whether to include topic authorized operations. | 
Metadata Request (Version: 9) => [topics] allow_auto_topic_creation include_cluster_authorized_operations include_topic_authorized_operations _tagged_fields 
  topics => name _tagged_fields 
    name => COMPACT_STRING
  allow_auto_topic_creation => BOOLEAN
  include_cluster_authorized_operations => BOOLEAN
  include_topic_authorized_operations => BOOLEAN
Request header version: 2
| Field | Description | 
|---|
| topics | The topics to fetch metadata for. | 
| name | The topic name. | 
| _tagged_fields | The tagged fields | 
| allow_auto_topic_creation | If this is true, the broker may auto-create topics that we requested which do not already exist, if it is configured to do so. | 
| include_cluster_authorized_operations | Whether to include cluster authorized operations. | 
| include_topic_authorized_operations | Whether to include topic authorized operations. | 
| _tagged_fields | The tagged fields | 
Metadata Request (Version: 10) => [topics] allow_auto_topic_creation include_cluster_authorized_operations include_topic_authorized_operations _tagged_fields 
  topics => topic_id name _tagged_fields 
    topic_id => UUID
    name => COMPACT_NULLABLE_STRING
  allow_auto_topic_creation => BOOLEAN
  include_cluster_authorized_operations => BOOLEAN
  include_topic_authorized_operations => BOOLEAN
Request header version: 2
| Field | Description | 
|---|
| topics | The topics to fetch metadata for. | 
| topic_id | The topic id. | 
| name | The topic name. | 
| _tagged_fields | The tagged fields | 
| allow_auto_topic_creation | If this is true, the broker may auto-create topics that we requested which do not already exist, if it is configured to do so. | 
| include_cluster_authorized_operations | Whether to include cluster authorized operations. | 
| include_topic_authorized_operations | Whether to include topic authorized operations. | 
| _tagged_fields | The tagged fields | 
Metadata Request (Version: 11) => [topics] allow_auto_topic_creation include_topic_authorized_operations _tagged_fields 
  topics => topic_id name _tagged_fields 
    topic_id => UUID
    name => COMPACT_NULLABLE_STRING
  allow_auto_topic_creation => BOOLEAN
  include_topic_authorized_operations => BOOLEAN
Request header version: 2
| Field | Description | 
|---|
| topics | The topics to fetch metadata for. | 
| topic_id | The topic id. | 
| name | The topic name. | 
| _tagged_fields | The tagged fields | 
| allow_auto_topic_creation | If this is true, the broker may auto-create topics that we requested which do not already exist, if it is configured to do so. | 
| include_topic_authorized_operations | Whether to include topic authorized operations. | 
| _tagged_fields | The tagged fields | 
Metadata Request (Version: 12) => [topics] allow_auto_topic_creation include_topic_authorized_operations _tagged_fields 
  topics => topic_id name _tagged_fields 
    topic_id => UUID
    name => COMPACT_NULLABLE_STRING
  allow_auto_topic_creation => BOOLEAN
  include_topic_authorized_operations => BOOLEAN
Request header version: 2
| Field | Description | 
|---|
| topics | The topics to fetch metadata for. | 
| topic_id | The topic id. | 
| name | The topic name. | 
| _tagged_fields | The tagged fields | 
| allow_auto_topic_creation | If this is true, the broker may auto-create topics that we requested which do not already exist, if it is configured to do so. | 
| include_topic_authorized_operations | Whether to include topic authorized operations. | 
| _tagged_fields | The tagged fields | 
Metadata Request (Version: 13) => [topics] allow_auto_topic_creation include_topic_authorized_operations _tagged_fields 
  topics => topic_id name _tagged_fields 
    topic_id => UUID
    name => COMPACT_NULLABLE_STRING
  allow_auto_topic_creation => BOOLEAN
  include_topic_authorized_operations => BOOLEAN
Request header version: 2
| Field | Description | 
|---|
| topics | The topics to fetch metadata for. | 
| topic_id | The topic id. | 
| name | The topic name. | 
| _tagged_fields | The tagged fields | 
| allow_auto_topic_creation | If this is true, the broker may auto-create topics that we requested which do not already exist, if it is configured to do so. | 
| include_topic_authorized_operations | Whether to include topic authorized operations. | 
| _tagged_fields | The tagged fields | 
Metadata Response (Version: 0) => [brokers] [topics] 
  brokers => node_id host port 
    node_id => INT32
    host => STRING
    port => INT32
  topics => error_code name [partitions] 
    error_code => INT16
    name => STRING
    partitions => error_code partition_index leader_id [replica_nodes] [isr_nodes] 
      error_code => INT16
      partition_index => INT32
      leader_id => INT32
      replica_nodes => INT32
      isr_nodes => INT32
Response header version: 0
| Field | Description | 
|---|
| brokers | A list of brokers present in the cluster. | 
| node_id | The broker ID. | 
| host | The broker hostname. | 
| port | The broker port. | 
| topics | Each topic in the response. | 
| error_code | The topic error, or 0 if there was no error. | 
| name | The topic name. Null for non-existing topics queried by ID. This is never null when ErrorCode is zero. One of Name and TopicId is always populated. | 
| partitions | Each partition in the topic. | 
| error_code | The partition error, or 0 if there was no error. | 
| partition_index | The partition index. | 
| leader_id | The ID of the leader broker. | 
| replica_nodes | The set of all nodes that host this partition. | 
| isr_nodes | The set of nodes that are in sync with the leader for this partition. | 
Metadata Response (Version: 1) => [brokers] controller_id [topics] 
  brokers => node_id host port rack 
    node_id => INT32
    host => STRING
    port => INT32
    rack => NULLABLE_STRING
  controller_id => INT32
  topics => error_code name is_internal [partitions] 
    error_code => INT16
    name => STRING
    is_internal => BOOLEAN
    partitions => error_code partition_index leader_id [replica_nodes] [isr_nodes] 
      error_code => INT16
      partition_index => INT32
      leader_id => INT32
      replica_nodes => INT32
      isr_nodes => INT32
Response header version: 0
| Field | Description | 
|---|
| brokers | A list of brokers present in the cluster. | 
| node_id | The broker ID. | 
| host | The broker hostname. | 
| port | The broker port. | 
| rack | The rack of the broker, or null if it has not been assigned to a rack. | 
| controller_id | The ID of the controller broker. | 
| topics | Each topic in the response. | 
| error_code | The topic error, or 0 if there was no error. | 
| name | The topic name. Null for non-existing topics queried by ID. This is never null when ErrorCode is zero. One of Name and TopicId is always populated. | 
| is_internal | True if the topic is internal. | 
| partitions | Each partition in the topic. | 
| error_code | The partition error, or 0 if there was no error. | 
| partition_index | The partition index. | 
| leader_id | The ID of the leader broker. | 
| replica_nodes | The set of all nodes that host this partition. | 
| isr_nodes | The set of nodes that are in sync with the leader for this partition. | 
Metadata Response (Version: 2) => [brokers] cluster_id controller_id [topics] 
  brokers => node_id host port rack 
    node_id => INT32
    host => STRING
    port => INT32
    rack => NULLABLE_STRING
  cluster_id => NULLABLE_STRING
  controller_id => INT32
  topics => error_code name is_internal [partitions] 
    error_code => INT16
    name => STRING
    is_internal => BOOLEAN
    partitions => error_code partition_index leader_id [replica_nodes] [isr_nodes] 
      error_code => INT16
      partition_index => INT32
      leader_id => INT32
      replica_nodes => INT32
      isr_nodes => INT32
Response header version: 0
| Field | Description | 
|---|
| brokers | A list of brokers present in the cluster. | 
| node_id | The broker ID. | 
| host | The broker hostname. | 
| port | The broker port. | 
| rack | The rack of the broker, or null if it has not been assigned to a rack. | 
| cluster_id | The cluster ID that responding broker belongs to. | 
| controller_id | The ID of the controller broker. | 
| topics | Each topic in the response. | 
| error_code | The topic error, or 0 if there was no error. | 
| name | The topic name. Null for non-existing topics queried by ID. This is never null when ErrorCode is zero. One of Name and TopicId is always populated. | 
| is_internal | True if the topic is internal. | 
| partitions | Each partition in the topic. | 
| error_code | The partition error, or 0 if there was no error. | 
| partition_index | The partition index. | 
| leader_id | The ID of the leader broker. | 
| replica_nodes | The set of all nodes that host this partition. | 
| isr_nodes | The set of nodes that are in sync with the leader for this partition. | 
Metadata Response (Version: 3) => throttle_time_ms [brokers] cluster_id controller_id [topics] 
  throttle_time_ms => INT32
  brokers => node_id host port rack 
    node_id => INT32
    host => STRING
    port => INT32
    rack => NULLABLE_STRING
  cluster_id => NULLABLE_STRING
  controller_id => INT32
  topics => error_code name is_internal [partitions] 
    error_code => INT16
    name => STRING
    is_internal => BOOLEAN
    partitions => error_code partition_index leader_id [replica_nodes] [isr_nodes] 
      error_code => INT16
      partition_index => INT32
      leader_id => INT32
      replica_nodes => INT32
      isr_nodes => INT32
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| brokers | A list of brokers present in the cluster. | 
| node_id | The broker ID. | 
| host | The broker hostname. | 
| port | The broker port. | 
| rack | The rack of the broker, or null if it has not been assigned to a rack. | 
| cluster_id | The cluster ID that responding broker belongs to. | 
| controller_id | The ID of the controller broker. | 
| topics | Each topic in the response. | 
| error_code | The topic error, or 0 if there was no error. | 
| name | The topic name. Null for non-existing topics queried by ID. This is never null when ErrorCode is zero. One of Name and TopicId is always populated. | 
| is_internal | True if the topic is internal. | 
| partitions | Each partition in the topic. | 
| error_code | The partition error, or 0 if there was no error. | 
| partition_index | The partition index. | 
| leader_id | The ID of the leader broker. | 
| replica_nodes | The set of all nodes that host this partition. | 
| isr_nodes | The set of nodes that are in sync with the leader for this partition. | 
Metadata Response (Version: 4) => throttle_time_ms [brokers] cluster_id controller_id [topics] 
  throttle_time_ms => INT32
  brokers => node_id host port rack 
    node_id => INT32
    host => STRING
    port => INT32
    rack => NULLABLE_STRING
  cluster_id => NULLABLE_STRING
  controller_id => INT32
  topics => error_code name is_internal [partitions] 
    error_code => INT16
    name => STRING
    is_internal => BOOLEAN
    partitions => error_code partition_index leader_id [replica_nodes] [isr_nodes] 
      error_code => INT16
      partition_index => INT32
      leader_id => INT32
      replica_nodes => INT32
      isr_nodes => INT32
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| brokers | A list of brokers present in the cluster. | 
| node_id | The broker ID. | 
| host | The broker hostname. | 
| port | The broker port. | 
| rack | The rack of the broker, or null if it has not been assigned to a rack. | 
| cluster_id | The cluster ID that responding broker belongs to. | 
| controller_id | The ID of the controller broker. | 
| topics | Each topic in the response. | 
| error_code | The topic error, or 0 if there was no error. | 
| name | The topic name. Null for non-existing topics queried by ID. This is never null when ErrorCode is zero. One of Name and TopicId is always populated. | 
| is_internal | True if the topic is internal. | 
| partitions | Each partition in the topic. | 
| error_code | The partition error, or 0 if there was no error. | 
| partition_index | The partition index. | 
| leader_id | The ID of the leader broker. | 
| replica_nodes | The set of all nodes that host this partition. | 
| isr_nodes | The set of nodes that are in sync with the leader for this partition. | 
Metadata Response (Version: 5) => throttle_time_ms [brokers] cluster_id controller_id [topics] 
  throttle_time_ms => INT32
  brokers => node_id host port rack 
    node_id => INT32
    host => STRING
    port => INT32
    rack => NULLABLE_STRING
  cluster_id => NULLABLE_STRING
  controller_id => INT32
  topics => error_code name is_internal [partitions] 
    error_code => INT16
    name => STRING
    is_internal => BOOLEAN
    partitions => error_code partition_index leader_id [replica_nodes] [isr_nodes] [offline_replicas] 
      error_code => INT16
      partition_index => INT32
      leader_id => INT32
      replica_nodes => INT32
      isr_nodes => INT32
      offline_replicas => INT32
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| brokers | A list of brokers present in the cluster. | 
| node_id | The broker ID. | 
| host | The broker hostname. | 
| port | The broker port. | 
| rack | The rack of the broker, or null if it has not been assigned to a rack. | 
| cluster_id | The cluster ID that responding broker belongs to. | 
| controller_id | The ID of the controller broker. | 
| topics | Each topic in the response. | 
| error_code | The topic error, or 0 if there was no error. | 
| name | The topic name. Null for non-existing topics queried by ID. This is never null when ErrorCode is zero. One of Name and TopicId is always populated. | 
| is_internal | True if the topic is internal. | 
| partitions | Each partition in the topic. | 
| error_code | The partition error, or 0 if there was no error. | 
| partition_index | The partition index. | 
| leader_id | The ID of the leader broker. | 
| replica_nodes | The set of all nodes that host this partition. | 
| isr_nodes | The set of nodes that are in sync with the leader for this partition. | 
| offline_replicas | The set of offline replicas of this partition. | 
Metadata Response (Version: 6) => throttle_time_ms [brokers] cluster_id controller_id [topics] 
  throttle_time_ms => INT32
  brokers => node_id host port rack 
    node_id => INT32
    host => STRING
    port => INT32
    rack => NULLABLE_STRING
  cluster_id => NULLABLE_STRING
  controller_id => INT32
  topics => error_code name is_internal [partitions] 
    error_code => INT16
    name => STRING
    is_internal => BOOLEAN
    partitions => error_code partition_index leader_id [replica_nodes] [isr_nodes] [offline_replicas] 
      error_code => INT16
      partition_index => INT32
      leader_id => INT32
      replica_nodes => INT32
      isr_nodes => INT32
      offline_replicas => INT32
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| brokers | A list of brokers present in the cluster. | 
| node_id | The broker ID. | 
| host | The broker hostname. | 
| port | The broker port. | 
| rack | The rack of the broker, or null if it has not been assigned to a rack. | 
| cluster_id | The cluster ID that responding broker belongs to. | 
| controller_id | The ID of the controller broker. | 
| topics | Each topic in the response. | 
| error_code | The topic error, or 0 if there was no error. | 
| name | The topic name. Null for non-existing topics queried by ID. This is never null when ErrorCode is zero. One of Name and TopicId is always populated. | 
| is_internal | True if the topic is internal. | 
| partitions | Each partition in the topic. | 
| error_code | The partition error, or 0 if there was no error. | 
| partition_index | The partition index. | 
| leader_id | The ID of the leader broker. | 
| replica_nodes | The set of all nodes that host this partition. | 
| isr_nodes | The set of nodes that are in sync with the leader for this partition. | 
| offline_replicas | The set of offline replicas of this partition. | 
Metadata Response (Version: 7) => throttle_time_ms [brokers] cluster_id controller_id [topics] 
  throttle_time_ms => INT32
  brokers => node_id host port rack 
    node_id => INT32
    host => STRING
    port => INT32
    rack => NULLABLE_STRING
  cluster_id => NULLABLE_STRING
  controller_id => INT32
  topics => error_code name is_internal [partitions] 
    error_code => INT16
    name => STRING
    is_internal => BOOLEAN
    partitions => error_code partition_index leader_id leader_epoch [replica_nodes] [isr_nodes] [offline_replicas] 
      error_code => INT16
      partition_index => INT32
      leader_id => INT32
      leader_epoch => INT32
      replica_nodes => INT32
      isr_nodes => INT32
      offline_replicas => INT32
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| brokers | A list of brokers present in the cluster. | 
| node_id | The broker ID. | 
| host | The broker hostname. | 
| port | The broker port. | 
| rack | The rack of the broker, or null if it has not been assigned to a rack. | 
| cluster_id | The cluster ID that responding broker belongs to. | 
| controller_id | The ID of the controller broker. | 
| topics | Each topic in the response. | 
| error_code | The topic error, or 0 if there was no error. | 
| name | The topic name. Null for non-existing topics queried by ID. This is never null when ErrorCode is zero. One of Name and TopicId is always populated. | 
| is_internal | True if the topic is internal. | 
| partitions | Each partition in the topic. | 
| error_code | The partition error, or 0 if there was no error. | 
| partition_index | The partition index. | 
| leader_id | The ID of the leader broker. | 
| leader_epoch | The leader epoch of this partition. | 
| replica_nodes | The set of all nodes that host this partition. | 
| isr_nodes | The set of nodes that are in sync with the leader for this partition. | 
| offline_replicas | The set of offline replicas of this partition. | 
Metadata Response (Version: 8) => throttle_time_ms [brokers] cluster_id controller_id [topics] cluster_authorized_operations 
  throttle_time_ms => INT32
  brokers => node_id host port rack 
    node_id => INT32
    host => STRING
    port => INT32
    rack => NULLABLE_STRING
  cluster_id => NULLABLE_STRING
  controller_id => INT32
  topics => error_code name is_internal [partitions] topic_authorized_operations 
    error_code => INT16
    name => STRING
    is_internal => BOOLEAN
    partitions => error_code partition_index leader_id leader_epoch [replica_nodes] [isr_nodes] [offline_replicas] 
      error_code => INT16
      partition_index => INT32
      leader_id => INT32
      leader_epoch => INT32
      replica_nodes => INT32
      isr_nodes => INT32
      offline_replicas => INT32
    topic_authorized_operations => INT32
  cluster_authorized_operations => INT32
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| brokers | A list of brokers present in the cluster. | 
| node_id | The broker ID. | 
| host | The broker hostname. | 
| port | The broker port. | 
| rack | The rack of the broker, or null if it has not been assigned to a rack. | 
| cluster_id | The cluster ID that responding broker belongs to. | 
| controller_id | The ID of the controller broker. | 
| topics | Each topic in the response. | 
| error_code | The topic error, or 0 if there was no error. | 
| name | The topic name. Null for non-existing topics queried by ID. This is never null when ErrorCode is zero. One of Name and TopicId is always populated. | 
| is_internal | True if the topic is internal. | 
| partitions | Each partition in the topic. | 
| error_code | The partition error, or 0 if there was no error. | 
| partition_index | The partition index. | 
| leader_id | The ID of the leader broker. | 
| leader_epoch | The leader epoch of this partition. | 
| replica_nodes | The set of all nodes that host this partition. | 
| isr_nodes | The set of nodes that are in sync with the leader for this partition. | 
| offline_replicas | The set of offline replicas of this partition. | 
| topic_authorized_operations | 32-bit bitfield to represent authorized operations for this topic. | 
| cluster_authorized_operations | 32-bit bitfield to represent authorized operations for this cluster. | 
Metadata Response (Version: 9) => throttle_time_ms [brokers] cluster_id controller_id [topics] cluster_authorized_operations _tagged_fields 
  throttle_time_ms => INT32
  brokers => node_id host port rack _tagged_fields 
    node_id => INT32
    host => COMPACT_STRING
    port => INT32
    rack => COMPACT_NULLABLE_STRING
  cluster_id => COMPACT_NULLABLE_STRING
  controller_id => INT32
  topics => error_code name is_internal [partitions] topic_authorized_operations _tagged_fields 
    error_code => INT16
    name => COMPACT_STRING
    is_internal => BOOLEAN
    partitions => error_code partition_index leader_id leader_epoch [replica_nodes] [isr_nodes] [offline_replicas] _tagged_fields 
      error_code => INT16
      partition_index => INT32
      leader_id => INT32
      leader_epoch => INT32
      replica_nodes => INT32
      isr_nodes => INT32
      offline_replicas => INT32
    topic_authorized_operations => INT32
  cluster_authorized_operations => INT32
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| brokers | A list of brokers present in the cluster. | 
| node_id | The broker ID. | 
| host | The broker hostname. | 
| port | The broker port. | 
| rack | The rack of the broker, or null if it has not been assigned to a rack. | 
| _tagged_fields | The tagged fields | 
| cluster_id | The cluster ID that responding broker belongs to. | 
| controller_id | The ID of the controller broker. | 
| topics | Each topic in the response. | 
| error_code | The topic error, or 0 if there was no error. | 
| name | The topic name. Null for non-existing topics queried by ID. This is never null when ErrorCode is zero. One of Name and TopicId is always populated. | 
| is_internal | True if the topic is internal. | 
| partitions | Each partition in the topic. | 
| error_code | The partition error, or 0 if there was no error. | 
| partition_index | The partition index. | 
| leader_id | The ID of the leader broker. | 
| leader_epoch | The leader epoch of this partition. | 
| replica_nodes | The set of all nodes that host this partition. | 
| isr_nodes | The set of nodes that are in sync with the leader for this partition. | 
| offline_replicas | The set of offline replicas of this partition. | 
| _tagged_fields | The tagged fields | 
| topic_authorized_operations | 32-bit bitfield to represent authorized operations for this topic. | 
| _tagged_fields | The tagged fields | 
| cluster_authorized_operations | 32-bit bitfield to represent authorized operations for this cluster. | 
| _tagged_fields | The tagged fields | 
Metadata Response (Version: 10) => throttle_time_ms [brokers] cluster_id controller_id [topics] cluster_authorized_operations _tagged_fields 
  throttle_time_ms => INT32
  brokers => node_id host port rack _tagged_fields 
    node_id => INT32
    host => COMPACT_STRING
    port => INT32
    rack => COMPACT_NULLABLE_STRING
  cluster_id => COMPACT_NULLABLE_STRING
  controller_id => INT32
  topics => error_code name topic_id is_internal [partitions] topic_authorized_operations _tagged_fields 
    error_code => INT16
    name => COMPACT_STRING
    topic_id => UUID
    is_internal => BOOLEAN
    partitions => error_code partition_index leader_id leader_epoch [replica_nodes] [isr_nodes] [offline_replicas] _tagged_fields 
      error_code => INT16
      partition_index => INT32
      leader_id => INT32
      leader_epoch => INT32
      replica_nodes => INT32
      isr_nodes => INT32
      offline_replicas => INT32
    topic_authorized_operations => INT32
  cluster_authorized_operations => INT32
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| brokers | A list of brokers present in the cluster. | 
| node_id | The broker ID. | 
| host | The broker hostname. | 
| port | The broker port. | 
| rack | The rack of the broker, or null if it has not been assigned to a rack. | 
| _tagged_fields | The tagged fields | 
| cluster_id | The cluster ID that responding broker belongs to. | 
| controller_id | The ID of the controller broker. | 
| topics | Each topic in the response. | 
| error_code | The topic error, or 0 if there was no error. | 
| name | The topic name. Null for non-existing topics queried by ID. This is never null when ErrorCode is zero. One of Name and TopicId is always populated. | 
| topic_id | The topic id. Zero for non-existing topics queried by name. This is never zero when ErrorCode is zero. One of Name and TopicId is always populated. | 
| is_internal | True if the topic is internal. | 
| partitions | Each partition in the topic. | 
| error_code | The partition error, or 0 if there was no error. | 
| partition_index | The partition index. | 
| leader_id | The ID of the leader broker. | 
| leader_epoch | The leader epoch of this partition. | 
| replica_nodes | The set of all nodes that host this partition. | 
| isr_nodes | The set of nodes that are in sync with the leader for this partition. | 
| offline_replicas | The set of offline replicas of this partition. | 
| _tagged_fields | The tagged fields | 
| topic_authorized_operations | 32-bit bitfield to represent authorized operations for this topic. | 
| _tagged_fields | The tagged fields | 
| cluster_authorized_operations | 32-bit bitfield to represent authorized operations for this cluster. | 
| _tagged_fields | The tagged fields | 
Metadata Response (Version: 11) => throttle_time_ms [brokers] cluster_id controller_id [topics] _tagged_fields 
  throttle_time_ms => INT32
  brokers => node_id host port rack _tagged_fields 
    node_id => INT32
    host => COMPACT_STRING
    port => INT32
    rack => COMPACT_NULLABLE_STRING
  cluster_id => COMPACT_NULLABLE_STRING
  controller_id => INT32
  topics => error_code name topic_id is_internal [partitions] topic_authorized_operations _tagged_fields 
    error_code => INT16
    name => COMPACT_STRING
    topic_id => UUID
    is_internal => BOOLEAN
    partitions => error_code partition_index leader_id leader_epoch [replica_nodes] [isr_nodes] [offline_replicas] _tagged_fields 
      error_code => INT16
      partition_index => INT32
      leader_id => INT32
      leader_epoch => INT32
      replica_nodes => INT32
      isr_nodes => INT32
      offline_replicas => INT32
    topic_authorized_operations => INT32
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| brokers | A list of brokers present in the cluster. | 
| node_id | The broker ID. | 
| host | The broker hostname. | 
| port | The broker port. | 
| rack | The rack of the broker, or null if it has not been assigned to a rack. | 
| _tagged_fields | The tagged fields | 
| cluster_id | The cluster ID that responding broker belongs to. | 
| controller_id | The ID of the controller broker. | 
| topics | Each topic in the response. | 
| error_code | The topic error, or 0 if there was no error. | 
| name | The topic name. Null for non-existing topics queried by ID. This is never null when ErrorCode is zero. One of Name and TopicId is always populated. | 
| topic_id | The topic id. Zero for non-existing topics queried by name. This is never zero when ErrorCode is zero. One of Name and TopicId is always populated. | 
| is_internal | True if the topic is internal. | 
| partitions | Each partition in the topic. | 
| error_code | The partition error, or 0 if there was no error. | 
| partition_index | The partition index. | 
| leader_id | The ID of the leader broker. | 
| leader_epoch | The leader epoch of this partition. | 
| replica_nodes | The set of all nodes that host this partition. | 
| isr_nodes | The set of nodes that are in sync with the leader for this partition. | 
| offline_replicas | The set of offline replicas of this partition. | 
| _tagged_fields | The tagged fields | 
| topic_authorized_operations | 32-bit bitfield to represent authorized operations for this topic. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
Metadata Response (Version: 12) => throttle_time_ms [brokers] cluster_id controller_id [topics] _tagged_fields 
  throttle_time_ms => INT32
  brokers => node_id host port rack _tagged_fields 
    node_id => INT32
    host => COMPACT_STRING
    port => INT32
    rack => COMPACT_NULLABLE_STRING
  cluster_id => COMPACT_NULLABLE_STRING
  controller_id => INT32
  topics => error_code name topic_id is_internal [partitions] topic_authorized_operations _tagged_fields 
    error_code => INT16
    name => COMPACT_NULLABLE_STRING
    topic_id => UUID
    is_internal => BOOLEAN
    partitions => error_code partition_index leader_id leader_epoch [replica_nodes] [isr_nodes] [offline_replicas] _tagged_fields 
      error_code => INT16
      partition_index => INT32
      leader_id => INT32
      leader_epoch => INT32
      replica_nodes => INT32
      isr_nodes => INT32
      offline_replicas => INT32
    topic_authorized_operations => INT32
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| brokers | A list of brokers present in the cluster. | 
| node_id | The broker ID. | 
| host | The broker hostname. | 
| port | The broker port. | 
| rack | The rack of the broker, or null if it has not been assigned to a rack. | 
| _tagged_fields | The tagged fields | 
| cluster_id | The cluster ID that responding broker belongs to. | 
| controller_id | The ID of the controller broker. | 
| topics | Each topic in the response. | 
| error_code | The topic error, or 0 if there was no error. | 
| name | The topic name. Null for non-existing topics queried by ID. This is never null when ErrorCode is zero. One of Name and TopicId is always populated. | 
| topic_id | The topic id. Zero for non-existing topics queried by name. This is never zero when ErrorCode is zero. One of Name and TopicId is always populated. | 
| is_internal | True if the topic is internal. | 
| partitions | Each partition in the topic. | 
| error_code | The partition error, or 0 if there was no error. | 
| partition_index | The partition index. | 
| leader_id | The ID of the leader broker. | 
| leader_epoch | The leader epoch of this partition. | 
| replica_nodes | The set of all nodes that host this partition. | 
| isr_nodes | The set of nodes that are in sync with the leader for this partition. | 
| offline_replicas | The set of offline replicas of this partition. | 
| _tagged_fields | The tagged fields | 
| topic_authorized_operations | 32-bit bitfield to represent authorized operations for this topic. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
OffsetCommit Request (Version: 2) => group_id generation_id_or_member_epoch member_id retention_time_ms [topics] 
  group_id => STRING
  generation_id_or_member_epoch => INT32
  member_id => STRING
  retention_time_ms => INT64
  topics => name [partitions] 
    name => STRING
    partitions => partition_index committed_offset committed_metadata 
      partition_index => INT32
      committed_offset => INT64
      committed_metadata => NULLABLE_STRING
Request header version: 1
| Field | Description | 
|---|
| group_id | The unique group identifier. | 
| generation_id_or_member_epoch | The generation of the group if using the classic group protocol or the member epoch if using the consumer protocol. | 
| member_id | The member ID assigned by the group coordinator. | 
| retention_time_ms | The time period in ms to retain the offset. | 
| topics | The topics to commit offsets for. | 
| name | The topic name. | 
| partitions | Each partition to commit offsets for. | 
| partition_index | The partition index. | 
| committed_offset | The message offset to be committed. | 
| committed_metadata | Any associated metadata the client wants to keep. | 
OffsetCommit Request (Version: 3) => group_id generation_id_or_member_epoch member_id retention_time_ms [topics] 
  group_id => STRING
  generation_id_or_member_epoch => INT32
  member_id => STRING
  retention_time_ms => INT64
  topics => name [partitions] 
    name => STRING
    partitions => partition_index committed_offset committed_metadata 
      partition_index => INT32
      committed_offset => INT64
      committed_metadata => NULLABLE_STRING
Request header version: 1
| Field | Description | 
|---|
| group_id | The unique group identifier. | 
| generation_id_or_member_epoch | The generation of the group if using the classic group protocol or the member epoch if using the consumer protocol. | 
| member_id | The member ID assigned by the group coordinator. | 
| retention_time_ms | The time period in ms to retain the offset. | 
| topics | The topics to commit offsets for. | 
| name | The topic name. | 
| partitions | Each partition to commit offsets for. | 
| partition_index | The partition index. | 
| committed_offset | The message offset to be committed. | 
| committed_metadata | Any associated metadata the client wants to keep. | 
OffsetCommit Request (Version: 4) => group_id generation_id_or_member_epoch member_id retention_time_ms [topics] 
  group_id => STRING
  generation_id_or_member_epoch => INT32
  member_id => STRING
  retention_time_ms => INT64
  topics => name [partitions] 
    name => STRING
    partitions => partition_index committed_offset committed_metadata 
      partition_index => INT32
      committed_offset => INT64
      committed_metadata => NULLABLE_STRING
Request header version: 1
| Field | Description | 
|---|
| group_id | The unique group identifier. | 
| generation_id_or_member_epoch | The generation of the group if using the classic group protocol or the member epoch if using the consumer protocol. | 
| member_id | The member ID assigned by the group coordinator. | 
| retention_time_ms | The time period in ms to retain the offset. | 
| topics | The topics to commit offsets for. | 
| name | The topic name. | 
| partitions | Each partition to commit offsets for. | 
| partition_index | The partition index. | 
| committed_offset | The message offset to be committed. | 
| committed_metadata | Any associated metadata the client wants to keep. | 
OffsetCommit Request (Version: 5) => group_id generation_id_or_member_epoch member_id [topics] 
  group_id => STRING
  generation_id_or_member_epoch => INT32
  member_id => STRING
  topics => name [partitions] 
    name => STRING
    partitions => partition_index committed_offset committed_metadata 
      partition_index => INT32
      committed_offset => INT64
      committed_metadata => NULLABLE_STRING
Request header version: 1
| Field | Description | 
|---|
| group_id | The unique group identifier. | 
| generation_id_or_member_epoch | The generation of the group if using the classic group protocol or the member epoch if using the consumer protocol. | 
| member_id | The member ID assigned by the group coordinator. | 
| topics | The topics to commit offsets for. | 
| name | The topic name. | 
| partitions | Each partition to commit offsets for. | 
| partition_index | The partition index. | 
| committed_offset | The message offset to be committed. | 
| committed_metadata | Any associated metadata the client wants to keep. | 
OffsetCommit Request (Version: 6) => group_id generation_id_or_member_epoch member_id [topics] 
  group_id => STRING
  generation_id_or_member_epoch => INT32
  member_id => STRING
  topics => name [partitions] 
    name => STRING
    partitions => partition_index committed_offset committed_leader_epoch committed_metadata 
      partition_index => INT32
      committed_offset => INT64
      committed_leader_epoch => INT32
      committed_metadata => NULLABLE_STRING
Request header version: 1
| Field | Description | 
|---|
| group_id | The unique group identifier. | 
| generation_id_or_member_epoch | The generation of the group if using the classic group protocol or the member epoch if using the consumer protocol. | 
| member_id | The member ID assigned by the group coordinator. | 
| topics | The topics to commit offsets for. | 
| name | The topic name. | 
| partitions | Each partition to commit offsets for. | 
| partition_index | The partition index. | 
| committed_offset | The message offset to be committed. | 
| committed_leader_epoch | The leader epoch of this partition. | 
| committed_metadata | Any associated metadata the client wants to keep. | 
OffsetCommit Request (Version: 7) => group_id generation_id_or_member_epoch member_id group_instance_id [topics] 
  group_id => STRING
  generation_id_or_member_epoch => INT32
  member_id => STRING
  group_instance_id => NULLABLE_STRING
  topics => name [partitions] 
    name => STRING
    partitions => partition_index committed_offset committed_leader_epoch committed_metadata 
      partition_index => INT32
      committed_offset => INT64
      committed_leader_epoch => INT32
      committed_metadata => NULLABLE_STRING
Request header version: 1
| Field | Description | 
|---|
| group_id | The unique group identifier. | 
| generation_id_or_member_epoch | The generation of the group if using the classic group protocol or the member epoch if using the consumer protocol. | 
| member_id | The member ID assigned by the group coordinator. | 
| group_instance_id | The unique identifier of the consumer instance provided by end user. | 
| topics | The topics to commit offsets for. | 
| name | The topic name. | 
| partitions | Each partition to commit offsets for. | 
| partition_index | The partition index. | 
| committed_offset | The message offset to be committed. | 
| committed_leader_epoch | The leader epoch of this partition. | 
| committed_metadata | Any associated metadata the client wants to keep. | 
OffsetCommit Request (Version: 8) => group_id generation_id_or_member_epoch member_id group_instance_id [topics] _tagged_fields 
  group_id => COMPACT_STRING
  generation_id_or_member_epoch => INT32
  member_id => COMPACT_STRING
  group_instance_id => COMPACT_NULLABLE_STRING
  topics => name [partitions] _tagged_fields 
    name => COMPACT_STRING
    partitions => partition_index committed_offset committed_leader_epoch committed_metadata _tagged_fields 
      partition_index => INT32
      committed_offset => INT64
      committed_leader_epoch => INT32
      committed_metadata => COMPACT_NULLABLE_STRING
Request header version: 2
| Field | Description | 
|---|
| group_id | The unique group identifier. | 
| generation_id_or_member_epoch | The generation of the group if using the classic group protocol or the member epoch if using the consumer protocol. | 
| member_id | The member ID assigned by the group coordinator. | 
| group_instance_id | The unique identifier of the consumer instance provided by end user. | 
| topics | The topics to commit offsets for. | 
| name | The topic name. | 
| partitions | Each partition to commit offsets for. | 
| partition_index | The partition index. | 
| committed_offset | The message offset to be committed. | 
| committed_leader_epoch | The leader epoch of this partition. | 
| committed_metadata | Any associated metadata the client wants to keep. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
OffsetCommit Request (Version: 9) => group_id generation_id_or_member_epoch member_id group_instance_id [topics] _tagged_fields 
  group_id => COMPACT_STRING
  generation_id_or_member_epoch => INT32
  member_id => COMPACT_STRING
  group_instance_id => COMPACT_NULLABLE_STRING
  topics => name [partitions] _tagged_fields 
    name => COMPACT_STRING
    partitions => partition_index committed_offset committed_leader_epoch committed_metadata _tagged_fields 
      partition_index => INT32
      committed_offset => INT64
      committed_leader_epoch => INT32
      committed_metadata => COMPACT_NULLABLE_STRING
Request header version: 2
| Field | Description | 
|---|
| group_id | The unique group identifier. | 
| generation_id_or_member_epoch | The generation of the group if using the classic group protocol or the member epoch if using the consumer protocol. | 
| member_id | The member ID assigned by the group coordinator. | 
| group_instance_id | The unique identifier of the consumer instance provided by end user. | 
| topics | The topics to commit offsets for. | 
| name | The topic name. | 
| partitions | Each partition to commit offsets for. | 
| partition_index | The partition index. | 
| committed_offset | The message offset to be committed. | 
| committed_leader_epoch | The leader epoch of this partition. | 
| committed_metadata | Any associated metadata the client wants to keep. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
OffsetCommit Response (Version: 2) => [topics] 
  topics => name [partitions] 
    name => STRING
    partitions => partition_index error_code 
      partition_index => INT32
      error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| topics | The responses for each topic. | 
| name | The topic name. | 
| partitions | The responses for each partition in the topic. | 
| partition_index | The partition index. | 
| error_code | The error code, or 0 if there was no error. | 
OffsetCommit Response (Version: 3) => throttle_time_ms [topics] 
  throttle_time_ms => INT32
  topics => name [partitions] 
    name => STRING
    partitions => partition_index error_code 
      partition_index => INT32
      error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | The responses for each topic. | 
| name | The topic name. | 
| partitions | The responses for each partition in the topic. | 
| partition_index | The partition index. | 
| error_code | The error code, or 0 if there was no error. | 
OffsetCommit Response (Version: 4) => throttle_time_ms [topics] 
  throttle_time_ms => INT32
  topics => name [partitions] 
    name => STRING
    partitions => partition_index error_code 
      partition_index => INT32
      error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | The responses for each topic. | 
| name | The topic name. | 
| partitions | The responses for each partition in the topic. | 
| partition_index | The partition index. | 
| error_code | The error code, or 0 if there was no error. | 
OffsetCommit Response (Version: 5) => throttle_time_ms [topics] 
  throttle_time_ms => INT32
  topics => name [partitions] 
    name => STRING
    partitions => partition_index error_code 
      partition_index => INT32
      error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | The responses for each topic. | 
| name | The topic name. | 
| partitions | The responses for each partition in the topic. | 
| partition_index | The partition index. | 
| error_code | The error code, or 0 if there was no error. | 
OffsetCommit Response (Version: 6) => throttle_time_ms [topics] 
  throttle_time_ms => INT32
  topics => name [partitions] 
    name => STRING
    partitions => partition_index error_code 
      partition_index => INT32
      error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | The responses for each topic. | 
| name | The topic name. | 
| partitions | The responses for each partition in the topic. | 
| partition_index | The partition index. | 
| error_code | The error code, or 0 if there was no error. | 
OffsetCommit Response (Version: 7) => throttle_time_ms [topics] 
  throttle_time_ms => INT32
  topics => name [partitions] 
    name => STRING
    partitions => partition_index error_code 
      partition_index => INT32
      error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | The responses for each topic. | 
| name | The topic name. | 
| partitions | The responses for each partition in the topic. | 
| partition_index | The partition index. | 
| error_code | The error code, or 0 if there was no error. | 
OffsetCommit Response (Version: 8) => throttle_time_ms [topics] _tagged_fields 
  throttle_time_ms => INT32
  topics => name [partitions] _tagged_fields 
    name => COMPACT_STRING
    partitions => partition_index error_code _tagged_fields 
      partition_index => INT32
      error_code => INT16
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | The responses for each topic. | 
| name | The topic name. | 
| partitions | The responses for each partition in the topic. | 
| partition_index | The partition index. | 
| error_code | The error code, or 0 if there was no error. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
OffsetFetch Request (Version: 1) => group_id [topics] 
  group_id => STRING
  topics => name [partition_indexes] 
    name => STRING
    partition_indexes => INT32
Request header version: 1
| Field | Description | 
|---|
| group_id | The group to fetch offsets for. | 
| topics | Each topic we would like to fetch offsets for, or null to fetch offsets for all topics. | 
| name | The topic name. | 
| partition_indexes | The partition indexes we would like to fetch offsets for. | 
OffsetFetch Request (Version: 2) => group_id [topics] 
  group_id => STRING
  topics => name [partition_indexes] 
    name => STRING
    partition_indexes => INT32
Request header version: 1
| Field | Description | 
|---|
| group_id | The group to fetch offsets for. | 
| topics | Each topic we would like to fetch offsets for, or null to fetch offsets for all topics. | 
| name | The topic name. | 
| partition_indexes | The partition indexes we would like to fetch offsets for. | 
OffsetFetch Request (Version: 3) => group_id [topics] 
  group_id => STRING
  topics => name [partition_indexes] 
    name => STRING
    partition_indexes => INT32
Request header version: 1
| Field | Description | 
|---|
| group_id | The group to fetch offsets for. | 
| topics | Each topic we would like to fetch offsets for, or null to fetch offsets for all topics. | 
| name | The topic name. | 
| partition_indexes | The partition indexes we would like to fetch offsets for. | 
OffsetFetch Request (Version: 4) => group_id [topics] 
  group_id => STRING
  topics => name [partition_indexes] 
    name => STRING
    partition_indexes => INT32
Request header version: 1
| Field | Description | 
|---|
| group_id | The group to fetch offsets for. | 
| topics | Each topic we would like to fetch offsets for, or null to fetch offsets for all topics. | 
| name | The topic name. | 
| partition_indexes | The partition indexes we would like to fetch offsets for. | 
OffsetFetch Request (Version: 5) => group_id [topics] 
  group_id => STRING
  topics => name [partition_indexes] 
    name => STRING
    partition_indexes => INT32
Request header version: 1
| Field | Description | 
|---|
| group_id | The group to fetch offsets for. | 
| topics | Each topic we would like to fetch offsets for, or null to fetch offsets for all topics. | 
| name | The topic name. | 
| partition_indexes | The partition indexes we would like to fetch offsets for. | 
OffsetFetch Request (Version: 6) => group_id [topics] _tagged_fields 
  group_id => COMPACT_STRING
  topics => name [partition_indexes] _tagged_fields 
    name => COMPACT_STRING
    partition_indexes => INT32
Request header version: 2
| Field | Description | 
|---|
| group_id | The group to fetch offsets for. | 
| topics | Each topic we would like to fetch offsets for, or null to fetch offsets for all topics. | 
| name | The topic name. | 
| partition_indexes | The partition indexes we would like to fetch offsets for. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
OffsetFetch Request (Version: 7) => group_id [topics] require_stable _tagged_fields 
  group_id => COMPACT_STRING
  topics => name [partition_indexes] _tagged_fields 
    name => COMPACT_STRING
    partition_indexes => INT32
  require_stable => BOOLEAN
Request header version: 2
| Field | Description | 
|---|
| group_id | The group to fetch offsets for. | 
| topics | Each topic we would like to fetch offsets for, or null to fetch offsets for all topics. | 
| name | The topic name. | 
| partition_indexes | The partition indexes we would like to fetch offsets for. | 
| _tagged_fields | The tagged fields | 
| require_stable | Whether broker should hold on returning unstable offsets but set a retriable error code for the partitions. | 
| _tagged_fields | The tagged fields | 
OffsetFetch Request (Version: 8) => [groups] require_stable _tagged_fields 
  groups => group_id [topics] _tagged_fields 
    group_id => COMPACT_STRING
    topics => name [partition_indexes] _tagged_fields 
      name => COMPACT_STRING
      partition_indexes => INT32
  require_stable => BOOLEAN
Request header version: 2
| Field | Description | 
|---|
| groups | Each group we would like to fetch offsets for. | 
| group_id | The group ID. | 
| topics | Each topic we would like to fetch offsets for, or null to fetch offsets for all topics. | 
| name | The topic name. | 
| partition_indexes | The partition indexes we would like to fetch offsets for. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| require_stable | Whether broker should hold on returning unstable offsets but set a retriable error code for the partitions. | 
| _tagged_fields | The tagged fields | 
OffsetFetch Request (Version: 9) => [groups] require_stable _tagged_fields 
  groups => group_id member_id member_epoch [topics] _tagged_fields 
    group_id => COMPACT_STRING
    member_id => COMPACT_NULLABLE_STRING
    member_epoch => INT32
    topics => name [partition_indexes] _tagged_fields 
      name => COMPACT_STRING
      partition_indexes => INT32
  require_stable => BOOLEAN
Request header version: 2
| Field | Description | 
|---|
| groups | Each group we would like to fetch offsets for. | 
| group_id | The group ID. | 
| member_id | The member id. | 
| member_epoch | The member epoch if using the new consumer protocol (KIP-848). | 
| topics | Each topic we would like to fetch offsets for, or null to fetch offsets for all topics. | 
| name | The topic name. | 
| partition_indexes | The partition indexes we would like to fetch offsets for. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| require_stable | Whether broker should hold on returning unstable offsets but set a retriable error code for the partitions. | 
| _tagged_fields | The tagged fields | 
OffsetFetch Response (Version: 1) => [topics] 
  topics => name [partitions] 
    name => STRING
    partitions => partition_index committed_offset metadata error_code 
      partition_index => INT32
      committed_offset => INT64
      metadata => NULLABLE_STRING
      error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| topics | The responses per topic. | 
| name | The topic name. | 
| partitions | The responses per partition. | 
| partition_index | The partition index. | 
| committed_offset | The committed message offset. | 
| metadata | The partition metadata. | 
| error_code | The error code, or 0 if there was no error. | 
OffsetFetch Response (Version: 2) => [topics] error_code 
  topics => name [partitions] 
    name => STRING
    partitions => partition_index committed_offset metadata error_code 
      partition_index => INT32
      committed_offset => INT64
      metadata => NULLABLE_STRING
      error_code => INT16
  error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| topics | The responses per topic. | 
| name | The topic name. | 
| partitions | The responses per partition. | 
| partition_index | The partition index. | 
| committed_offset | The committed message offset. | 
| metadata | The partition metadata. | 
| error_code | The error code, or 0 if there was no error. | 
| error_code | The top-level error code, or 0 if there was no error. | 
OffsetFetch Response (Version: 3) => throttle_time_ms [topics] error_code 
  throttle_time_ms => INT32
  topics => name [partitions] 
    name => STRING
    partitions => partition_index committed_offset metadata error_code 
      partition_index => INT32
      committed_offset => INT64
      metadata => NULLABLE_STRING
      error_code => INT16
  error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | The responses per topic. | 
| name | The topic name. | 
| partitions | The responses per partition. | 
| partition_index | The partition index. | 
| committed_offset | The committed message offset. | 
| metadata | The partition metadata. | 
| error_code | The error code, or 0 if there was no error. | 
| error_code | The top-level error code, or 0 if there was no error. | 
OffsetFetch Response (Version: 4) => throttle_time_ms [topics] error_code 
  throttle_time_ms => INT32
  topics => name [partitions] 
    name => STRING
    partitions => partition_index committed_offset metadata error_code 
      partition_index => INT32
      committed_offset => INT64
      metadata => NULLABLE_STRING
      error_code => INT16
  error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | The responses per topic. | 
| name | The topic name. | 
| partitions | The responses per partition. | 
| partition_index | The partition index. | 
| committed_offset | The committed message offset. | 
| metadata | The partition metadata. | 
| error_code | The error code, or 0 if there was no error. | 
| error_code | The top-level error code, or 0 if there was no error. | 
OffsetFetch Response (Version: 5) => throttle_time_ms [topics] error_code 
  throttle_time_ms => INT32
  topics => name [partitions] 
    name => STRING
    partitions => partition_index committed_offset committed_leader_epoch metadata error_code 
      partition_index => INT32
      committed_offset => INT64
      committed_leader_epoch => INT32
      metadata => NULLABLE_STRING
      error_code => INT16
  error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | The responses per topic. | 
| name | The topic name. | 
| partitions | The responses per partition. | 
| partition_index | The partition index. | 
| committed_offset | The committed message offset. | 
| committed_leader_epoch | The leader epoch. | 
| metadata | The partition metadata. | 
| error_code | The error code, or 0 if there was no error. | 
| error_code | The top-level error code, or 0 if there was no error. | 
OffsetFetch Response (Version: 6) => throttle_time_ms [topics] error_code _tagged_fields 
  throttle_time_ms => INT32
  topics => name [partitions] _tagged_fields 
    name => COMPACT_STRING
    partitions => partition_index committed_offset committed_leader_epoch metadata error_code _tagged_fields 
      partition_index => INT32
      committed_offset => INT64
      committed_leader_epoch => INT32
      metadata => COMPACT_NULLABLE_STRING
      error_code => INT16
  error_code => INT16
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | The responses per topic. | 
| name | The topic name. | 
| partitions | The responses per partition. | 
| partition_index | The partition index. | 
| committed_offset | The committed message offset. | 
| committed_leader_epoch | The leader epoch. | 
| metadata | The partition metadata. | 
| error_code | The error code, or 0 if there was no error. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| error_code | The top-level error code, or 0 if there was no error. | 
| _tagged_fields | The tagged fields | 
OffsetFetch Response (Version: 7) => throttle_time_ms [topics] error_code _tagged_fields 
  throttle_time_ms => INT32
  topics => name [partitions] _tagged_fields 
    name => COMPACT_STRING
    partitions => partition_index committed_offset committed_leader_epoch metadata error_code _tagged_fields 
      partition_index => INT32
      committed_offset => INT64
      committed_leader_epoch => INT32
      metadata => COMPACT_NULLABLE_STRING
      error_code => INT16
  error_code => INT16
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | The responses per topic. | 
| name | The topic name. | 
| partitions | The responses per partition. | 
| partition_index | The partition index. | 
| committed_offset | The committed message offset. | 
| committed_leader_epoch | The leader epoch. | 
| metadata | The partition metadata. | 
| error_code | The error code, or 0 if there was no error. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| error_code | The top-level error code, or 0 if there was no error. | 
| _tagged_fields | The tagged fields | 
OffsetFetch Response (Version: 8) => throttle_time_ms [groups] _tagged_fields 
  throttle_time_ms => INT32
  groups => group_id [topics] error_code _tagged_fields 
    group_id => COMPACT_STRING
    topics => name [partitions] _tagged_fields 
      name => COMPACT_STRING
      partitions => partition_index committed_offset committed_leader_epoch metadata error_code _tagged_fields 
        partition_index => INT32
        committed_offset => INT64
        committed_leader_epoch => INT32
        metadata => COMPACT_NULLABLE_STRING
        error_code => INT16
    error_code => INT16
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| groups | The responses per group id. | 
| group_id | The group ID. | 
| topics | The responses per topic. | 
| name | The topic name. | 
| partitions | The responses per partition. | 
| partition_index | The partition index. | 
| committed_offset | The committed message offset. | 
| committed_leader_epoch | The leader epoch. | 
| metadata | The partition metadata. | 
| error_code | The partition-level error code, or 0 if there was no error. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| error_code | The group-level error code, or 0 if there was no error. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
FindCoordinator Request (Version: 0) => key 
  key => STRING
Request header version: 1
| Field | Description | 
|---|
| key | The coordinator key. | 
FindCoordinator Request (Version: 1) => key key_type 
  key => STRING
  key_type => INT8
Request header version: 1
| Field | Description | 
|---|
| key | The coordinator key. | 
| key_type | The coordinator key type. (group, transaction, share). | 
FindCoordinator Request (Version: 2) => key key_type 
  key => STRING
  key_type => INT8
Request header version: 1
| Field | Description | 
|---|
| key | The coordinator key. | 
| key_type | The coordinator key type. (group, transaction, share). | 
FindCoordinator Request (Version: 3) => key key_type _tagged_fields 
  key => COMPACT_STRING
  key_type => INT8
Request header version: 2
| Field | Description | 
|---|
| key | The coordinator key. | 
| key_type | The coordinator key type. (group, transaction, share). | 
| _tagged_fields | The tagged fields | 
FindCoordinator Request (Version: 4) => key_type [coordinator_keys] _tagged_fields 
  key_type => INT8
  coordinator_keys => COMPACT_STRING
Request header version: 2
| Field | Description | 
|---|
| key_type | The coordinator key type. (group, transaction, share). | 
| coordinator_keys | The coordinator keys. | 
| _tagged_fields | The tagged fields | 
FindCoordinator Request (Version: 5) => key_type [coordinator_keys] _tagged_fields 
  key_type => INT8
  coordinator_keys => COMPACT_STRING
Request header version: 2
| Field | Description | 
|---|
| key_type | The coordinator key type. (group, transaction, share). | 
| coordinator_keys | The coordinator keys. | 
| _tagged_fields | The tagged fields | 
FindCoordinator Request (Version: 6) => key_type [coordinator_keys] _tagged_fields 
  key_type => INT8
  coordinator_keys => COMPACT_STRING
Request header version: 2
| Field | Description | 
|---|
| key_type | The coordinator key type. (group, transaction, share). | 
| coordinator_keys | The coordinator keys. | 
| _tagged_fields | The tagged fields | 
FindCoordinator Response (Version: 0) => error_code node_id host port 
  error_code => INT16
  node_id => INT32
  host => STRING
  port => INT32
Response header version: 0
| Field | Description | 
|---|
| error_code | The error code, or 0 if there was no error. | 
| node_id | The node id. | 
| host | The host name. | 
| port | The port. | 
FindCoordinator Response (Version: 1) => throttle_time_ms error_code error_message node_id host port 
  throttle_time_ms => INT32
  error_code => INT16
  error_message => NULLABLE_STRING
  node_id => INT32
  host => STRING
  port => INT32
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| error_message | The error message, or null if there was no error. | 
| node_id | The node id. | 
| host | The host name. | 
| port | The port. | 
FindCoordinator Response (Version: 2) => throttle_time_ms error_code error_message node_id host port 
  throttle_time_ms => INT32
  error_code => INT16
  error_message => NULLABLE_STRING
  node_id => INT32
  host => STRING
  port => INT32
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| error_message | The error message, or null if there was no error. | 
| node_id | The node id. | 
| host | The host name. | 
| port | The port. | 
FindCoordinator Response (Version: 3) => throttle_time_ms error_code error_message node_id host port _tagged_fields 
  throttle_time_ms => INT32
  error_code => INT16
  error_message => COMPACT_NULLABLE_STRING
  node_id => INT32
  host => COMPACT_STRING
  port => INT32
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| error_message | The error message, or null if there was no error. | 
| node_id | The node id. | 
| host | The host name. | 
| port | The port. | 
| _tagged_fields | The tagged fields | 
FindCoordinator Response (Version: 4) => throttle_time_ms [coordinators] _tagged_fields 
  throttle_time_ms => INT32
  coordinators => key node_id host port error_code error_message _tagged_fields 
    key => COMPACT_STRING
    node_id => INT32
    host => COMPACT_STRING
    port => INT32
    error_code => INT16
    error_message => COMPACT_NULLABLE_STRING
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| coordinators | Each coordinator result in the response. | 
| key | The coordinator key. | 
| node_id | The node id. | 
| host | The host name. | 
| port | The port. | 
| error_code | The error code, or 0 if there was no error. | 
| error_message | The error message, or null if there was no error. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
FindCoordinator Response (Version: 5) => throttle_time_ms [coordinators] _tagged_fields 
  throttle_time_ms => INT32
  coordinators => key node_id host port error_code error_message _tagged_fields 
    key => COMPACT_STRING
    node_id => INT32
    host => COMPACT_STRING
    port => INT32
    error_code => INT16
    error_message => COMPACT_NULLABLE_STRING
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| coordinators | Each coordinator result in the response. | 
| key | The coordinator key. | 
| node_id | The node id. | 
| host | The host name. | 
| port | The port. | 
| error_code | The error code, or 0 if there was no error. | 
| error_message | The error message, or null if there was no error. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
JoinGroup Request (Version: 2) => group_id session_timeout_ms rebalance_timeout_ms member_id protocol_type [protocols] 
  group_id => STRING
  session_timeout_ms => INT32
  rebalance_timeout_ms => INT32
  member_id => STRING
  protocol_type => STRING
  protocols => name metadata 
    name => STRING
    metadata => BYTES
Request header version: 1
| Field | Description | 
|---|
| group_id | The group identifier. | 
| session_timeout_ms | The coordinator considers the consumer dead if it receives no heartbeat after this timeout in milliseconds. | 
| rebalance_timeout_ms | The maximum time in milliseconds that the coordinator will wait for each member to rejoin when rebalancing the group. | 
| member_id | The member id assigned by the group coordinator. | 
| protocol_type | The unique name the for class of protocols implemented by the group we want to join. | 
| protocols | The list of protocols that the member supports. | 
| name | The protocol name. | 
| metadata | The protocol metadata. | 
JoinGroup Request (Version: 3) => group_id session_timeout_ms rebalance_timeout_ms member_id protocol_type [protocols] 
  group_id => STRING
  session_timeout_ms => INT32
  rebalance_timeout_ms => INT32
  member_id => STRING
  protocol_type => STRING
  protocols => name metadata 
    name => STRING
    metadata => BYTES
Request header version: 1
| Field | Description | 
|---|
| group_id | The group identifier. | 
| session_timeout_ms | The coordinator considers the consumer dead if it receives no heartbeat after this timeout in milliseconds. | 
| rebalance_timeout_ms | The maximum time in milliseconds that the coordinator will wait for each member to rejoin when rebalancing the group. | 
| member_id | The member id assigned by the group coordinator. | 
| protocol_type | The unique name the for class of protocols implemented by the group we want to join. | 
| protocols | The list of protocols that the member supports. | 
| name | The protocol name. | 
| metadata | The protocol metadata. | 
JoinGroup Request (Version: 4) => group_id session_timeout_ms rebalance_timeout_ms member_id protocol_type [protocols] 
  group_id => STRING
  session_timeout_ms => INT32
  rebalance_timeout_ms => INT32
  member_id => STRING
  protocol_type => STRING
  protocols => name metadata 
    name => STRING
    metadata => BYTES
Request header version: 1
| Field | Description | 
|---|
| group_id | The group identifier. | 
| session_timeout_ms | The coordinator considers the consumer dead if it receives no heartbeat after this timeout in milliseconds. | 
| rebalance_timeout_ms | The maximum time in milliseconds that the coordinator will wait for each member to rejoin when rebalancing the group. | 
| member_id | The member id assigned by the group coordinator. | 
| protocol_type | The unique name the for class of protocols implemented by the group we want to join. | 
| protocols | The list of protocols that the member supports. | 
| name | The protocol name. | 
| metadata | The protocol metadata. | 
JoinGroup Request (Version: 5) => group_id session_timeout_ms rebalance_timeout_ms member_id group_instance_id protocol_type [protocols] 
  group_id => STRING
  session_timeout_ms => INT32
  rebalance_timeout_ms => INT32
  member_id => STRING
  group_instance_id => NULLABLE_STRING
  protocol_type => STRING
  protocols => name metadata 
    name => STRING
    metadata => BYTES
Request header version: 1
| Field | Description | 
|---|
| group_id | The group identifier. | 
| session_timeout_ms | The coordinator considers the consumer dead if it receives no heartbeat after this timeout in milliseconds. | 
| rebalance_timeout_ms | The maximum time in milliseconds that the coordinator will wait for each member to rejoin when rebalancing the group. | 
| member_id | The member id assigned by the group coordinator. | 
| group_instance_id | The unique identifier of the consumer instance provided by end user. | 
| protocol_type | The unique name the for class of protocols implemented by the group we want to join. | 
| protocols | The list of protocols that the member supports. | 
| name | The protocol name. | 
| metadata | The protocol metadata. | 
JoinGroup Request (Version: 6) => group_id session_timeout_ms rebalance_timeout_ms member_id group_instance_id protocol_type [protocols] _tagged_fields 
  group_id => COMPACT_STRING
  session_timeout_ms => INT32
  rebalance_timeout_ms => INT32
  member_id => COMPACT_STRING
  group_instance_id => COMPACT_NULLABLE_STRING
  protocol_type => COMPACT_STRING
  protocols => name metadata _tagged_fields 
    name => COMPACT_STRING
    metadata => COMPACT_BYTES
Request header version: 2
| Field | Description | 
|---|
| group_id | The group identifier. | 
| session_timeout_ms | The coordinator considers the consumer dead if it receives no heartbeat after this timeout in milliseconds. | 
| rebalance_timeout_ms | The maximum time in milliseconds that the coordinator will wait for each member to rejoin when rebalancing the group. | 
| member_id | The member id assigned by the group coordinator. | 
| group_instance_id | The unique identifier of the consumer instance provided by end user. | 
| protocol_type | The unique name the for class of protocols implemented by the group we want to join. | 
| protocols | The list of protocols that the member supports. | 
| name | The protocol name. | 
| metadata | The protocol metadata. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
JoinGroup Request (Version: 7) => group_id session_timeout_ms rebalance_timeout_ms member_id group_instance_id protocol_type [protocols] _tagged_fields 
  group_id => COMPACT_STRING
  session_timeout_ms => INT32
  rebalance_timeout_ms => INT32
  member_id => COMPACT_STRING
  group_instance_id => COMPACT_NULLABLE_STRING
  protocol_type => COMPACT_STRING
  protocols => name metadata _tagged_fields 
    name => COMPACT_STRING
    metadata => COMPACT_BYTES
Request header version: 2
| Field | Description | 
|---|
| group_id | The group identifier. | 
| session_timeout_ms | The coordinator considers the consumer dead if it receives no heartbeat after this timeout in milliseconds. | 
| rebalance_timeout_ms | The maximum time in milliseconds that the coordinator will wait for each member to rejoin when rebalancing the group. | 
| member_id | The member id assigned by the group coordinator. | 
| group_instance_id | The unique identifier of the consumer instance provided by end user. | 
| protocol_type | The unique name the for class of protocols implemented by the group we want to join. | 
| protocols | The list of protocols that the member supports. | 
| name | The protocol name. | 
| metadata | The protocol metadata. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
JoinGroup Request (Version: 8) => group_id session_timeout_ms rebalance_timeout_ms member_id group_instance_id protocol_type [protocols] reason _tagged_fields 
  group_id => COMPACT_STRING
  session_timeout_ms => INT32
  rebalance_timeout_ms => INT32
  member_id => COMPACT_STRING
  group_instance_id => COMPACT_NULLABLE_STRING
  protocol_type => COMPACT_STRING
  protocols => name metadata _tagged_fields 
    name => COMPACT_STRING
    metadata => COMPACT_BYTES
  reason => COMPACT_NULLABLE_STRING
Request header version: 2
| Field | Description | 
|---|
| group_id | The group identifier. | 
| session_timeout_ms | The coordinator considers the consumer dead if it receives no heartbeat after this timeout in milliseconds. | 
| rebalance_timeout_ms | The maximum time in milliseconds that the coordinator will wait for each member to rejoin when rebalancing the group. | 
| member_id | The member id assigned by the group coordinator. | 
| group_instance_id | The unique identifier of the consumer instance provided by end user. | 
| protocol_type | The unique name the for class of protocols implemented by the group we want to join. | 
| protocols | The list of protocols that the member supports. | 
| name | The protocol name. | 
| metadata | The protocol metadata. | 
| _tagged_fields | The tagged fields | 
| reason | The reason why the member (re-)joins the group. | 
| _tagged_fields | The tagged fields | 
JoinGroup Request (Version: 9) => group_id session_timeout_ms rebalance_timeout_ms member_id group_instance_id protocol_type [protocols] reason _tagged_fields 
  group_id => COMPACT_STRING
  session_timeout_ms => INT32
  rebalance_timeout_ms => INT32
  member_id => COMPACT_STRING
  group_instance_id => COMPACT_NULLABLE_STRING
  protocol_type => COMPACT_STRING
  protocols => name metadata _tagged_fields 
    name => COMPACT_STRING
    metadata => COMPACT_BYTES
  reason => COMPACT_NULLABLE_STRING
Request header version: 2
| Field | Description | 
|---|
| group_id | The group identifier. | 
| session_timeout_ms | The coordinator considers the consumer dead if it receives no heartbeat after this timeout in milliseconds. | 
| rebalance_timeout_ms | The maximum time in milliseconds that the coordinator will wait for each member to rejoin when rebalancing the group. | 
| member_id | The member id assigned by the group coordinator. | 
| group_instance_id | The unique identifier of the consumer instance provided by end user. | 
| protocol_type | The unique name the for class of protocols implemented by the group we want to join. | 
| protocols | The list of protocols that the member supports. | 
| name | The protocol name. | 
| metadata | The protocol metadata. | 
| _tagged_fields | The tagged fields | 
| reason | The reason why the member (re-)joins the group. | 
| _tagged_fields | The tagged fields | 
JoinGroup Response (Version: 2) => throttle_time_ms error_code generation_id protocol_name leader member_id [members] 
  throttle_time_ms => INT32
  error_code => INT16
  generation_id => INT32
  protocol_name => STRING
  leader => STRING
  member_id => STRING
  members => member_id metadata 
    member_id => STRING
    metadata => BYTES
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| generation_id | The generation ID of the group. | 
| protocol_name | The group protocol selected by the coordinator. | 
| leader | The leader of the group. | 
| member_id | The member ID assigned by the group coordinator. | 
| members | The group members. | 
| member_id | The group member ID. | 
| metadata | The group member metadata. | 
JoinGroup Response (Version: 3) => throttle_time_ms error_code generation_id protocol_name leader member_id [members] 
  throttle_time_ms => INT32
  error_code => INT16
  generation_id => INT32
  protocol_name => STRING
  leader => STRING
  member_id => STRING
  members => member_id metadata 
    member_id => STRING
    metadata => BYTES
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| generation_id | The generation ID of the group. | 
| protocol_name | The group protocol selected by the coordinator. | 
| leader | The leader of the group. | 
| member_id | The member ID assigned by the group coordinator. | 
| members | The group members. | 
| member_id | The group member ID. | 
| metadata | The group member metadata. | 
JoinGroup Response (Version: 4) => throttle_time_ms error_code generation_id protocol_name leader member_id [members] 
  throttle_time_ms => INT32
  error_code => INT16
  generation_id => INT32
  protocol_name => STRING
  leader => STRING
  member_id => STRING
  members => member_id metadata 
    member_id => STRING
    metadata => BYTES
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| generation_id | The generation ID of the group. | 
| protocol_name | The group protocol selected by the coordinator. | 
| leader | The leader of the group. | 
| member_id | The member ID assigned by the group coordinator. | 
| members | The group members. | 
| member_id | The group member ID. | 
| metadata | The group member metadata. | 
JoinGroup Response (Version: 5) => throttle_time_ms error_code generation_id protocol_name leader member_id [members] 
  throttle_time_ms => INT32
  error_code => INT16
  generation_id => INT32
  protocol_name => STRING
  leader => STRING
  member_id => STRING
  members => member_id group_instance_id metadata 
    member_id => STRING
    group_instance_id => NULLABLE_STRING
    metadata => BYTES
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| generation_id | The generation ID of the group. | 
| protocol_name | The group protocol selected by the coordinator. | 
| leader | The leader of the group. | 
| member_id | The member ID assigned by the group coordinator. | 
| members | The group members. | 
| member_id | The group member ID. | 
| group_instance_id | The unique identifier of the consumer instance provided by end user. | 
| metadata | The group member metadata. | 
JoinGroup Response (Version: 6) => throttle_time_ms error_code generation_id protocol_name leader member_id [members] _tagged_fields 
  throttle_time_ms => INT32
  error_code => INT16
  generation_id => INT32
  protocol_name => COMPACT_STRING
  leader => COMPACT_STRING
  member_id => COMPACT_STRING
  members => member_id group_instance_id metadata _tagged_fields 
    member_id => COMPACT_STRING
    group_instance_id => COMPACT_NULLABLE_STRING
    metadata => COMPACT_BYTES
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| generation_id | The generation ID of the group. | 
| protocol_name | The group protocol selected by the coordinator. | 
| leader | The leader of the group. | 
| member_id | The member ID assigned by the group coordinator. | 
| members | The group members. | 
| member_id | The group member ID. | 
| group_instance_id | The unique identifier of the consumer instance provided by end user. | 
| metadata | The group member metadata. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
JoinGroup Response (Version: 7) => throttle_time_ms error_code generation_id protocol_type protocol_name leader member_id [members] _tagged_fields 
  throttle_time_ms => INT32
  error_code => INT16
  generation_id => INT32
  protocol_type => COMPACT_NULLABLE_STRING
  protocol_name => COMPACT_NULLABLE_STRING
  leader => COMPACT_STRING
  member_id => COMPACT_STRING
  members => member_id group_instance_id metadata _tagged_fields 
    member_id => COMPACT_STRING
    group_instance_id => COMPACT_NULLABLE_STRING
    metadata => COMPACT_BYTES
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| generation_id | The generation ID of the group. | 
| protocol_type | The group protocol name. | 
| protocol_name | The group protocol selected by the coordinator. | 
| leader | The leader of the group. | 
| member_id | The member ID assigned by the group coordinator. | 
| members | The group members. | 
| member_id | The group member ID. | 
| group_instance_id | The unique identifier of the consumer instance provided by end user. | 
| metadata | The group member metadata. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
JoinGroup Response (Version: 8) => throttle_time_ms error_code generation_id protocol_type protocol_name leader member_id [members] _tagged_fields 
  throttle_time_ms => INT32
  error_code => INT16
  generation_id => INT32
  protocol_type => COMPACT_NULLABLE_STRING
  protocol_name => COMPACT_NULLABLE_STRING
  leader => COMPACT_STRING
  member_id => COMPACT_STRING
  members => member_id group_instance_id metadata _tagged_fields 
    member_id => COMPACT_STRING
    group_instance_id => COMPACT_NULLABLE_STRING
    metadata => COMPACT_BYTES
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| generation_id | The generation ID of the group. | 
| protocol_type | The group protocol name. | 
| protocol_name | The group protocol selected by the coordinator. | 
| leader | The leader of the group. | 
| member_id | The member ID assigned by the group coordinator. | 
| members | The group members. | 
| member_id | The group member ID. | 
| group_instance_id | The unique identifier of the consumer instance provided by end user. | 
| metadata | The group member metadata. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
Heartbeat Request (Version: 0) => group_id generation_id member_id 
  group_id => STRING
  generation_id => INT32
  member_id => STRING
Request header version: 1
| Field | Description | 
|---|
| group_id | The group id. | 
| generation_id | The generation of the group. | 
| member_id | The member ID. | 
Heartbeat Request (Version: 1) => group_id generation_id member_id 
  group_id => STRING
  generation_id => INT32
  member_id => STRING
Request header version: 1
| Field | Description | 
|---|
| group_id | The group id. | 
| generation_id | The generation of the group. | 
| member_id | The member ID. | 
Heartbeat Request (Version: 2) => group_id generation_id member_id 
  group_id => STRING
  generation_id => INT32
  member_id => STRING
Request header version: 1
| Field | Description | 
|---|
| group_id | The group id. | 
| generation_id | The generation of the group. | 
| member_id | The member ID. | 
Heartbeat Request (Version: 3) => group_id generation_id member_id group_instance_id 
  group_id => STRING
  generation_id => INT32
  member_id => STRING
  group_instance_id => NULLABLE_STRING
Request header version: 1
| Field | Description | 
|---|
| group_id | The group id. | 
| generation_id | The generation of the group. | 
| member_id | The member ID. | 
| group_instance_id | The unique identifier of the consumer instance provided by end user. | 
Heartbeat Request (Version: 4) => group_id generation_id member_id group_instance_id _tagged_fields 
  group_id => COMPACT_STRING
  generation_id => INT32
  member_id => COMPACT_STRING
  group_instance_id => COMPACT_NULLABLE_STRING
Request header version: 2
| Field | Description | 
|---|
| group_id | The group id. | 
| generation_id | The generation of the group. | 
| member_id | The member ID. | 
| group_instance_id | The unique identifier of the consumer instance provided by end user. | 
| _tagged_fields | The tagged fields | 
Heartbeat Response (Version: 0) => error_code 
  error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| error_code | The error code, or 0 if there was no error. | 
Heartbeat Response (Version: 1) => throttle_time_ms error_code 
  throttle_time_ms => INT32
  error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
Heartbeat Response (Version: 2) => throttle_time_ms error_code 
  throttle_time_ms => INT32
  error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
Heartbeat Response (Version: 3) => throttle_time_ms error_code 
  throttle_time_ms => INT32
  error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
LeaveGroup Request (Version: 0) => group_id member_id 
  group_id => STRING
  member_id => STRING
Request header version: 1
| Field | Description | 
|---|
| group_id | The ID of the group to leave. | 
| member_id | The member ID to remove from the group. | 
LeaveGroup Request (Version: 1) => group_id member_id 
  group_id => STRING
  member_id => STRING
Request header version: 1
| Field | Description | 
|---|
| group_id | The ID of the group to leave. | 
| member_id | The member ID to remove from the group. | 
LeaveGroup Request (Version: 2) => group_id member_id 
  group_id => STRING
  member_id => STRING
Request header version: 1
| Field | Description | 
|---|
| group_id | The ID of the group to leave. | 
| member_id | The member ID to remove from the group. | 
LeaveGroup Request (Version: 3) => group_id [members] 
  group_id => STRING
  members => member_id group_instance_id 
    member_id => STRING
    group_instance_id => NULLABLE_STRING
Request header version: 1
| Field | Description | 
|---|
| group_id | The ID of the group to leave. | 
| members | List of leaving member identities. | 
| member_id | The member ID to remove from the group. | 
| group_instance_id | The group instance ID to remove from the group. | 
LeaveGroup Request (Version: 4) => group_id [members] _tagged_fields 
  group_id => COMPACT_STRING
  members => member_id group_instance_id _tagged_fields 
    member_id => COMPACT_STRING
    group_instance_id => COMPACT_NULLABLE_STRING
Request header version: 2
| Field | Description | 
|---|
| group_id | The ID of the group to leave. | 
| members | List of leaving member identities. | 
| member_id | The member ID to remove from the group. | 
| group_instance_id | The group instance ID to remove from the group. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
LeaveGroup Request (Version: 5) => group_id [members] _tagged_fields 
  group_id => COMPACT_STRING
  members => member_id group_instance_id reason _tagged_fields 
    member_id => COMPACT_STRING
    group_instance_id => COMPACT_NULLABLE_STRING
    reason => COMPACT_NULLABLE_STRING
Request header version: 2
| Field | Description | 
|---|
| group_id | The ID of the group to leave. | 
| members | List of leaving member identities. | 
| member_id | The member ID to remove from the group. | 
| group_instance_id | The group instance ID to remove from the group. | 
| reason | The reason why the member left the group. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
LeaveGroup Response (Version: 0) => error_code 
  error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| error_code | The error code, or 0 if there was no error. | 
LeaveGroup Response (Version: 1) => throttle_time_ms error_code 
  throttle_time_ms => INT32
  error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
LeaveGroup Response (Version: 2) => throttle_time_ms error_code 
  throttle_time_ms => INT32
  error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
LeaveGroup Response (Version: 3) => throttle_time_ms error_code [members] 
  throttle_time_ms => INT32
  error_code => INT16
  members => member_id group_instance_id error_code 
    member_id => STRING
    group_instance_id => NULLABLE_STRING
    error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| members | List of leaving member responses. | 
| member_id | The member ID to remove from the group. | 
| group_instance_id | The group instance ID to remove from the group. | 
| error_code | The error code, or 0 if there was no error. | 
LeaveGroup Response (Version: 4) => throttle_time_ms error_code [members] _tagged_fields 
  throttle_time_ms => INT32
  error_code => INT16
  members => member_id group_instance_id error_code _tagged_fields 
    member_id => COMPACT_STRING
    group_instance_id => COMPACT_NULLABLE_STRING
    error_code => INT16
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| members | List of leaving member responses. | 
| member_id | The member ID to remove from the group. | 
| group_instance_id | The group instance ID to remove from the group. | 
| error_code | The error code, or 0 if there was no error. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
SyncGroup Request (Version: 0) => group_id generation_id member_id [assignments] 
  group_id => STRING
  generation_id => INT32
  member_id => STRING
  assignments => member_id assignment 
    member_id => STRING
    assignment => BYTES
Request header version: 1
| Field | Description | 
|---|
| group_id | The unique group identifier. | 
| generation_id | The generation of the group. | 
| member_id | The member ID assigned by the group. | 
| assignments | Each assignment. | 
| member_id | The ID of the member to assign. | 
| assignment | The member assignment. | 
SyncGroup Request (Version: 1) => group_id generation_id member_id [assignments] 
  group_id => STRING
  generation_id => INT32
  member_id => STRING
  assignments => member_id assignment 
    member_id => STRING
    assignment => BYTES
Request header version: 1
| Field | Description | 
|---|
| group_id | The unique group identifier. | 
| generation_id | The generation of the group. | 
| member_id | The member ID assigned by the group. | 
| assignments | Each assignment. | 
| member_id | The ID of the member to assign. | 
| assignment | The member assignment. | 
SyncGroup Request (Version: 2) => group_id generation_id member_id [assignments] 
  group_id => STRING
  generation_id => INT32
  member_id => STRING
  assignments => member_id assignment 
    member_id => STRING
    assignment => BYTES
Request header version: 1
| Field | Description | 
|---|
| group_id | The unique group identifier. | 
| generation_id | The generation of the group. | 
| member_id | The member ID assigned by the group. | 
| assignments | Each assignment. | 
| member_id | The ID of the member to assign. | 
| assignment | The member assignment. | 
SyncGroup Request (Version: 3) => group_id generation_id member_id group_instance_id [assignments] 
  group_id => STRING
  generation_id => INT32
  member_id => STRING
  group_instance_id => NULLABLE_STRING
  assignments => member_id assignment 
    member_id => STRING
    assignment => BYTES
Request header version: 1
| Field | Description | 
|---|
| group_id | The unique group identifier. | 
| generation_id | The generation of the group. | 
| member_id | The member ID assigned by the group. | 
| group_instance_id | The unique identifier of the consumer instance provided by end user. | 
| assignments | Each assignment. | 
| member_id | The ID of the member to assign. | 
| assignment | The member assignment. | 
SyncGroup Request (Version: 4) => group_id generation_id member_id group_instance_id [assignments] _tagged_fields 
  group_id => COMPACT_STRING
  generation_id => INT32
  member_id => COMPACT_STRING
  group_instance_id => COMPACT_NULLABLE_STRING
  assignments => member_id assignment _tagged_fields 
    member_id => COMPACT_STRING
    assignment => COMPACT_BYTES
Request header version: 2
| Field | Description | 
|---|
| group_id | The unique group identifier. | 
| generation_id | The generation of the group. | 
| member_id | The member ID assigned by the group. | 
| group_instance_id | The unique identifier of the consumer instance provided by end user. | 
| assignments | Each assignment. | 
| member_id | The ID of the member to assign. | 
| assignment | The member assignment. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
SyncGroup Request (Version: 5) => group_id generation_id member_id group_instance_id protocol_type protocol_name [assignments] _tagged_fields 
  group_id => COMPACT_STRING
  generation_id => INT32
  member_id => COMPACT_STRING
  group_instance_id => COMPACT_NULLABLE_STRING
  protocol_type => COMPACT_NULLABLE_STRING
  protocol_name => COMPACT_NULLABLE_STRING
  assignments => member_id assignment _tagged_fields 
    member_id => COMPACT_STRING
    assignment => COMPACT_BYTES
Request header version: 2
| Field | Description | 
|---|
| group_id | The unique group identifier. | 
| generation_id | The generation of the group. | 
| member_id | The member ID assigned by the group. | 
| group_instance_id | The unique identifier of the consumer instance provided by end user. | 
| protocol_type | The group protocol type. | 
| protocol_name | The group protocol name. | 
| assignments | Each assignment. | 
| member_id | The ID of the member to assign. | 
| assignment | The member assignment. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
SyncGroup Response (Version: 0) => error_code assignment 
  error_code => INT16
  assignment => BYTES
Response header version: 0
| Field | Description | 
|---|
| error_code | The error code, or 0 if there was no error. | 
| assignment | The member assignment. | 
SyncGroup Response (Version: 1) => throttle_time_ms error_code assignment 
  throttle_time_ms => INT32
  error_code => INT16
  assignment => BYTES
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| assignment | The member assignment. | 
SyncGroup Response (Version: 2) => throttle_time_ms error_code assignment 
  throttle_time_ms => INT32
  error_code => INT16
  assignment => BYTES
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| assignment | The member assignment. | 
SyncGroup Response (Version: 3) => throttle_time_ms error_code assignment 
  throttle_time_ms => INT32
  error_code => INT16
  assignment => BYTES
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| assignment | The member assignment. | 
SyncGroup Response (Version: 4) => throttle_time_ms error_code assignment _tagged_fields 
  throttle_time_ms => INT32
  error_code => INT16
  assignment => COMPACT_BYTES
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| assignment | The member assignment. | 
| _tagged_fields | The tagged fields | 
DescribeGroups Request (Version: 0) => [groups] 
  groups => STRING
Request header version: 1
| Field | Description | 
|---|
| groups | The names of the groups to describe. | 
DescribeGroups Request (Version: 1) => [groups] 
  groups => STRING
Request header version: 1
| Field | Description | 
|---|
| groups | The names of the groups to describe. | 
DescribeGroups Request (Version: 2) => [groups] 
  groups => STRING
Request header version: 1
| Field | Description | 
|---|
| groups | The names of the groups to describe. | 
DescribeGroups Request (Version: 3) => [groups] include_authorized_operations 
  groups => STRING
  include_authorized_operations => BOOLEAN
Request header version: 1
| Field | Description | 
|---|
| groups | The names of the groups to describe. | 
| include_authorized_operations | Whether to include authorized operations. | 
DescribeGroups Request (Version: 4) => [groups] include_authorized_operations 
  groups => STRING
  include_authorized_operations => BOOLEAN
Request header version: 1
| Field | Description | 
|---|
| groups | The names of the groups to describe. | 
| include_authorized_operations | Whether to include authorized operations. | 
DescribeGroups Request (Version: 5) => [groups] include_authorized_operations _tagged_fields 
  groups => COMPACT_STRING
  include_authorized_operations => BOOLEAN
Request header version: 2
| Field | Description | 
|---|
| groups | The names of the groups to describe. | 
| include_authorized_operations | Whether to include authorized operations. | 
| _tagged_fields | The tagged fields | 
DescribeGroups Request (Version: 6) => [groups] include_authorized_operations _tagged_fields 
  groups => COMPACT_STRING
  include_authorized_operations => BOOLEAN
Request header version: 2
| Field | Description | 
|---|
| groups | The names of the groups to describe. | 
| include_authorized_operations | Whether to include authorized operations. | 
| _tagged_fields | The tagged fields | 
DescribeGroups Response (Version: 0) => [groups] 
  groups => error_code group_id group_state protocol_type protocol_data [members] 
    error_code => INT16
    group_id => STRING
    group_state => STRING
    protocol_type => STRING
    protocol_data => STRING
    members => member_id client_id client_host member_metadata member_assignment 
      member_id => STRING
      client_id => STRING
      client_host => STRING
      member_metadata => BYTES
      member_assignment => BYTES
Response header version: 0
| Field | Description | 
|---|
| groups | Each described group. | 
| error_code | The describe error, or 0 if there was no error. | 
| group_id | The group ID string. | 
| group_state | The group state string, or the empty string. | 
| protocol_type | The group protocol type, or the empty string. | 
| protocol_data | The group protocol data, or the empty string. | 
| members | The group members. | 
| member_id | The member id. | 
| client_id | The client ID used in the member's latest join group request. | 
| client_host | The client host. | 
| member_metadata | The metadata corresponding to the current group protocol in use. | 
| member_assignment | The current assignment provided by the group leader. | 
DescribeGroups Response (Version: 1) => throttle_time_ms [groups] 
  throttle_time_ms => INT32
  groups => error_code group_id group_state protocol_type protocol_data [members] 
    error_code => INT16
    group_id => STRING
    group_state => STRING
    protocol_type => STRING
    protocol_data => STRING
    members => member_id client_id client_host member_metadata member_assignment 
      member_id => STRING
      client_id => STRING
      client_host => STRING
      member_metadata => BYTES
      member_assignment => BYTES
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| groups | Each described group. | 
| error_code | The describe error, or 0 if there was no error. | 
| group_id | The group ID string. | 
| group_state | The group state string, or the empty string. | 
| protocol_type | The group protocol type, or the empty string. | 
| protocol_data | The group protocol data, or the empty string. | 
| members | The group members. | 
| member_id | The member id. | 
| client_id | The client ID used in the member's latest join group request. | 
| client_host | The client host. | 
| member_metadata | The metadata corresponding to the current group protocol in use. | 
| member_assignment | The current assignment provided by the group leader. | 
DescribeGroups Response (Version: 2) => throttle_time_ms [groups] 
  throttle_time_ms => INT32
  groups => error_code group_id group_state protocol_type protocol_data [members] 
    error_code => INT16
    group_id => STRING
    group_state => STRING
    protocol_type => STRING
    protocol_data => STRING
    members => member_id client_id client_host member_metadata member_assignment 
      member_id => STRING
      client_id => STRING
      client_host => STRING
      member_metadata => BYTES
      member_assignment => BYTES
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| groups | Each described group. | 
| error_code | The describe error, or 0 if there was no error. | 
| group_id | The group ID string. | 
| group_state | The group state string, or the empty string. | 
| protocol_type | The group protocol type, or the empty string. | 
| protocol_data | The group protocol data, or the empty string. | 
| members | The group members. | 
| member_id | The member id. | 
| client_id | The client ID used in the member's latest join group request. | 
| client_host | The client host. | 
| member_metadata | The metadata corresponding to the current group protocol in use. | 
| member_assignment | The current assignment provided by the group leader. | 
DescribeGroups Response (Version: 3) => throttle_time_ms [groups] 
  throttle_time_ms => INT32
  groups => error_code group_id group_state protocol_type protocol_data [members] authorized_operations 
    error_code => INT16
    group_id => STRING
    group_state => STRING
    protocol_type => STRING
    protocol_data => STRING
    members => member_id client_id client_host member_metadata member_assignment 
      member_id => STRING
      client_id => STRING
      client_host => STRING
      member_metadata => BYTES
      member_assignment => BYTES
    authorized_operations => INT32
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| groups | Each described group. | 
| error_code | The describe error, or 0 if there was no error. | 
| group_id | The group ID string. | 
| group_state | The group state string, or the empty string. | 
| protocol_type | The group protocol type, or the empty string. | 
| protocol_data | The group protocol data, or the empty string. | 
| members | The group members. | 
| member_id | The member id. | 
| client_id | The client ID used in the member's latest join group request. | 
| client_host | The client host. | 
| member_metadata | The metadata corresponding to the current group protocol in use. | 
| member_assignment | The current assignment provided by the group leader. | 
| authorized_operations | 32-bit bitfield to represent authorized operations for this group. | 
DescribeGroups Response (Version: 4) => throttle_time_ms [groups] 
  throttle_time_ms => INT32
  groups => error_code group_id group_state protocol_type protocol_data [members] authorized_operations 
    error_code => INT16
    group_id => STRING
    group_state => STRING
    protocol_type => STRING
    protocol_data => STRING
    members => member_id group_instance_id client_id client_host member_metadata member_assignment 
      member_id => STRING
      group_instance_id => NULLABLE_STRING
      client_id => STRING
      client_host => STRING
      member_metadata => BYTES
      member_assignment => BYTES
    authorized_operations => INT32
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| groups | Each described group. | 
| error_code | The describe error, or 0 if there was no error. | 
| group_id | The group ID string. | 
| group_state | The group state string, or the empty string. | 
| protocol_type | The group protocol type, or the empty string. | 
| protocol_data | The group protocol data, or the empty string. | 
| members | The group members. | 
| member_id | The member id. | 
| group_instance_id | The unique identifier of the consumer instance provided by end user. | 
| client_id | The client ID used in the member's latest join group request. | 
| client_host | The client host. | 
| member_metadata | The metadata corresponding to the current group protocol in use. | 
| member_assignment | The current assignment provided by the group leader. | 
| authorized_operations | 32-bit bitfield to represent authorized operations for this group. | 
DescribeGroups Response (Version: 5) => throttle_time_ms [groups] _tagged_fields 
  throttle_time_ms => INT32
  groups => error_code group_id group_state protocol_type protocol_data [members] authorized_operations _tagged_fields 
    error_code => INT16
    group_id => COMPACT_STRING
    group_state => COMPACT_STRING
    protocol_type => COMPACT_STRING
    protocol_data => COMPACT_STRING
    members => member_id group_instance_id client_id client_host member_metadata member_assignment _tagged_fields 
      member_id => COMPACT_STRING
      group_instance_id => COMPACT_NULLABLE_STRING
      client_id => COMPACT_STRING
      client_host => COMPACT_STRING
      member_metadata => COMPACT_BYTES
      member_assignment => COMPACT_BYTES
    authorized_operations => INT32
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| groups | Each described group. | 
| error_code | The describe error, or 0 if there was no error. | 
| group_id | The group ID string. | 
| group_state | The group state string, or the empty string. | 
| protocol_type | The group protocol type, or the empty string. | 
| protocol_data | The group protocol data, or the empty string. | 
| members | The group members. | 
| member_id | The member id. | 
| group_instance_id | The unique identifier of the consumer instance provided by end user. | 
| client_id | The client ID used in the member's latest join group request. | 
| client_host | The client host. | 
| member_metadata | The metadata corresponding to the current group protocol in use. | 
| member_assignment | The current assignment provided by the group leader. | 
| _tagged_fields | The tagged fields | 
| authorized_operations | 32-bit bitfield to represent authorized operations for this group. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
ListGroups Request (Version: 0) => 
Request header version: 1
ListGroups Request (Version: 1) => 
Request header version: 1
ListGroups Request (Version: 2) => 
Request header version: 1
ListGroups Request (Version: 3) => _tagged_fields 
Request header version: 2
| Field | Description | 
|---|
| _tagged_fields | The tagged fields | 
ListGroups Request (Version: 4) => [states_filter] _tagged_fields 
  states_filter => COMPACT_STRING
Request header version: 2
| Field | Description | 
|---|
| states_filter | The states of the groups we want to list. If empty, all groups are returned with their state. | 
| _tagged_fields | The tagged fields | 
ListGroups Request (Version: 5) => [states_filter] [types_filter] _tagged_fields 
  states_filter => COMPACT_STRING
  types_filter => COMPACT_STRING
Request header version: 2
| Field | Description | 
|---|
| states_filter | The states of the groups we want to list. If empty, all groups are returned with their state. | 
| types_filter | The types of the groups we want to list. If empty, all groups are returned with their type. | 
| _tagged_fields | The tagged fields | 
ListGroups Response (Version: 0) => error_code [groups] 
  error_code => INT16
  groups => group_id protocol_type 
    group_id => STRING
    protocol_type => STRING
Response header version: 0
| Field | Description | 
|---|
| error_code | The error code, or 0 if there was no error. | 
| groups | Each group in the response. | 
| group_id | The group ID. | 
| protocol_type | The group protocol type. | 
ListGroups Response (Version: 1) => throttle_time_ms error_code [groups] 
  throttle_time_ms => INT32
  error_code => INT16
  groups => group_id protocol_type 
    group_id => STRING
    protocol_type => STRING
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| groups | Each group in the response. | 
| group_id | The group ID. | 
| protocol_type | The group protocol type. | 
ListGroups Response (Version: 2) => throttle_time_ms error_code [groups] 
  throttle_time_ms => INT32
  error_code => INT16
  groups => group_id protocol_type 
    group_id => STRING
    protocol_type => STRING
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| groups | Each group in the response. | 
| group_id | The group ID. | 
| protocol_type | The group protocol type. | 
ListGroups Response (Version: 3) => throttle_time_ms error_code [groups] _tagged_fields 
  throttle_time_ms => INT32
  error_code => INT16
  groups => group_id protocol_type _tagged_fields 
    group_id => COMPACT_STRING
    protocol_type => COMPACT_STRING
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| groups | Each group in the response. | 
| group_id | The group ID. | 
| protocol_type | The group protocol type. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
ListGroups Response (Version: 4) => throttle_time_ms error_code [groups] _tagged_fields 
  throttle_time_ms => INT32
  error_code => INT16
  groups => group_id protocol_type group_state _tagged_fields 
    group_id => COMPACT_STRING
    protocol_type => COMPACT_STRING
    group_state => COMPACT_STRING
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| groups | Each group in the response. | 
| group_id | The group ID. | 
| protocol_type | The group protocol type. | 
| group_state | The group state name. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
SaslHandshake Request (Version: 0) => mechanism 
  mechanism => STRING
Request header version: 1
| Field | Description | 
|---|
| mechanism | The SASL mechanism chosen by the client. | 
SaslHandshake Request (Version: 1) => mechanism 
  mechanism => STRING
Request header version: 1
| Field | Description | 
|---|
| mechanism | The SASL mechanism chosen by the client. | 
SaslHandshake Response (Version: 0) => error_code [mechanisms] 
  error_code => INT16
  mechanisms => STRING
Response header version: 0
| Field | Description | 
|---|
| error_code | The error code, or 0 if there was no error. | 
| mechanisms | The mechanisms enabled in the server. | 
ApiVersions Request (Version: 0) => 
Request header version: 1
ApiVersions Request (Version: 1) => 
Request header version: 1
ApiVersions Request (Version: 2) => 
Request header version: 1
ApiVersions Request (Version: 3) => client_software_name client_software_version _tagged_fields 
  client_software_name => COMPACT_STRING
  client_software_version => COMPACT_STRING
Request header version: 2
| Field | Description | 
|---|
| client_software_name | The name of the client. | 
| client_software_version | The version of the client. | 
| _tagged_fields | The tagged fields | 
ApiVersions Request (Version: 4) => client_software_name client_software_version _tagged_fields 
  client_software_name => COMPACT_STRING
  client_software_version => COMPACT_STRING
Request header version: 2
| Field | Description | 
|---|
| client_software_name | The name of the client. | 
| client_software_version | The version of the client. | 
| _tagged_fields | The tagged fields | 
ApiVersions Response (Version: 0) => error_code [api_keys] 
  error_code => INT16
  api_keys => api_key min_version max_version 
    api_key => INT16
    min_version => INT16
    max_version => INT16
Response header version: 0
| Field | Description | 
|---|
| error_code | The top-level error code. | 
| api_keys | The APIs supported by the broker. | 
| api_key | The API index. | 
| min_version | The minimum supported version, inclusive. | 
| max_version | The maximum supported version, inclusive. | 
ApiVersions Response (Version: 1) => error_code [api_keys] throttle_time_ms 
  error_code => INT16
  api_keys => api_key min_version max_version 
    api_key => INT16
    min_version => INT16
    max_version => INT16
  throttle_time_ms => INT32
Response header version: 0
| Field | Description | 
|---|
| error_code | The top-level error code. | 
| api_keys | The APIs supported by the broker. | 
| api_key | The API index. | 
| min_version | The minimum supported version, inclusive. | 
| max_version | The maximum supported version, inclusive. | 
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
ApiVersions Response (Version: 2) => error_code [api_keys] throttle_time_ms 
  error_code => INT16
  api_keys => api_key min_version max_version 
    api_key => INT16
    min_version => INT16
    max_version => INT16
  throttle_time_ms => INT32
Response header version: 0
| Field | Description | 
|---|
| error_code | The top-level error code. | 
| api_keys | The APIs supported by the broker. | 
| api_key | The API index. | 
| min_version | The minimum supported version, inclusive. | 
| max_version | The maximum supported version, inclusive. | 
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
ApiVersions Response (Version: 3) => error_code [api_keys] throttle_time_ms _tagged_fields 
  error_code => INT16
  api_keys => api_key min_version max_version _tagged_fields 
    api_key => INT16
    min_version => INT16
    max_version => INT16
  throttle_time_ms => INT32
Response header version: 0
| Field | Description | 
|---|
| error_code | The top-level error code. | 
| api_keys | The APIs supported by the broker. | 
| api_key | The API index. | 
| min_version | The minimum supported version, inclusive. | 
| max_version | The maximum supported version, inclusive. | 
| _tagged_fields | The tagged fields | 
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| _tagged_fields | 
| Tag | Tagged field | Description | 
|---|
 
| 0 | supported_features | Features supported by the broker. Note: in v0-v3, features with MinSupportedVersion = 0 are omitted. 
| Field | Description | 
|---|
 
| name | The name of the feature. |  
| min_version | The minimum supported version for the feature. |  
| max_version | The maximum supported version for the feature. |  
| _tagged_fields | The tagged fields |  |  
| 1 | finalized_features_epoch | The monotonically increasing epoch for the finalized features information. Valid values are >= 0. A value of -1 is special and represents unknown epoch. |  
| 2 | finalized_features | List of cluster-wide finalized features. The information is valid only if FinalizedFeaturesEpoch >= 0. 
| Field | Description | 
|---|
 
| name | The name of the feature. |  
| max_version_level | The cluster-wide finalized max version level for the feature. |  
| min_version_level | The cluster-wide finalized min version level for the feature. |  
| _tagged_fields | The tagged fields |  |  
| 3 | zk_migration_ready | Set by a KRaft controller if the required configurations for ZK migration are present. |  | 
CreateTopics Request (Version: 2) => [topics] timeout_ms validate_only 
  topics => name num_partitions replication_factor [assignments] [configs] 
    name => STRING
    num_partitions => INT32
    replication_factor => INT16
    assignments => partition_index [broker_ids] 
      partition_index => INT32
      broker_ids => INT32
    configs => name value 
      name => STRING
      value => NULLABLE_STRING
  timeout_ms => INT32
  validate_only => BOOLEAN
Request header version: 1
| Field | Description | 
|---|
| topics | The topics to create. | 
| name | The topic name. | 
| num_partitions | The number of partitions to create in the topic, or -1 if we are either specifying a manual partition assignment or using the default partitions. | 
| replication_factor | The number of replicas to create for each partition in the topic, or -1 if we are either specifying a manual partition assignment or using the default replication factor. | 
| assignments | The manual partition assignment, or the empty array if we are using automatic assignment. | 
| partition_index | The partition index. | 
| broker_ids | The brokers to place the partition on. | 
| configs | The custom topic configurations to set. | 
| name | The configuration name. | 
| value | The configuration value. | 
| timeout_ms | How long to wait in milliseconds before timing out the request. | 
| validate_only | If true, check that the topics can be created as specified, but don't create anything. | 
CreateTopics Request (Version: 3) => [topics] timeout_ms validate_only 
  topics => name num_partitions replication_factor [assignments] [configs] 
    name => STRING
    num_partitions => INT32
    replication_factor => INT16
    assignments => partition_index [broker_ids] 
      partition_index => INT32
      broker_ids => INT32
    configs => name value 
      name => STRING
      value => NULLABLE_STRING
  timeout_ms => INT32
  validate_only => BOOLEAN
Request header version: 1
| Field | Description | 
|---|
| topics | The topics to create. | 
| name | The topic name. | 
| num_partitions | The number of partitions to create in the topic, or -1 if we are either specifying a manual partition assignment or using the default partitions. | 
| replication_factor | The number of replicas to create for each partition in the topic, or -1 if we are either specifying a manual partition assignment or using the default replication factor. | 
| assignments | The manual partition assignment, or the empty array if we are using automatic assignment. | 
| partition_index | The partition index. | 
| broker_ids | The brokers to place the partition on. | 
| configs | The custom topic configurations to set. | 
| name | The configuration name. | 
| value | The configuration value. | 
| timeout_ms | How long to wait in milliseconds before timing out the request. | 
| validate_only | If true, check that the topics can be created as specified, but don't create anything. | 
CreateTopics Request (Version: 4) => [topics] timeout_ms validate_only 
  topics => name num_partitions replication_factor [assignments] [configs] 
    name => STRING
    num_partitions => INT32
    replication_factor => INT16
    assignments => partition_index [broker_ids] 
      partition_index => INT32
      broker_ids => INT32
    configs => name value 
      name => STRING
      value => NULLABLE_STRING
  timeout_ms => INT32
  validate_only => BOOLEAN
Request header version: 1
| Field | Description | 
|---|
| topics | The topics to create. | 
| name | The topic name. | 
| num_partitions | The number of partitions to create in the topic, or -1 if we are either specifying a manual partition assignment or using the default partitions. | 
| replication_factor | The number of replicas to create for each partition in the topic, or -1 if we are either specifying a manual partition assignment or using the default replication factor. | 
| assignments | The manual partition assignment, or the empty array if we are using automatic assignment. | 
| partition_index | The partition index. | 
| broker_ids | The brokers to place the partition on. | 
| configs | The custom topic configurations to set. | 
| name | The configuration name. | 
| value | The configuration value. | 
| timeout_ms | How long to wait in milliseconds before timing out the request. | 
| validate_only | If true, check that the topics can be created as specified, but don't create anything. | 
CreateTopics Request (Version: 5) => [topics] timeout_ms validate_only _tagged_fields 
  topics => name num_partitions replication_factor [assignments] [configs] _tagged_fields 
    name => COMPACT_STRING
    num_partitions => INT32
    replication_factor => INT16
    assignments => partition_index [broker_ids] _tagged_fields 
      partition_index => INT32
      broker_ids => INT32
    configs => name value _tagged_fields 
      name => COMPACT_STRING
      value => COMPACT_NULLABLE_STRING
  timeout_ms => INT32
  validate_only => BOOLEAN
Request header version: 2
| Field | Description | 
|---|
| topics | The topics to create. | 
| name | The topic name. | 
| num_partitions | The number of partitions to create in the topic, or -1 if we are either specifying a manual partition assignment or using the default partitions. | 
| replication_factor | The number of replicas to create for each partition in the topic, or -1 if we are either specifying a manual partition assignment or using the default replication factor. | 
| assignments | The manual partition assignment, or the empty array if we are using automatic assignment. | 
| partition_index | The partition index. | 
| broker_ids | The brokers to place the partition on. | 
| _tagged_fields | The tagged fields | 
| configs | The custom topic configurations to set. | 
| name | The configuration name. | 
| value | The configuration value. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| timeout_ms | How long to wait in milliseconds before timing out the request. | 
| validate_only | If true, check that the topics can be created as specified, but don't create anything. | 
| _tagged_fields | The tagged fields | 
CreateTopics Request (Version: 6) => [topics] timeout_ms validate_only _tagged_fields 
  topics => name num_partitions replication_factor [assignments] [configs] _tagged_fields 
    name => COMPACT_STRING
    num_partitions => INT32
    replication_factor => INT16
    assignments => partition_index [broker_ids] _tagged_fields 
      partition_index => INT32
      broker_ids => INT32
    configs => name value _tagged_fields 
      name => COMPACT_STRING
      value => COMPACT_NULLABLE_STRING
  timeout_ms => INT32
  validate_only => BOOLEAN
Request header version: 2
| Field | Description | 
|---|
| topics | The topics to create. | 
| name | The topic name. | 
| num_partitions | The number of partitions to create in the topic, or -1 if we are either specifying a manual partition assignment or using the default partitions. | 
| replication_factor | The number of replicas to create for each partition in the topic, or -1 if we are either specifying a manual partition assignment or using the default replication factor. | 
| assignments | The manual partition assignment, or the empty array if we are using automatic assignment. | 
| partition_index | The partition index. | 
| broker_ids | The brokers to place the partition on. | 
| _tagged_fields | The tagged fields | 
| configs | The custom topic configurations to set. | 
| name | The configuration name. | 
| value | The configuration value. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| timeout_ms | How long to wait in milliseconds before timing out the request. | 
| validate_only | If true, check that the topics can be created as specified, but don't create anything. | 
| _tagged_fields | The tagged fields | 
CreateTopics Request (Version: 7) => [topics] timeout_ms validate_only _tagged_fields 
  topics => name num_partitions replication_factor [assignments] [configs] _tagged_fields 
    name => COMPACT_STRING
    num_partitions => INT32
    replication_factor => INT16
    assignments => partition_index [broker_ids] _tagged_fields 
      partition_index => INT32
      broker_ids => INT32
    configs => name value _tagged_fields 
      name => COMPACT_STRING
      value => COMPACT_NULLABLE_STRING
  timeout_ms => INT32
  validate_only => BOOLEAN
Request header version: 2
| Field | Description | 
|---|
| topics | The topics to create. | 
| name | The topic name. | 
| num_partitions | The number of partitions to create in the topic, or -1 if we are either specifying a manual partition assignment or using the default partitions. | 
| replication_factor | The number of replicas to create for each partition in the topic, or -1 if we are either specifying a manual partition assignment or using the default replication factor. | 
| assignments | The manual partition assignment, or the empty array if we are using automatic assignment. | 
| partition_index | The partition index. | 
| broker_ids | The brokers to place the partition on. | 
| _tagged_fields | The tagged fields | 
| configs | The custom topic configurations to set. | 
| name | The configuration name. | 
| value | The configuration value. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| timeout_ms | How long to wait in milliseconds before timing out the request. | 
| validate_only | If true, check that the topics can be created as specified, but don't create anything. | 
| _tagged_fields | The tagged fields | 
CreateTopics Response (Version: 2) => throttle_time_ms [topics] 
  throttle_time_ms => INT32
  topics => name error_code error_message 
    name => STRING
    error_code => INT16
    error_message => NULLABLE_STRING
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | Results for each topic we tried to create. | 
| name | The topic name. | 
| error_code | The error code, or 0 if there was no error. | 
| error_message | The error message, or null if there was no error. | 
CreateTopics Response (Version: 3) => throttle_time_ms [topics] 
  throttle_time_ms => INT32
  topics => name error_code error_message 
    name => STRING
    error_code => INT16
    error_message => NULLABLE_STRING
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | Results for each topic we tried to create. | 
| name | The topic name. | 
| error_code | The error code, or 0 if there was no error. | 
| error_message | The error message, or null if there was no error. | 
CreateTopics Response (Version: 4) => throttle_time_ms [topics] 
  throttle_time_ms => INT32
  topics => name error_code error_message 
    name => STRING
    error_code => INT16
    error_message => NULLABLE_STRING
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | Results for each topic we tried to create. | 
| name | The topic name. | 
| error_code | The error code, or 0 if there was no error. | 
| error_message | The error message, or null if there was no error. | 
CreateTopics Response (Version: 5) => throttle_time_ms [topics] _tagged_fields 
  throttle_time_ms => INT32
  topics => name error_code error_message num_partitions replication_factor [configs] _tagged_fields 
    name => COMPACT_STRING
    error_code => INT16
    error_message => COMPACT_NULLABLE_STRING
    num_partitions => INT32
    replication_factor => INT16
    configs => name value read_only config_source is_sensitive _tagged_fields 
      name => COMPACT_STRING
      value => COMPACT_NULLABLE_STRING
      read_only => BOOLEAN
      config_source => INT8
      is_sensitive => BOOLEAN
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | Results for each topic we tried to create. | 
| name | The topic name. | 
| error_code | The error code, or 0 if there was no error. | 
| error_message | The error message, or null if there was no error. | 
| num_partitions | Number of partitions of the topic. | 
| replication_factor | Replication factor of the topic. | 
| configs | Configuration of the topic. | 
| name | The configuration name. | 
| value | The configuration value. | 
| read_only | True if the configuration is read-only. | 
| config_source | The configuration source. | 
| is_sensitive | True if this configuration is sensitive. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | 
| Tag | Tagged field | Description | 
|---|
 
| 0 | topic_config_error_code | Optional topic config error returned if configs are not returned in the response. |  | 
| _tagged_fields | The tagged fields | 
CreateTopics Response (Version: 6) => throttle_time_ms [topics] _tagged_fields 
  throttle_time_ms => INT32
  topics => name error_code error_message num_partitions replication_factor [configs] _tagged_fields 
    name => COMPACT_STRING
    error_code => INT16
    error_message => COMPACT_NULLABLE_STRING
    num_partitions => INT32
    replication_factor => INT16
    configs => name value read_only config_source is_sensitive _tagged_fields 
      name => COMPACT_STRING
      value => COMPACT_NULLABLE_STRING
      read_only => BOOLEAN
      config_source => INT8
      is_sensitive => BOOLEAN
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | Results for each topic we tried to create. | 
| name | The topic name. | 
| error_code | The error code, or 0 if there was no error. | 
| error_message | The error message, or null if there was no error. | 
| num_partitions | Number of partitions of the topic. | 
| replication_factor | Replication factor of the topic. | 
| configs | Configuration of the topic. | 
| name | The configuration name. | 
| value | The configuration value. | 
| read_only | True if the configuration is read-only. | 
| config_source | The configuration source. | 
| is_sensitive | True if this configuration is sensitive. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | 
| Tag | Tagged field | Description | 
|---|
 
| 0 | topic_config_error_code | Optional topic config error returned if configs are not returned in the response. |  | 
| _tagged_fields | The tagged fields | 
DeleteTopics Request (Version: 1) => [topic_names] timeout_ms 
  topic_names => STRING
  timeout_ms => INT32
Request header version: 1
| Field | Description | 
|---|
| topic_names | The names of the topics to delete. | 
| timeout_ms | The length of time in milliseconds to wait for the deletions to complete. | 
DeleteTopics Request (Version: 2) => [topic_names] timeout_ms 
  topic_names => STRING
  timeout_ms => INT32
Request header version: 1
| Field | Description | 
|---|
| topic_names | The names of the topics to delete. | 
| timeout_ms | The length of time in milliseconds to wait for the deletions to complete. | 
DeleteTopics Request (Version: 3) => [topic_names] timeout_ms 
  topic_names => STRING
  timeout_ms => INT32
Request header version: 1
| Field | Description | 
|---|
| topic_names | The names of the topics to delete. | 
| timeout_ms | The length of time in milliseconds to wait for the deletions to complete. | 
DeleteTopics Request (Version: 4) => [topic_names] timeout_ms _tagged_fields 
  topic_names => COMPACT_STRING
  timeout_ms => INT32
Request header version: 2
| Field | Description | 
|---|
| topic_names | The names of the topics to delete. | 
| timeout_ms | The length of time in milliseconds to wait for the deletions to complete. | 
| _tagged_fields | The tagged fields | 
DeleteTopics Request (Version: 5) => [topic_names] timeout_ms _tagged_fields 
  topic_names => COMPACT_STRING
  timeout_ms => INT32
Request header version: 2
| Field | Description | 
|---|
| topic_names | The names of the topics to delete. | 
| timeout_ms | The length of time in milliseconds to wait for the deletions to complete. | 
| _tagged_fields | The tagged fields | 
DeleteTopics Request (Version: 6) => [topics] timeout_ms _tagged_fields 
  topics => name topic_id _tagged_fields 
    name => COMPACT_NULLABLE_STRING
    topic_id => UUID
  timeout_ms => INT32
Request header version: 2
| Field | Description | 
|---|
| topics | The name or topic ID of the topic. | 
| name | The topic name. | 
| topic_id | The unique topic ID. | 
| _tagged_fields | The tagged fields | 
| timeout_ms | The length of time in milliseconds to wait for the deletions to complete. | 
| _tagged_fields | The tagged fields | 
DeleteTopics Response (Version: 1) => throttle_time_ms [responses] 
  throttle_time_ms => INT32
  responses => name error_code 
    name => STRING
    error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| responses | The results for each topic we tried to delete. | 
| name | The topic name. | 
| error_code | The deletion error, or 0 if the deletion succeeded. | 
DeleteTopics Response (Version: 2) => throttle_time_ms [responses] 
  throttle_time_ms => INT32
  responses => name error_code 
    name => STRING
    error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| responses | The results for each topic we tried to delete. | 
| name | The topic name. | 
| error_code | The deletion error, or 0 if the deletion succeeded. | 
DeleteTopics Response (Version: 3) => throttle_time_ms [responses] 
  throttle_time_ms => INT32
  responses => name error_code 
    name => STRING
    error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| responses | The results for each topic we tried to delete. | 
| name | The topic name. | 
| error_code | The deletion error, or 0 if the deletion succeeded. | 
DeleteTopics Response (Version: 4) => throttle_time_ms [responses] _tagged_fields 
  throttle_time_ms => INT32
  responses => name error_code _tagged_fields 
    name => COMPACT_STRING
    error_code => INT16
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| responses | The results for each topic we tried to delete. | 
| name | The topic name. | 
| error_code | The deletion error, or 0 if the deletion succeeded. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
DeleteTopics Response (Version: 5) => throttle_time_ms [responses] _tagged_fields 
  throttle_time_ms => INT32
  responses => name error_code error_message _tagged_fields 
    name => COMPACT_STRING
    error_code => INT16
    error_message => COMPACT_NULLABLE_STRING
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| responses | The results for each topic we tried to delete. | 
| name | The topic name. | 
| error_code | The deletion error, or 0 if the deletion succeeded. | 
| error_message | The error message, or null if there was no error. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
DeleteRecords Request (Version: 0) => [topics] timeout_ms 
  topics => name [partitions] 
    name => STRING
    partitions => partition_index offset 
      partition_index => INT32
      offset => INT64
  timeout_ms => INT32
Request header version: 1
| Field | Description | 
|---|
| topics | Each topic that we want to delete records from. | 
| name | The topic name. | 
| partitions | Each partition that we want to delete records from. | 
| partition_index | The partition index. | 
| offset | The deletion offset. | 
| timeout_ms | How long to wait for the deletion to complete, in milliseconds. | 
DeleteRecords Request (Version: 1) => [topics] timeout_ms 
  topics => name [partitions] 
    name => STRING
    partitions => partition_index offset 
      partition_index => INT32
      offset => INT64
  timeout_ms => INT32
Request header version: 1
| Field | Description | 
|---|
| topics | Each topic that we want to delete records from. | 
| name | The topic name. | 
| partitions | Each partition that we want to delete records from. | 
| partition_index | The partition index. | 
| offset | The deletion offset. | 
| timeout_ms | How long to wait for the deletion to complete, in milliseconds. | 
DeleteRecords Request (Version: 2) => [topics] timeout_ms _tagged_fields 
  topics => name [partitions] _tagged_fields 
    name => COMPACT_STRING
    partitions => partition_index offset _tagged_fields 
      partition_index => INT32
      offset => INT64
  timeout_ms => INT32
Request header version: 2
| Field | Description | 
|---|
| topics | Each topic that we want to delete records from. | 
| name | The topic name. | 
| partitions | Each partition that we want to delete records from. | 
| partition_index | The partition index. | 
| offset | The deletion offset. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| timeout_ms | How long to wait for the deletion to complete, in milliseconds. | 
| _tagged_fields | The tagged fields | 
DeleteRecords Response (Version: 0) => throttle_time_ms [topics] 
  throttle_time_ms => INT32
  topics => name [partitions] 
    name => STRING
    partitions => partition_index low_watermark error_code 
      partition_index => INT32
      low_watermark => INT64
      error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | Each topic that we wanted to delete records from. | 
| name | The topic name. | 
| partitions | Each partition that we wanted to delete records from. | 
| partition_index | The partition index. | 
| low_watermark | The partition low water mark. | 
| error_code | The deletion error code, or 0 if the deletion succeeded. | 
DeleteRecords Response (Version: 1) => throttle_time_ms [topics] 
  throttle_time_ms => INT32
  topics => name [partitions] 
    name => STRING
    partitions => partition_index low_watermark error_code 
      partition_index => INT32
      low_watermark => INT64
      error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | Each topic that we wanted to delete records from. | 
| name | The topic name. | 
| partitions | Each partition that we wanted to delete records from. | 
| partition_index | The partition index. | 
| low_watermark | The partition low water mark. | 
| error_code | The deletion error code, or 0 if the deletion succeeded. | 
InitProducerId Request (Version: 0) => transactional_id transaction_timeout_ms 
  transactional_id => NULLABLE_STRING
  transaction_timeout_ms => INT32
Request header version: 1
| Field | Description | 
|---|
| transactional_id | The transactional id, or null if the producer is not transactional. | 
| transaction_timeout_ms | The time in ms to wait before aborting idle transactions sent by this producer. This is only relevant if a TransactionalId has been defined. | 
InitProducerId Request (Version: 1) => transactional_id transaction_timeout_ms 
  transactional_id => NULLABLE_STRING
  transaction_timeout_ms => INT32
Request header version: 1
| Field | Description | 
|---|
| transactional_id | The transactional id, or null if the producer is not transactional. | 
| transaction_timeout_ms | The time in ms to wait before aborting idle transactions sent by this producer. This is only relevant if a TransactionalId has been defined. | 
InitProducerId Request (Version: 2) => transactional_id transaction_timeout_ms _tagged_fields 
  transactional_id => COMPACT_NULLABLE_STRING
  transaction_timeout_ms => INT32
Request header version: 2
| Field | Description | 
|---|
| transactional_id | The transactional id, or null if the producer is not transactional. | 
| transaction_timeout_ms | The time in ms to wait before aborting idle transactions sent by this producer. This is only relevant if a TransactionalId has been defined. | 
| _tagged_fields | The tagged fields | 
InitProducerId Request (Version: 3) => transactional_id transaction_timeout_ms producer_id producer_epoch _tagged_fields 
  transactional_id => COMPACT_NULLABLE_STRING
  transaction_timeout_ms => INT32
  producer_id => INT64
  producer_epoch => INT16
Request header version: 2
| Field | Description | 
|---|
| transactional_id | The transactional id, or null if the producer is not transactional. | 
| transaction_timeout_ms | The time in ms to wait before aborting idle transactions sent by this producer. This is only relevant if a TransactionalId has been defined. | 
| producer_id | The producer id. This is used to disambiguate requests if a transactional id is reused following its expiration. | 
| producer_epoch | The producer's current epoch. This will be checked against the producer epoch on the broker, and the request will return an error if they do not match. | 
| _tagged_fields | The tagged fields | 
InitProducerId Request (Version: 4) => transactional_id transaction_timeout_ms producer_id producer_epoch _tagged_fields 
  transactional_id => COMPACT_NULLABLE_STRING
  transaction_timeout_ms => INT32
  producer_id => INT64
  producer_epoch => INT16
Request header version: 2
| Field | Description | 
|---|
| transactional_id | The transactional id, or null if the producer is not transactional. | 
| transaction_timeout_ms | The time in ms to wait before aborting idle transactions sent by this producer. This is only relevant if a TransactionalId has been defined. | 
| producer_id | The producer id. This is used to disambiguate requests if a transactional id is reused following its expiration. | 
| producer_epoch | The producer's current epoch. This will be checked against the producer epoch on the broker, and the request will return an error if they do not match. | 
| _tagged_fields | The tagged fields | 
InitProducerId Request (Version: 5) => transactional_id transaction_timeout_ms producer_id producer_epoch _tagged_fields 
  transactional_id => COMPACT_NULLABLE_STRING
  transaction_timeout_ms => INT32
  producer_id => INT64
  producer_epoch => INT16
Request header version: 2
| Field | Description | 
|---|
| transactional_id | The transactional id, or null if the producer is not transactional. | 
| transaction_timeout_ms | The time in ms to wait before aborting idle transactions sent by this producer. This is only relevant if a TransactionalId has been defined. | 
| producer_id | The producer id. This is used to disambiguate requests if a transactional id is reused following its expiration. | 
| producer_epoch | The producer's current epoch. This will be checked against the producer epoch on the broker, and the request will return an error if they do not match. | 
| _tagged_fields | The tagged fields | 
InitProducerId Response (Version: 0) => throttle_time_ms error_code producer_id producer_epoch 
  throttle_time_ms => INT32
  error_code => INT16
  producer_id => INT64
  producer_epoch => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| producer_id | The current producer id. | 
| producer_epoch | The current epoch associated with the producer id. | 
InitProducerId Response (Version: 1) => throttle_time_ms error_code producer_id producer_epoch 
  throttle_time_ms => INT32
  error_code => INT16
  producer_id => INT64
  producer_epoch => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| producer_id | The current producer id. | 
| producer_epoch | The current epoch associated with the producer id. | 
InitProducerId Response (Version: 2) => throttle_time_ms error_code producer_id producer_epoch _tagged_fields 
  throttle_time_ms => INT32
  error_code => INT16
  producer_id => INT64
  producer_epoch => INT16
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| producer_id | The current producer id. | 
| producer_epoch | The current epoch associated with the producer id. | 
| _tagged_fields | The tagged fields | 
InitProducerId Response (Version: 3) => throttle_time_ms error_code producer_id producer_epoch _tagged_fields 
  throttle_time_ms => INT32
  error_code => INT16
  producer_id => INT64
  producer_epoch => INT16
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| producer_id | The current producer id. | 
| producer_epoch | The current epoch associated with the producer id. | 
| _tagged_fields | The tagged fields | 
InitProducerId Response (Version: 4) => throttle_time_ms error_code producer_id producer_epoch _tagged_fields 
  throttle_time_ms => INT32
  error_code => INT16
  producer_id => INT64
  producer_epoch => INT16
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| producer_id | The current producer id. | 
| producer_epoch | The current epoch associated with the producer id. | 
| _tagged_fields | The tagged fields | 
OffsetForLeaderEpoch Request (Version: 2) => [topics] 
  topics => topic [partitions] 
    topic => STRING
    partitions => partition current_leader_epoch leader_epoch 
      partition => INT32
      current_leader_epoch => INT32
      leader_epoch => INT32
Request header version: 1
| Field | Description | 
|---|
| topics | Each topic to get offsets for. | 
| topic | The topic name. | 
| partitions | Each partition to get offsets for. | 
| partition | The partition index. | 
| current_leader_epoch | An epoch used to fence consumers/replicas with old metadata. If the epoch provided by the client is larger than the current epoch known to the broker, then the UNKNOWN_LEADER_EPOCH error code will be returned. If the provided epoch is smaller, then the FENCED_LEADER_EPOCH error code will be returned. | 
| leader_epoch | The epoch to look up an offset for. | 
OffsetForLeaderEpoch Request (Version: 3) => replica_id [topics] 
  replica_id => INT32
  topics => topic [partitions] 
    topic => STRING
    partitions => partition current_leader_epoch leader_epoch 
      partition => INT32
      current_leader_epoch => INT32
      leader_epoch => INT32
Request header version: 1
| Field | Description | 
|---|
| replica_id | The broker ID of the follower, of -1 if this request is from a consumer. | 
| topics | Each topic to get offsets for. | 
| topic | The topic name. | 
| partitions | Each partition to get offsets for. | 
| partition | The partition index. | 
| current_leader_epoch | An epoch used to fence consumers/replicas with old metadata. If the epoch provided by the client is larger than the current epoch known to the broker, then the UNKNOWN_LEADER_EPOCH error code will be returned. If the provided epoch is smaller, then the FENCED_LEADER_EPOCH error code will be returned. | 
| leader_epoch | The epoch to look up an offset for. | 
OffsetForLeaderEpoch Request (Version: 4) => replica_id [topics] _tagged_fields 
  replica_id => INT32
  topics => topic [partitions] _tagged_fields 
    topic => COMPACT_STRING
    partitions => partition current_leader_epoch leader_epoch _tagged_fields 
      partition => INT32
      current_leader_epoch => INT32
      leader_epoch => INT32
Request header version: 2
| Field | Description | 
|---|
| replica_id | The broker ID of the follower, of -1 if this request is from a consumer. | 
| topics | Each topic to get offsets for. | 
| topic | The topic name. | 
| partitions | Each partition to get offsets for. | 
| partition | The partition index. | 
| current_leader_epoch | An epoch used to fence consumers/replicas with old metadata. If the epoch provided by the client is larger than the current epoch known to the broker, then the UNKNOWN_LEADER_EPOCH error code will be returned. If the provided epoch is smaller, then the FENCED_LEADER_EPOCH error code will be returned. | 
| leader_epoch | The epoch to look up an offset for. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
OffsetForLeaderEpoch Response (Version: 2) => throttle_time_ms [topics] 
  throttle_time_ms => INT32
  topics => topic [partitions] 
    topic => STRING
    partitions => error_code partition leader_epoch end_offset 
      error_code => INT16
      partition => INT32
      leader_epoch => INT32
      end_offset => INT64
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | Each topic we fetched offsets for. | 
| topic | The topic name. | 
| partitions | Each partition in the topic we fetched offsets for. | 
| error_code | The error code 0, or if there was no error. | 
| partition | The partition index. | 
| leader_epoch | The leader epoch of the partition. | 
| end_offset | The end offset of the epoch. | 
OffsetForLeaderEpoch Response (Version: 3) => throttle_time_ms [topics] 
  throttle_time_ms => INT32
  topics => topic [partitions] 
    topic => STRING
    partitions => error_code partition leader_epoch end_offset 
      error_code => INT16
      partition => INT32
      leader_epoch => INT32
      end_offset => INT64
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | Each topic we fetched offsets for. | 
| topic | The topic name. | 
| partitions | Each partition in the topic we fetched offsets for. | 
| error_code | The error code 0, or if there was no error. | 
| partition | The partition index. | 
| leader_epoch | The leader epoch of the partition. | 
| end_offset | The end offset of the epoch. | 
AddPartitionsToTxn Request (Version: 0) => v3_and_below_transactional_id v3_and_below_producer_id v3_and_below_producer_epoch [v3_and_below_topics] 
  v3_and_below_transactional_id => STRING
  v3_and_below_producer_id => INT64
  v3_and_below_producer_epoch => INT16
  v3_and_below_topics => name [partitions] 
    name => STRING
    partitions => INT32
Request header version: 1
| Field | Description | 
|---|
| v3_and_below_transactional_id | The transactional id corresponding to the transaction. | 
| v3_and_below_producer_id | Current producer id in use by the transactional id. | 
| v3_and_below_producer_epoch | Current epoch associated with the producer id. | 
| v3_and_below_topics | The partitions to add to the transaction. | 
| name | The name of the topic. | 
| partitions | The partition indexes to add to the transaction. | 
AddPartitionsToTxn Request (Version: 1) => v3_and_below_transactional_id v3_and_below_producer_id v3_and_below_producer_epoch [v3_and_below_topics] 
  v3_and_below_transactional_id => STRING
  v3_and_below_producer_id => INT64
  v3_and_below_producer_epoch => INT16
  v3_and_below_topics => name [partitions] 
    name => STRING
    partitions => INT32
Request header version: 1
| Field | Description | 
|---|
| v3_and_below_transactional_id | The transactional id corresponding to the transaction. | 
| v3_and_below_producer_id | Current producer id in use by the transactional id. | 
| v3_and_below_producer_epoch | Current epoch associated with the producer id. | 
| v3_and_below_topics | The partitions to add to the transaction. | 
| name | The name of the topic. | 
| partitions | The partition indexes to add to the transaction. | 
AddPartitionsToTxn Request (Version: 2) => v3_and_below_transactional_id v3_and_below_producer_id v3_and_below_producer_epoch [v3_and_below_topics] 
  v3_and_below_transactional_id => STRING
  v3_and_below_producer_id => INT64
  v3_and_below_producer_epoch => INT16
  v3_and_below_topics => name [partitions] 
    name => STRING
    partitions => INT32
Request header version: 1
| Field | Description | 
|---|
| v3_and_below_transactional_id | The transactional id corresponding to the transaction. | 
| v3_and_below_producer_id | Current producer id in use by the transactional id. | 
| v3_and_below_producer_epoch | Current epoch associated with the producer id. | 
| v3_and_below_topics | The partitions to add to the transaction. | 
| name | The name of the topic. | 
| partitions | The partition indexes to add to the transaction. | 
AddPartitionsToTxn Request (Version: 3) => v3_and_below_transactional_id v3_and_below_producer_id v3_and_below_producer_epoch [v3_and_below_topics] _tagged_fields 
  v3_and_below_transactional_id => COMPACT_STRING
  v3_and_below_producer_id => INT64
  v3_and_below_producer_epoch => INT16
  v3_and_below_topics => name [partitions] _tagged_fields 
    name => COMPACT_STRING
    partitions => INT32
Request header version: 2
| Field | Description | 
|---|
| v3_and_below_transactional_id | The transactional id corresponding to the transaction. | 
| v3_and_below_producer_id | Current producer id in use by the transactional id. | 
| v3_and_below_producer_epoch | Current epoch associated with the producer id. | 
| v3_and_below_topics | The partitions to add to the transaction. | 
| name | The name of the topic. | 
| partitions | The partition indexes to add to the transaction. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
AddPartitionsToTxn Request (Version: 4) => [transactions] _tagged_fields 
  transactions => transactional_id producer_id producer_epoch verify_only [topics] _tagged_fields 
    transactional_id => COMPACT_STRING
    producer_id => INT64
    producer_epoch => INT16
    verify_only => BOOLEAN
    topics => name [partitions] _tagged_fields 
      name => COMPACT_STRING
      partitions => INT32
Request header version: 2
| Field | Description | 
|---|
| transactions | List of transactions to add partitions to. | 
| transactional_id | The transactional id corresponding to the transaction. | 
| producer_id | Current producer id in use by the transactional id. | 
| producer_epoch | Current epoch associated with the producer id. | 
| verify_only | Boolean to signify if we want to check if the partition is in the transaction rather than add it. | 
| topics | The partitions to add to the transaction. | 
| name | The name of the topic. | 
| partitions | The partition indexes to add to the transaction. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
AddPartitionsToTxn Request (Version: 5) => [transactions] _tagged_fields 
  transactions => transactional_id producer_id producer_epoch verify_only [topics] _tagged_fields 
    transactional_id => COMPACT_STRING
    producer_id => INT64
    producer_epoch => INT16
    verify_only => BOOLEAN
    topics => name [partitions] _tagged_fields 
      name => COMPACT_STRING
      partitions => INT32
Request header version: 2
| Field | Description | 
|---|
| transactions | List of transactions to add partitions to. | 
| transactional_id | The transactional id corresponding to the transaction. | 
| producer_id | Current producer id in use by the transactional id. | 
| producer_epoch | Current epoch associated with the producer id. | 
| verify_only | Boolean to signify if we want to check if the partition is in the transaction rather than add it. | 
| topics | The partitions to add to the transaction. | 
| name | The name of the topic. | 
| partitions | The partition indexes to add to the transaction. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
AddPartitionsToTxn Response (Version: 0) => throttle_time_ms [results_by_topic_v3_and_below] 
  throttle_time_ms => INT32
  results_by_topic_v3_and_below => name [results_by_partition] 
    name => STRING
    results_by_partition => partition_index partition_error_code 
      partition_index => INT32
      partition_error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | Duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| results_by_topic_v3_and_below | The results for each topic. | 
| name | The topic name. | 
| results_by_partition | The results for each partition. | 
| partition_index | The partition indexes. | 
| partition_error_code | The response error code. | 
AddPartitionsToTxn Response (Version: 1) => throttle_time_ms [results_by_topic_v3_and_below] 
  throttle_time_ms => INT32
  results_by_topic_v3_and_below => name [results_by_partition] 
    name => STRING
    results_by_partition => partition_index partition_error_code 
      partition_index => INT32
      partition_error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | Duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| results_by_topic_v3_and_below | The results for each topic. | 
| name | The topic name. | 
| results_by_partition | The results for each partition. | 
| partition_index | The partition indexes. | 
| partition_error_code | The response error code. | 
AddPartitionsToTxn Response (Version: 2) => throttle_time_ms [results_by_topic_v3_and_below] 
  throttle_time_ms => INT32
  results_by_topic_v3_and_below => name [results_by_partition] 
    name => STRING
    results_by_partition => partition_index partition_error_code 
      partition_index => INT32
      partition_error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | Duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| results_by_topic_v3_and_below | The results for each topic. | 
| name | The topic name. | 
| results_by_partition | The results for each partition. | 
| partition_index | The partition indexes. | 
| partition_error_code | The response error code. | 
AddPartitionsToTxn Response (Version: 3) => throttle_time_ms [results_by_topic_v3_and_below] _tagged_fields 
  throttle_time_ms => INT32
  results_by_topic_v3_and_below => name [results_by_partition] _tagged_fields 
    name => COMPACT_STRING
    results_by_partition => partition_index partition_error_code _tagged_fields 
      partition_index => INT32
      partition_error_code => INT16
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | Duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| results_by_topic_v3_and_below | The results for each topic. | 
| name | The topic name. | 
| results_by_partition | The results for each partition. | 
| partition_index | The partition indexes. | 
| partition_error_code | The response error code. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
AddPartitionsToTxn Response (Version: 4) => throttle_time_ms error_code [results_by_transaction] _tagged_fields 
  throttle_time_ms => INT32
  error_code => INT16
  results_by_transaction => transactional_id [topic_results] _tagged_fields 
    transactional_id => COMPACT_STRING
    topic_results => name [results_by_partition] _tagged_fields 
      name => COMPACT_STRING
      results_by_partition => partition_index partition_error_code _tagged_fields 
        partition_index => INT32
        partition_error_code => INT16
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | Duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The response top level error code. | 
| results_by_transaction | Results categorized by transactional ID. | 
| transactional_id | The transactional id corresponding to the transaction. | 
| topic_results | The results for each topic. | 
| name | The topic name. | 
| results_by_partition | The results for each partition. | 
| partition_index | The partition indexes. | 
| partition_error_code | The response error code. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
AddOffsetsToTxn Request (Version: 0) => transactional_id producer_id producer_epoch group_id 
  transactional_id => STRING
  producer_id => INT64
  producer_epoch => INT16
  group_id => STRING
Request header version: 1
| Field | Description | 
|---|
| transactional_id | The transactional id corresponding to the transaction. | 
| producer_id | Current producer id in use by the transactional id. | 
| producer_epoch | Current epoch associated with the producer id. | 
| group_id | The unique group identifier. | 
AddOffsetsToTxn Request (Version: 1) => transactional_id producer_id producer_epoch group_id 
  transactional_id => STRING
  producer_id => INT64
  producer_epoch => INT16
  group_id => STRING
Request header version: 1
| Field | Description | 
|---|
| transactional_id | The transactional id corresponding to the transaction. | 
| producer_id | Current producer id in use by the transactional id. | 
| producer_epoch | Current epoch associated with the producer id. | 
| group_id | The unique group identifier. | 
AddOffsetsToTxn Request (Version: 2) => transactional_id producer_id producer_epoch group_id 
  transactional_id => STRING
  producer_id => INT64
  producer_epoch => INT16
  group_id => STRING
Request header version: 1
| Field | Description | 
|---|
| transactional_id | The transactional id corresponding to the transaction. | 
| producer_id | Current producer id in use by the transactional id. | 
| producer_epoch | Current epoch associated with the producer id. | 
| group_id | The unique group identifier. | 
AddOffsetsToTxn Request (Version: 3) => transactional_id producer_id producer_epoch group_id _tagged_fields 
  transactional_id => COMPACT_STRING
  producer_id => INT64
  producer_epoch => INT16
  group_id => COMPACT_STRING
Request header version: 2
| Field | Description | 
|---|
| transactional_id | The transactional id corresponding to the transaction. | 
| producer_id | Current producer id in use by the transactional id. | 
| producer_epoch | Current epoch associated with the producer id. | 
| group_id | The unique group identifier. | 
| _tagged_fields | The tagged fields | 
AddOffsetsToTxn Request (Version: 4) => transactional_id producer_id producer_epoch group_id _tagged_fields 
  transactional_id => COMPACT_STRING
  producer_id => INT64
  producer_epoch => INT16
  group_id => COMPACT_STRING
Request header version: 2
| Field | Description | 
|---|
| transactional_id | The transactional id corresponding to the transaction. | 
| producer_id | Current producer id in use by the transactional id. | 
| producer_epoch | Current epoch associated with the producer id. | 
| group_id | The unique group identifier. | 
| _tagged_fields | The tagged fields | 
AddOffsetsToTxn Response (Version: 0) => throttle_time_ms error_code 
  throttle_time_ms => INT32
  error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | Duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The response error code, or 0 if there was no error. | 
AddOffsetsToTxn Response (Version: 1) => throttle_time_ms error_code 
  throttle_time_ms => INT32
  error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | Duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The response error code, or 0 if there was no error. | 
AddOffsetsToTxn Response (Version: 2) => throttle_time_ms error_code 
  throttle_time_ms => INT32
  error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | Duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The response error code, or 0 if there was no error. | 
AddOffsetsToTxn Response (Version: 3) => throttle_time_ms error_code _tagged_fields 
  throttle_time_ms => INT32
  error_code => INT16
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | Duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The response error code, or 0 if there was no error. | 
| _tagged_fields | The tagged fields | 
EndTxn Request (Version: 0) => transactional_id producer_id producer_epoch committed 
  transactional_id => STRING
  producer_id => INT64
  producer_epoch => INT16
  committed => BOOLEAN
Request header version: 1
| Field | Description | 
|---|
| transactional_id | The ID of the transaction to end. | 
| producer_id | The producer ID. | 
| producer_epoch | The current epoch associated with the producer. | 
| committed | True if the transaction was committed, false if it was aborted. | 
EndTxn Request (Version: 1) => transactional_id producer_id producer_epoch committed 
  transactional_id => STRING
  producer_id => INT64
  producer_epoch => INT16
  committed => BOOLEAN
Request header version: 1
| Field | Description | 
|---|
| transactional_id | The ID of the transaction to end. | 
| producer_id | The producer ID. | 
| producer_epoch | The current epoch associated with the producer. | 
| committed | True if the transaction was committed, false if it was aborted. | 
EndTxn Request (Version: 2) => transactional_id producer_id producer_epoch committed 
  transactional_id => STRING
  producer_id => INT64
  producer_epoch => INT16
  committed => BOOLEAN
Request header version: 1
| Field | Description | 
|---|
| transactional_id | The ID of the transaction to end. | 
| producer_id | The producer ID. | 
| producer_epoch | The current epoch associated with the producer. | 
| committed | True if the transaction was committed, false if it was aborted. | 
EndTxn Request (Version: 3) => transactional_id producer_id producer_epoch committed _tagged_fields 
  transactional_id => COMPACT_STRING
  producer_id => INT64
  producer_epoch => INT16
  committed => BOOLEAN
Request header version: 2
| Field | Description | 
|---|
| transactional_id | The ID of the transaction to end. | 
| producer_id | The producer ID. | 
| producer_epoch | The current epoch associated with the producer. | 
| committed | True if the transaction was committed, false if it was aborted. | 
| _tagged_fields | The tagged fields | 
EndTxn Request (Version: 4) => transactional_id producer_id producer_epoch committed _tagged_fields 
  transactional_id => COMPACT_STRING
  producer_id => INT64
  producer_epoch => INT16
  committed => BOOLEAN
Request header version: 2
| Field | Description | 
|---|
| transactional_id | The ID of the transaction to end. | 
| producer_id | The producer ID. | 
| producer_epoch | The current epoch associated with the producer. | 
| committed | True if the transaction was committed, false if it was aborted. | 
| _tagged_fields | The tagged fields | 
EndTxn Request (Version: 5) => transactional_id producer_id producer_epoch committed _tagged_fields 
  transactional_id => COMPACT_STRING
  producer_id => INT64
  producer_epoch => INT16
  committed => BOOLEAN
Request header version: 2
| Field | Description | 
|---|
| transactional_id | The ID of the transaction to end. | 
| producer_id | The producer ID. | 
| producer_epoch | The current epoch associated with the producer. | 
| committed | True if the transaction was committed, false if it was aborted. | 
| _tagged_fields | The tagged fields | 
EndTxn Response (Version: 0) => throttle_time_ms error_code 
  throttle_time_ms => INT32
  error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
EndTxn Response (Version: 1) => throttle_time_ms error_code 
  throttle_time_ms => INT32
  error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
EndTxn Response (Version: 2) => throttle_time_ms error_code 
  throttle_time_ms => INT32
  error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
EndTxn Response (Version: 3) => throttle_time_ms error_code _tagged_fields 
  throttle_time_ms => INT32
  error_code => INT16
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| _tagged_fields | The tagged fields | 
EndTxn Response (Version: 4) => throttle_time_ms error_code _tagged_fields 
  throttle_time_ms => INT32
  error_code => INT16
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| _tagged_fields | The tagged fields | 
WriteTxnMarkers Request (Version: 1) => [markers] _tagged_fields 
  markers => producer_id producer_epoch transaction_result [topics] coordinator_epoch _tagged_fields 
    producer_id => INT64
    producer_epoch => INT16
    transaction_result => BOOLEAN
    topics => name [partition_indexes] _tagged_fields 
      name => COMPACT_STRING
      partition_indexes => INT32
    coordinator_epoch => INT32
Request header version: 2
| Field | Description | 
|---|
| markers | The transaction markers to be written. | 
| producer_id | The current producer ID. | 
| producer_epoch | The current epoch associated with the producer ID. | 
| transaction_result | The result of the transaction to write to the partitions (false = ABORT, true = COMMIT). | 
| topics | Each topic that we want to write transaction marker(s) for. | 
| name | The topic name. | 
| partition_indexes | The indexes of the partitions to write transaction markers for. | 
| _tagged_fields | The tagged fields | 
| coordinator_epoch | Epoch associated with the transaction state partition hosted by this transaction coordinator. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
Requests:
TxnOffsetCommit Request (Version: 0) => transactional_id group_id producer_id producer_epoch [topics] 
  transactional_id => STRING
  group_id => STRING
  producer_id => INT64
  producer_epoch => INT16
  topics => name [partitions] 
    name => STRING
    partitions => partition_index committed_offset committed_metadata 
      partition_index => INT32
      committed_offset => INT64
      committed_metadata => NULLABLE_STRING
Request header version: 1
| Field | Description | 
|---|
| transactional_id | The ID of the transaction. | 
| group_id | The ID of the group. | 
| producer_id | The current producer ID in use by the transactional ID. | 
| producer_epoch | The current epoch associated with the producer ID. | 
| topics | Each topic that we want to commit offsets for. | 
| name | The topic name. | 
| partitions | The partitions inside the topic that we want to commit offsets for. | 
| partition_index | The index of the partition within the topic. | 
| committed_offset | The message offset to be committed. | 
| committed_metadata | Any associated metadata the client wants to keep. | 
TxnOffsetCommit Request (Version: 1) => transactional_id group_id producer_id producer_epoch [topics] 
  transactional_id => STRING
  group_id => STRING
  producer_id => INT64
  producer_epoch => INT16
  topics => name [partitions] 
    name => STRING
    partitions => partition_index committed_offset committed_metadata 
      partition_index => INT32
      committed_offset => INT64
      committed_metadata => NULLABLE_STRING
Request header version: 1
| Field | Description | 
|---|
| transactional_id | The ID of the transaction. | 
| group_id | The ID of the group. | 
| producer_id | The current producer ID in use by the transactional ID. | 
| producer_epoch | The current epoch associated with the producer ID. | 
| topics | Each topic that we want to commit offsets for. | 
| name | The topic name. | 
| partitions | The partitions inside the topic that we want to commit offsets for. | 
| partition_index | The index of the partition within the topic. | 
| committed_offset | The message offset to be committed. | 
| committed_metadata | Any associated metadata the client wants to keep. | 
TxnOffsetCommit Request (Version: 2) => transactional_id group_id producer_id producer_epoch [topics] 
  transactional_id => STRING
  group_id => STRING
  producer_id => INT64
  producer_epoch => INT16
  topics => name [partitions] 
    name => STRING
    partitions => partition_index committed_offset committed_leader_epoch committed_metadata 
      partition_index => INT32
      committed_offset => INT64
      committed_leader_epoch => INT32
      committed_metadata => NULLABLE_STRING
Request header version: 1
| Field | Description | 
|---|
| transactional_id | The ID of the transaction. | 
| group_id | The ID of the group. | 
| producer_id | The current producer ID in use by the transactional ID. | 
| producer_epoch | The current epoch associated with the producer ID. | 
| topics | Each topic that we want to commit offsets for. | 
| name | The topic name. | 
| partitions | The partitions inside the topic that we want to commit offsets for. | 
| partition_index | The index of the partition within the topic. | 
| committed_offset | The message offset to be committed. | 
| committed_leader_epoch | The leader epoch of the last consumed record. | 
| committed_metadata | Any associated metadata the client wants to keep. | 
TxnOffsetCommit Request (Version: 3) => transactional_id group_id producer_id producer_epoch generation_id member_id group_instance_id [topics] _tagged_fields 
  transactional_id => COMPACT_STRING
  group_id => COMPACT_STRING
  producer_id => INT64
  producer_epoch => INT16
  generation_id => INT32
  member_id => COMPACT_STRING
  group_instance_id => COMPACT_NULLABLE_STRING
  topics => name [partitions] _tagged_fields 
    name => COMPACT_STRING
    partitions => partition_index committed_offset committed_leader_epoch committed_metadata _tagged_fields 
      partition_index => INT32
      committed_offset => INT64
      committed_leader_epoch => INT32
      committed_metadata => COMPACT_NULLABLE_STRING
Request header version: 2
| Field | Description | 
|---|
| transactional_id | The ID of the transaction. | 
| group_id | The ID of the group. | 
| producer_id | The current producer ID in use by the transactional ID. | 
| producer_epoch | The current epoch associated with the producer ID. | 
| generation_id | The generation of the consumer. | 
| member_id | The member ID assigned by the group coordinator. | 
| group_instance_id | The unique identifier of the consumer instance provided by end user. | 
| topics | Each topic that we want to commit offsets for. | 
| name | The topic name. | 
| partitions | The partitions inside the topic that we want to commit offsets for. | 
| partition_index | The index of the partition within the topic. | 
| committed_offset | The message offset to be committed. | 
| committed_leader_epoch | The leader epoch of the last consumed record. | 
| committed_metadata | Any associated metadata the client wants to keep. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
TxnOffsetCommit Request (Version: 4) => transactional_id group_id producer_id producer_epoch generation_id member_id group_instance_id [topics] _tagged_fields 
  transactional_id => COMPACT_STRING
  group_id => COMPACT_STRING
  producer_id => INT64
  producer_epoch => INT16
  generation_id => INT32
  member_id => COMPACT_STRING
  group_instance_id => COMPACT_NULLABLE_STRING
  topics => name [partitions] _tagged_fields 
    name => COMPACT_STRING
    partitions => partition_index committed_offset committed_leader_epoch committed_metadata _tagged_fields 
      partition_index => INT32
      committed_offset => INT64
      committed_leader_epoch => INT32
      committed_metadata => COMPACT_NULLABLE_STRING
Request header version: 2
| Field | Description | 
|---|
| transactional_id | The ID of the transaction. | 
| group_id | The ID of the group. | 
| producer_id | The current producer ID in use by the transactional ID. | 
| producer_epoch | The current epoch associated with the producer ID. | 
| generation_id | The generation of the consumer. | 
| member_id | The member ID assigned by the group coordinator. | 
| group_instance_id | The unique identifier of the consumer instance provided by end user. | 
| topics | Each topic that we want to commit offsets for. | 
| name | The topic name. | 
| partitions | The partitions inside the topic that we want to commit offsets for. | 
| partition_index | The index of the partition within the topic. | 
| committed_offset | The message offset to be committed. | 
| committed_leader_epoch | The leader epoch of the last consumed record. | 
| committed_metadata | Any associated metadata the client wants to keep. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
TxnOffsetCommit Request (Version: 5) => transactional_id group_id producer_id producer_epoch generation_id member_id group_instance_id [topics] _tagged_fields 
  transactional_id => COMPACT_STRING
  group_id => COMPACT_STRING
  producer_id => INT64
  producer_epoch => INT16
  generation_id => INT32
  member_id => COMPACT_STRING
  group_instance_id => COMPACT_NULLABLE_STRING
  topics => name [partitions] _tagged_fields 
    name => COMPACT_STRING
    partitions => partition_index committed_offset committed_leader_epoch committed_metadata _tagged_fields 
      partition_index => INT32
      committed_offset => INT64
      committed_leader_epoch => INT32
      committed_metadata => COMPACT_NULLABLE_STRING
Request header version: 2
| Field | Description | 
|---|
| transactional_id | The ID of the transaction. | 
| group_id | The ID of the group. | 
| producer_id | The current producer ID in use by the transactional ID. | 
| producer_epoch | The current epoch associated with the producer ID. | 
| generation_id | The generation of the consumer. | 
| member_id | The member ID assigned by the group coordinator. | 
| group_instance_id | The unique identifier of the consumer instance provided by end user. | 
| topics | Each topic that we want to commit offsets for. | 
| name | The topic name. | 
| partitions | The partitions inside the topic that we want to commit offsets for. | 
| partition_index | The index of the partition within the topic. | 
| committed_offset | The message offset to be committed. | 
| committed_leader_epoch | The leader epoch of the last consumed record. | 
| committed_metadata | Any associated metadata the client wants to keep. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
TxnOffsetCommit Response (Version: 0) => throttle_time_ms [topics] 
  throttle_time_ms => INT32
  topics => name [partitions] 
    name => STRING
    partitions => partition_index error_code 
      partition_index => INT32
      error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | The responses for each topic. | 
| name | The topic name. | 
| partitions | The responses for each partition in the topic. | 
| partition_index | The partition index. | 
| error_code | The error code, or 0 if there was no error. | 
TxnOffsetCommit Response (Version: 1) => throttle_time_ms [topics] 
  throttle_time_ms => INT32
  topics => name [partitions] 
    name => STRING
    partitions => partition_index error_code 
      partition_index => INT32
      error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | The responses for each topic. | 
| name | The topic name. | 
| partitions | The responses for each partition in the topic. | 
| partition_index | The partition index. | 
| error_code | The error code, or 0 if there was no error. | 
TxnOffsetCommit Response (Version: 2) => throttle_time_ms [topics] 
  throttle_time_ms => INT32
  topics => name [partitions] 
    name => STRING
    partitions => partition_index error_code 
      partition_index => INT32
      error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | The responses for each topic. | 
| name | The topic name. | 
| partitions | The responses for each partition in the topic. | 
| partition_index | The partition index. | 
| error_code | The error code, or 0 if there was no error. | 
TxnOffsetCommit Response (Version: 3) => throttle_time_ms [topics] _tagged_fields 
  throttle_time_ms => INT32
  topics => name [partitions] _tagged_fields 
    name => COMPACT_STRING
    partitions => partition_index error_code _tagged_fields 
      partition_index => INT32
      error_code => INT16
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | The responses for each topic. | 
| name | The topic name. | 
| partitions | The responses for each partition in the topic. | 
| partition_index | The partition index. | 
| error_code | The error code, or 0 if there was no error. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
TxnOffsetCommit Response (Version: 4) => throttle_time_ms [topics] _tagged_fields 
  throttle_time_ms => INT32
  topics => name [partitions] _tagged_fields 
    name => COMPACT_STRING
    partitions => partition_index error_code _tagged_fields 
      partition_index => INT32
      error_code => INT16
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| topics | The responses for each topic. | 
| name | The topic name. | 
| partitions | The responses for each partition in the topic. | 
| partition_index | The partition index. | 
| error_code | The error code, or 0 if there was no error. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
DescribeAcls Request (Version: 1) => resource_type_filter resource_name_filter pattern_type_filter principal_filter host_filter operation permission_type 
  resource_type_filter => INT8
  resource_name_filter => NULLABLE_STRING
  pattern_type_filter => INT8
  principal_filter => NULLABLE_STRING
  host_filter => NULLABLE_STRING
  operation => INT8
  permission_type => INT8
Request header version: 1
| Field | Description | 
|---|
| resource_type_filter | The resource type. | 
| resource_name_filter | The resource name, or null to match any resource name. | 
| pattern_type_filter | The resource pattern to match. | 
| principal_filter | The principal to match, or null to match any principal. | 
| host_filter | The host to match, or null to match any host. | 
| operation | The operation to match. | 
| permission_type | The permission type to match. | 
DescribeAcls Request (Version: 2) => resource_type_filter resource_name_filter pattern_type_filter principal_filter host_filter operation permission_type _tagged_fields 
  resource_type_filter => INT8
  resource_name_filter => COMPACT_NULLABLE_STRING
  pattern_type_filter => INT8
  principal_filter => COMPACT_NULLABLE_STRING
  host_filter => COMPACT_NULLABLE_STRING
  operation => INT8
  permission_type => INT8
Request header version: 2
| Field | Description | 
|---|
| resource_type_filter | The resource type. | 
| resource_name_filter | The resource name, or null to match any resource name. | 
| pattern_type_filter | The resource pattern to match. | 
| principal_filter | The principal to match, or null to match any principal. | 
| host_filter | The host to match, or null to match any host. | 
| operation | The operation to match. | 
| permission_type | The permission type to match. | 
| _tagged_fields | The tagged fields | 
DescribeAcls Request (Version: 3) => resource_type_filter resource_name_filter pattern_type_filter principal_filter host_filter operation permission_type _tagged_fields 
  resource_type_filter => INT8
  resource_name_filter => COMPACT_NULLABLE_STRING
  pattern_type_filter => INT8
  principal_filter => COMPACT_NULLABLE_STRING
  host_filter => COMPACT_NULLABLE_STRING
  operation => INT8
  permission_type => INT8
Request header version: 2
| Field | Description | 
|---|
| resource_type_filter | The resource type. | 
| resource_name_filter | The resource name, or null to match any resource name. | 
| pattern_type_filter | The resource pattern to match. | 
| principal_filter | The principal to match, or null to match any principal. | 
| host_filter | The host to match, or null to match any host. | 
| operation | The operation to match. | 
| permission_type | The permission type to match. | 
| _tagged_fields | The tagged fields | 
DescribeAcls Response (Version: 1) => throttle_time_ms error_code error_message [resources] 
  throttle_time_ms => INT32
  error_code => INT16
  error_message => NULLABLE_STRING
  resources => resource_type resource_name pattern_type [acls] 
    resource_type => INT8
    resource_name => STRING
    pattern_type => INT8
    acls => principal host operation permission_type 
      principal => STRING
      host => STRING
      operation => INT8
      permission_type => INT8
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| error_message | The error message, or null if there was no error. | 
| resources | Each Resource that is referenced in an ACL. | 
| resource_type | The resource type. | 
| resource_name | The resource name. | 
| pattern_type | The resource pattern type. | 
| acls | The ACLs. | 
| principal | The ACL principal. | 
| host | The ACL host. | 
| operation | The ACL operation. | 
| permission_type | The ACL permission type. | 
DescribeAcls Response (Version: 2) => throttle_time_ms error_code error_message [resources] _tagged_fields 
  throttle_time_ms => INT32
  error_code => INT16
  error_message => COMPACT_NULLABLE_STRING
  resources => resource_type resource_name pattern_type [acls] _tagged_fields 
    resource_type => INT8
    resource_name => COMPACT_STRING
    pattern_type => INT8
    acls => principal host operation permission_type _tagged_fields 
      principal => COMPACT_STRING
      host => COMPACT_STRING
      operation => INT8
      permission_type => INT8
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| error_message | The error message, or null if there was no error. | 
| resources | Each Resource that is referenced in an ACL. | 
| resource_type | The resource type. | 
| resource_name | The resource name. | 
| pattern_type | The resource pattern type. | 
| acls | The ACLs. | 
| principal | The ACL principal. | 
| host | The ACL host. | 
| operation | The ACL operation. | 
| permission_type | The ACL permission type. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
CreateAcls Request (Version: 1) => [creations] 
  creations => resource_type resource_name resource_pattern_type principal host operation permission_type 
    resource_type => INT8
    resource_name => STRING
    resource_pattern_type => INT8
    principal => STRING
    host => STRING
    operation => INT8
    permission_type => INT8
Request header version: 1
| Field | Description | 
|---|
| creations | The ACLs that we want to create. | 
| resource_type | The type of the resource. | 
| resource_name | The resource name for the ACL. | 
| resource_pattern_type | The pattern type for the ACL. | 
| principal | The principal for the ACL. | 
| host | The host for the ACL. | 
| operation | The operation type for the ACL (read, write, etc.). | 
| permission_type | The permission type for the ACL (allow, deny, etc.). | 
CreateAcls Request (Version: 2) => [creations] _tagged_fields 
  creations => resource_type resource_name resource_pattern_type principal host operation permission_type _tagged_fields 
    resource_type => INT8
    resource_name => COMPACT_STRING
    resource_pattern_type => INT8
    principal => COMPACT_STRING
    host => COMPACT_STRING
    operation => INT8
    permission_type => INT8
Request header version: 2
| Field | Description | 
|---|
| creations | The ACLs that we want to create. | 
| resource_type | The type of the resource. | 
| resource_name | The resource name for the ACL. | 
| resource_pattern_type | The pattern type for the ACL. | 
| principal | The principal for the ACL. | 
| host | The host for the ACL. | 
| operation | The operation type for the ACL (read, write, etc.). | 
| permission_type | The permission type for the ACL (allow, deny, etc.). | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
CreateAcls Request (Version: 3) => [creations] _tagged_fields 
  creations => resource_type resource_name resource_pattern_type principal host operation permission_type _tagged_fields 
    resource_type => INT8
    resource_name => COMPACT_STRING
    resource_pattern_type => INT8
    principal => COMPACT_STRING
    host => COMPACT_STRING
    operation => INT8
    permission_type => INT8
Request header version: 2
| Field | Description | 
|---|
| creations | The ACLs that we want to create. | 
| resource_type | The type of the resource. | 
| resource_name | The resource name for the ACL. | 
| resource_pattern_type | The pattern type for the ACL. | 
| principal | The principal for the ACL. | 
| host | The host for the ACL. | 
| operation | The operation type for the ACL (read, write, etc.). | 
| permission_type | The permission type for the ACL (allow, deny, etc.). | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
CreateAcls Response (Version: 1) => throttle_time_ms [results] 
  throttle_time_ms => INT32
  results => error_code error_message 
    error_code => INT16
    error_message => NULLABLE_STRING
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| results | The results for each ACL creation. | 
| error_code | The result error, or zero if there was no error. | 
| error_message | The result message, or null if there was no error. | 
CreateAcls Response (Version: 2) => throttle_time_ms [results] _tagged_fields 
  throttle_time_ms => INT32
  results => error_code error_message _tagged_fields 
    error_code => INT16
    error_message => COMPACT_NULLABLE_STRING
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| results | The results for each ACL creation. | 
| error_code | The result error, or zero if there was no error. | 
| error_message | The result message, or null if there was no error. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
DeleteAcls Request (Version: 1) => [filters] 
  filters => resource_type_filter resource_name_filter pattern_type_filter principal_filter host_filter operation permission_type 
    resource_type_filter => INT8
    resource_name_filter => NULLABLE_STRING
    pattern_type_filter => INT8
    principal_filter => NULLABLE_STRING
    host_filter => NULLABLE_STRING
    operation => INT8
    permission_type => INT8
Request header version: 1
| Field | Description | 
|---|
| filters | The filters to use when deleting ACLs. | 
| resource_type_filter | The resource type. | 
| resource_name_filter | The resource name. | 
| pattern_type_filter | The pattern type. | 
| principal_filter | The principal filter, or null to accept all principals. | 
| host_filter | The host filter, or null to accept all hosts. | 
| operation | The ACL operation. | 
| permission_type | The permission type. | 
DeleteAcls Request (Version: 2) => [filters] _tagged_fields 
  filters => resource_type_filter resource_name_filter pattern_type_filter principal_filter host_filter operation permission_type _tagged_fields 
    resource_type_filter => INT8
    resource_name_filter => COMPACT_NULLABLE_STRING
    pattern_type_filter => INT8
    principal_filter => COMPACT_NULLABLE_STRING
    host_filter => COMPACT_NULLABLE_STRING
    operation => INT8
    permission_type => INT8
Request header version: 2
| Field | Description | 
|---|
| filters | The filters to use when deleting ACLs. | 
| resource_type_filter | The resource type. | 
| resource_name_filter | The resource name. | 
| pattern_type_filter | The pattern type. | 
| principal_filter | The principal filter, or null to accept all principals. | 
| host_filter | The host filter, or null to accept all hosts. | 
| operation | The ACL operation. | 
| permission_type | The permission type. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
DeleteAcls Request (Version: 3) => [filters] _tagged_fields 
  filters => resource_type_filter resource_name_filter pattern_type_filter principal_filter host_filter operation permission_type _tagged_fields 
    resource_type_filter => INT8
    resource_name_filter => COMPACT_NULLABLE_STRING
    pattern_type_filter => INT8
    principal_filter => COMPACT_NULLABLE_STRING
    host_filter => COMPACT_NULLABLE_STRING
    operation => INT8
    permission_type => INT8
Request header version: 2
| Field | Description | 
|---|
| filters | The filters to use when deleting ACLs. | 
| resource_type_filter | The resource type. | 
| resource_name_filter | The resource name. | 
| pattern_type_filter | The pattern type. | 
| principal_filter | The principal filter, or null to accept all principals. | 
| host_filter | The host filter, or null to accept all hosts. | 
| operation | The ACL operation. | 
| permission_type | The permission type. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
DeleteAcls Response (Version: 1) => throttle_time_ms [filter_results] 
  throttle_time_ms => INT32
  filter_results => error_code error_message [matching_acls] 
    error_code => INT16
    error_message => NULLABLE_STRING
    matching_acls => error_code error_message resource_type resource_name pattern_type principal host operation permission_type 
      error_code => INT16
      error_message => NULLABLE_STRING
      resource_type => INT8
      resource_name => STRING
      pattern_type => INT8
      principal => STRING
      host => STRING
      operation => INT8
      permission_type => INT8
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| filter_results | The results for each filter. | 
| error_code | The error code, or 0 if the filter succeeded. | 
| error_message | The error message, or null if the filter succeeded. | 
| matching_acls | The ACLs which matched this filter. | 
| error_code | The deletion error code, or 0 if the deletion succeeded. | 
| error_message | The deletion error message, or null if the deletion succeeded. | 
| resource_type | The ACL resource type. | 
| resource_name | The ACL resource name. | 
| pattern_type | The ACL resource pattern type. | 
| principal | The ACL principal. | 
| host | The ACL host. | 
| operation | The ACL operation. | 
| permission_type | The ACL permission type. | 
DeleteAcls Response (Version: 2) => throttle_time_ms [filter_results] _tagged_fields 
  throttle_time_ms => INT32
  filter_results => error_code error_message [matching_acls] _tagged_fields 
    error_code => INT16
    error_message => COMPACT_NULLABLE_STRING
    matching_acls => error_code error_message resource_type resource_name pattern_type principal host operation permission_type _tagged_fields 
      error_code => INT16
      error_message => COMPACT_NULLABLE_STRING
      resource_type => INT8
      resource_name => COMPACT_STRING
      pattern_type => INT8
      principal => COMPACT_STRING
      host => COMPACT_STRING
      operation => INT8
      permission_type => INT8
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| filter_results | The results for each filter. | 
| error_code | The error code, or 0 if the filter succeeded. | 
| error_message | The error message, or null if the filter succeeded. | 
| matching_acls | The ACLs which matched this filter. | 
| error_code | The deletion error code, or 0 if the deletion succeeded. | 
| error_message | The deletion error message, or null if the deletion succeeded. | 
| resource_type | The ACL resource type. | 
| resource_name | The ACL resource name. | 
| pattern_type | The ACL resource pattern type. | 
| principal | The ACL principal. | 
| host | The ACL host. | 
| operation | The ACL operation. | 
| permission_type | The ACL permission type. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
DescribeConfigs Request (Version: 1) => [resources] include_synonyms 
  resources => resource_type resource_name [configuration_keys] 
    resource_type => INT8
    resource_name => STRING
    configuration_keys => STRING
  include_synonyms => BOOLEAN
Request header version: 1
| Field | Description | 
|---|
| resources | The resources whose configurations we want to describe. | 
| resource_type | The resource type. | 
| resource_name | The resource name. | 
| configuration_keys | The configuration keys to list, or null to list all configuration keys. | 
| include_synonyms | True if we should include all synonyms. | 
DescribeConfigs Request (Version: 2) => [resources] include_synonyms 
  resources => resource_type resource_name [configuration_keys] 
    resource_type => INT8
    resource_name => STRING
    configuration_keys => STRING
  include_synonyms => BOOLEAN
Request header version: 1
| Field | Description | 
|---|
| resources | The resources whose configurations we want to describe. | 
| resource_type | The resource type. | 
| resource_name | The resource name. | 
| configuration_keys | The configuration keys to list, or null to list all configuration keys. | 
| include_synonyms | True if we should include all synonyms. | 
DescribeConfigs Request (Version: 3) => [resources] include_synonyms include_documentation 
  resources => resource_type resource_name [configuration_keys] 
    resource_type => INT8
    resource_name => STRING
    configuration_keys => STRING
  include_synonyms => BOOLEAN
  include_documentation => BOOLEAN
Request header version: 1
| Field | Description | 
|---|
| resources | The resources whose configurations we want to describe. | 
| resource_type | The resource type. | 
| resource_name | The resource name. | 
| configuration_keys | The configuration keys to list, or null to list all configuration keys. | 
| include_synonyms | True if we should include all synonyms. | 
| include_documentation | True if we should include configuration documentation. | 
DescribeConfigs Request (Version: 4) => [resources] include_synonyms include_documentation _tagged_fields 
  resources => resource_type resource_name [configuration_keys] _tagged_fields 
    resource_type => INT8
    resource_name => COMPACT_STRING
    configuration_keys => COMPACT_STRING
  include_synonyms => BOOLEAN
  include_documentation => BOOLEAN
Request header version: 2
| Field | Description | 
|---|
| resources | The resources whose configurations we want to describe. | 
| resource_type | The resource type. | 
| resource_name | The resource name. | 
| configuration_keys | The configuration keys to list, or null to list all configuration keys. | 
| _tagged_fields | The tagged fields | 
| include_synonyms | True if we should include all synonyms. | 
| include_documentation | True if we should include configuration documentation. | 
| _tagged_fields | The tagged fields | 
DescribeConfigs Response (Version: 1) => throttle_time_ms [results] 
  throttle_time_ms => INT32
  results => error_code error_message resource_type resource_name [configs] 
    error_code => INT16
    error_message => NULLABLE_STRING
    resource_type => INT8
    resource_name => STRING
    configs => name value read_only config_source is_sensitive [synonyms] 
      name => STRING
      value => NULLABLE_STRING
      read_only => BOOLEAN
      config_source => INT8
      is_sensitive => BOOLEAN
      synonyms => name value source 
        name => STRING
        value => NULLABLE_STRING
        source => INT8
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| results | The results for each resource. | 
| error_code | The error code, or 0 if we were able to successfully describe the configurations. | 
| error_message | The error message, or null if we were able to successfully describe the configurations. | 
| resource_type | The resource type. | 
| resource_name | The resource name. | 
| configs | Each listed configuration. | 
| name | The configuration name. | 
| value | The configuration value. | 
| read_only | True if the configuration is read-only. | 
| config_source | The configuration source. | 
| is_sensitive | True if this configuration is sensitive. | 
| synonyms | The synonyms for this configuration key. | 
| name | The synonym name. | 
| value | The synonym value. | 
| source | The synonym source. | 
DescribeConfigs Response (Version: 2) => throttle_time_ms [results] 
  throttle_time_ms => INT32
  results => error_code error_message resource_type resource_name [configs] 
    error_code => INT16
    error_message => NULLABLE_STRING
    resource_type => INT8
    resource_name => STRING
    configs => name value read_only config_source is_sensitive [synonyms] 
      name => STRING
      value => NULLABLE_STRING
      read_only => BOOLEAN
      config_source => INT8
      is_sensitive => BOOLEAN
      synonyms => name value source 
        name => STRING
        value => NULLABLE_STRING
        source => INT8
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| results | The results for each resource. | 
| error_code | The error code, or 0 if we were able to successfully describe the configurations. | 
| error_message | The error message, or null if we were able to successfully describe the configurations. | 
| resource_type | The resource type. | 
| resource_name | The resource name. | 
| configs | Each listed configuration. | 
| name | The configuration name. | 
| value | The configuration value. | 
| read_only | True if the configuration is read-only. | 
| config_source | The configuration source. | 
| is_sensitive | True if this configuration is sensitive. | 
| synonyms | The synonyms for this configuration key. | 
| name | The synonym name. | 
| value | The synonym value. | 
| source | The synonym source. | 
DescribeConfigs Response (Version: 3) => throttle_time_ms [results] 
  throttle_time_ms => INT32
  results => error_code error_message resource_type resource_name [configs] 
    error_code => INT16
    error_message => NULLABLE_STRING
    resource_type => INT8
    resource_name => STRING
    configs => name value read_only config_source is_sensitive [synonyms] config_type documentation 
      name => STRING
      value => NULLABLE_STRING
      read_only => BOOLEAN
      config_source => INT8
      is_sensitive => BOOLEAN
      synonyms => name value source 
        name => STRING
        value => NULLABLE_STRING
        source => INT8
      config_type => INT8
      documentation => NULLABLE_STRING
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| results | The results for each resource. | 
| error_code | The error code, or 0 if we were able to successfully describe the configurations. | 
| error_message | The error message, or null if we were able to successfully describe the configurations. | 
| resource_type | The resource type. | 
| resource_name | The resource name. | 
| configs | Each listed configuration. | 
| name | The configuration name. | 
| value | The configuration value. | 
| read_only | True if the configuration is read-only. | 
| config_source | The configuration source. | 
| is_sensitive | True if this configuration is sensitive. | 
| synonyms | The synonyms for this configuration key. | 
| name | The synonym name. | 
| value | The synonym value. | 
| source | The synonym source. | 
| config_type | The configuration data type. Type can be one of the following values - BOOLEAN, STRING, INT, SHORT, LONG, DOUBLE, LIST, CLASS, PASSWORD. | 
| documentation | The configuration documentation. | 
AlterConfigs Request (Version: 0) => [resources] validate_only 
  resources => resource_type resource_name [configs] 
    resource_type => INT8
    resource_name => STRING
    configs => name value 
      name => STRING
      value => NULLABLE_STRING
  validate_only => BOOLEAN
Request header version: 1
| Field | Description | 
|---|
| resources | The updates for each resource. | 
| resource_type | The resource type. | 
| resource_name | The resource name. | 
| configs | The configurations. | 
| name | The configuration key name. | 
| value | The value to set for the configuration key. | 
| validate_only | True if we should validate the request, but not change the configurations. | 
AlterConfigs Request (Version: 1) => [resources] validate_only 
  resources => resource_type resource_name [configs] 
    resource_type => INT8
    resource_name => STRING
    configs => name value 
      name => STRING
      value => NULLABLE_STRING
  validate_only => BOOLEAN
Request header version: 1
| Field | Description | 
|---|
| resources | The updates for each resource. | 
| resource_type | The resource type. | 
| resource_name | The resource name. | 
| configs | The configurations. | 
| name | The configuration key name. | 
| value | The value to set for the configuration key. | 
| validate_only | True if we should validate the request, but not change the configurations. | 
AlterConfigs Request (Version: 2) => [resources] validate_only _tagged_fields 
  resources => resource_type resource_name [configs] _tagged_fields 
    resource_type => INT8
    resource_name => COMPACT_STRING
    configs => name value _tagged_fields 
      name => COMPACT_STRING
      value => COMPACT_NULLABLE_STRING
  validate_only => BOOLEAN
Request header version: 2
| Field | Description | 
|---|
| resources | The updates for each resource. | 
| resource_type | The resource type. | 
| resource_name | The resource name. | 
| configs | The configurations. | 
| name | The configuration key name. | 
| value | The value to set for the configuration key. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| validate_only | True if we should validate the request, but not change the configurations. | 
| _tagged_fields | The tagged fields | 
AlterConfigs Response (Version: 0) => throttle_time_ms [responses] 
  throttle_time_ms => INT32
  responses => error_code error_message resource_type resource_name 
    error_code => INT16
    error_message => NULLABLE_STRING
    resource_type => INT8
    resource_name => STRING
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | Duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| responses | The responses for each resource. | 
| error_code | The resource error code. | 
| error_message | The resource error message, or null if there was no error. | 
| resource_type | The resource type. | 
| resource_name | The resource name. | 
AlterConfigs Response (Version: 1) => throttle_time_ms [responses] 
  throttle_time_ms => INT32
  responses => error_code error_message resource_type resource_name 
    error_code => INT16
    error_message => NULLABLE_STRING
    resource_type => INT8
    resource_name => STRING
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | Duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| responses | The responses for each resource. | 
| error_code | The resource error code. | 
| error_message | The resource error message, or null if there was no error. | 
| resource_type | The resource type. | 
| resource_name | The resource name. | 
AlterReplicaLogDirs Request (Version: 1) => [dirs] 
  dirs => path [topics] 
    path => STRING
    topics => name [partitions] 
      name => STRING
      partitions => INT32
Request header version: 1
| Field | Description | 
|---|
| dirs | The alterations to make for each directory. | 
| path | The absolute directory path. | 
| topics | The topics to add to the directory. | 
| name | The topic name. | 
| partitions | The partition indexes. | 
AlterReplicaLogDirs Request (Version: 2) => [dirs] _tagged_fields 
  dirs => path [topics] _tagged_fields 
    path => COMPACT_STRING
    topics => name [partitions] _tagged_fields 
      name => COMPACT_STRING
      partitions => INT32
Request header version: 2
| Field | Description | 
|---|
| dirs | The alterations to make for each directory. | 
| path | The absolute directory path. | 
| topics | The topics to add to the directory. | 
| name | The topic name. | 
| partitions | The partition indexes. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
AlterReplicaLogDirs Response (Version: 1) => throttle_time_ms [results] 
  throttle_time_ms => INT32
  results => topic_name [partitions] 
    topic_name => STRING
    partitions => partition_index error_code 
      partition_index => INT32
      error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | Duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| results | The results for each topic. | 
| topic_name | The name of the topic. | 
| partitions | The results for each partition. | 
| partition_index | The partition index. | 
| error_code | The error code, or 0 if there was no error. | 
DescribeLogDirs Request (Version: 1) => [topics] 
  topics => topic [partitions] 
    topic => STRING
    partitions => INT32
Request header version: 1
| Field | Description | 
|---|
| topics | Each topic that we want to describe log directories for, or null for all topics. | 
| topic | The topic name. | 
| partitions | The partition indexes. | 
DescribeLogDirs Request (Version: 2) => [topics] _tagged_fields 
  topics => topic [partitions] _tagged_fields 
    topic => COMPACT_STRING
    partitions => INT32
Request header version: 2
| Field | Description | 
|---|
| topics | Each topic that we want to describe log directories for, or null for all topics. | 
| topic | The topic name. | 
| partitions | The partition indexes. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
DescribeLogDirs Request (Version: 3) => [topics] _tagged_fields 
  topics => topic [partitions] _tagged_fields 
    topic => COMPACT_STRING
    partitions => INT32
Request header version: 2
| Field | Description | 
|---|
| topics | Each topic that we want to describe log directories for, or null for all topics. | 
| topic | The topic name. | 
| partitions | The partition indexes. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
DescribeLogDirs Request (Version: 4) => [topics] _tagged_fields 
  topics => topic [partitions] _tagged_fields 
    topic => COMPACT_STRING
    partitions => INT32
Request header version: 2
| Field | Description | 
|---|
| topics | Each topic that we want to describe log directories for, or null for all topics. | 
| topic | The topic name. | 
| partitions | The partition indexes. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
DescribeLogDirs Response (Version: 1) => throttle_time_ms [results] 
  throttle_time_ms => INT32
  results => error_code log_dir [topics] 
    error_code => INT16
    log_dir => STRING
    topics => name [partitions] 
      name => STRING
      partitions => partition_index partition_size offset_lag is_future_key 
        partition_index => INT32
        partition_size => INT64
        offset_lag => INT64
        is_future_key => BOOLEAN
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| results | The log directories. | 
| error_code | The error code, or 0 if there was no error. | 
| log_dir | The absolute log directory path. | 
| topics | The topics. | 
| name | The topic name. | 
| partitions | The partitions. | 
| partition_index | The partition index. | 
| partition_size | The size of the log segments in this partition in bytes. | 
| offset_lag | The lag of the log's LEO w.r.t. partition's HW (if it is the current log for the partition) or current replica's LEO (if it is the future log for the partition). | 
| is_future_key | True if this log is created by AlterReplicaLogDirsRequest and will replace the current log of the replica in the future. | 
DescribeLogDirs Response (Version: 2) => throttle_time_ms [results] _tagged_fields 
  throttle_time_ms => INT32
  results => error_code log_dir [topics] _tagged_fields 
    error_code => INT16
    log_dir => COMPACT_STRING
    topics => name [partitions] _tagged_fields 
      name => COMPACT_STRING
      partitions => partition_index partition_size offset_lag is_future_key _tagged_fields 
        partition_index => INT32
        partition_size => INT64
        offset_lag => INT64
        is_future_key => BOOLEAN
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| results | The log directories. | 
| error_code | The error code, or 0 if there was no error. | 
| log_dir | The absolute log directory path. | 
| topics | The topics. | 
| name | The topic name. | 
| partitions | The partitions. | 
| partition_index | The partition index. | 
| partition_size | The size of the log segments in this partition in bytes. | 
| offset_lag | The lag of the log's LEO w.r.t. partition's HW (if it is the current log for the partition) or current replica's LEO (if it is the future log for the partition). | 
| is_future_key | True if this log is created by AlterReplicaLogDirsRequest and will replace the current log of the replica in the future. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
DescribeLogDirs Response (Version: 3) => throttle_time_ms error_code [results] _tagged_fields 
  throttle_time_ms => INT32
  error_code => INT16
  results => error_code log_dir [topics] _tagged_fields 
    error_code => INT16
    log_dir => COMPACT_STRING
    topics => name [partitions] _tagged_fields 
      name => COMPACT_STRING
      partitions => partition_index partition_size offset_lag is_future_key _tagged_fields 
        partition_index => INT32
        partition_size => INT64
        offset_lag => INT64
        is_future_key => BOOLEAN
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| results | The log directories. | 
| error_code | The error code, or 0 if there was no error. | 
| log_dir | The absolute log directory path. | 
| topics | The topics. | 
| name | The topic name. | 
| partitions | The partitions. | 
| partition_index | The partition index. | 
| partition_size | The size of the log segments in this partition in bytes. | 
| offset_lag | The lag of the log's LEO w.r.t. partition's HW (if it is the current log for the partition) or current replica's LEO (if it is the future log for the partition). | 
| is_future_key | True if this log is created by AlterReplicaLogDirsRequest and will replace the current log of the replica in the future. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
SaslAuthenticate Request (Version: 0) => auth_bytes 
  auth_bytes => BYTES
Request header version: 1
| Field | Description | 
|---|
| auth_bytes | The SASL authentication bytes from the client, as defined by the SASL mechanism. | 
SaslAuthenticate Request (Version: 1) => auth_bytes 
  auth_bytes => BYTES
Request header version: 1
| Field | Description | 
|---|
| auth_bytes | The SASL authentication bytes from the client, as defined by the SASL mechanism. | 
SaslAuthenticate Request (Version: 2) => auth_bytes _tagged_fields 
  auth_bytes => COMPACT_BYTES
Request header version: 2
| Field | Description | 
|---|
| auth_bytes | The SASL authentication bytes from the client, as defined by the SASL mechanism. | 
| _tagged_fields | The tagged fields | 
SaslAuthenticate Response (Version: 0) => error_code error_message auth_bytes 
  error_code => INT16
  error_message => NULLABLE_STRING
  auth_bytes => BYTES
Response header version: 0
| Field | Description | 
|---|
| error_code | The error code, or 0 if there was no error. | 
| error_message | The error message, or null if there was no error. | 
| auth_bytes | The SASL authentication bytes from the server, as defined by the SASL mechanism. | 
SaslAuthenticate Response (Version: 1) => error_code error_message auth_bytes session_lifetime_ms 
  error_code => INT16
  error_message => NULLABLE_STRING
  auth_bytes => BYTES
  session_lifetime_ms => INT64
Response header version: 0
| Field | Description | 
|---|
| error_code | The error code, or 0 if there was no error. | 
| error_message | The error message, or null if there was no error. | 
| auth_bytes | The SASL authentication bytes from the server, as defined by the SASL mechanism. | 
| session_lifetime_ms | Number of milliseconds after which only re-authentication over the existing connection to create a new session can occur. | 
CreatePartitions Request (Version: 0) => [topics] timeout_ms validate_only 
  topics => name count [assignments] 
    name => STRING
    count => INT32
    assignments => [broker_ids] 
      broker_ids => INT32
  timeout_ms => INT32
  validate_only => BOOLEAN
Request header version: 1
| Field | Description | 
|---|
| topics | Each topic that we want to create new partitions inside. | 
| name | The topic name. | 
| count | The new partition count. | 
| assignments | The new partition assignments. | 
| broker_ids | The assigned broker IDs. | 
| timeout_ms | The time in ms to wait for the partitions to be created. | 
| validate_only | If true, then validate the request, but don't actually increase the number of partitions. | 
CreatePartitions Request (Version: 1) => [topics] timeout_ms validate_only 
  topics => name count [assignments] 
    name => STRING
    count => INT32
    assignments => [broker_ids] 
      broker_ids => INT32
  timeout_ms => INT32
  validate_only => BOOLEAN
Request header version: 1
| Field | Description | 
|---|
| topics | Each topic that we want to create new partitions inside. | 
| name | The topic name. | 
| count | The new partition count. | 
| assignments | The new partition assignments. | 
| broker_ids | The assigned broker IDs. | 
| timeout_ms | The time in ms to wait for the partitions to be created. | 
| validate_only | If true, then validate the request, but don't actually increase the number of partitions. | 
CreatePartitions Request (Version: 2) => [topics] timeout_ms validate_only _tagged_fields 
  topics => name count [assignments] _tagged_fields 
    name => COMPACT_STRING
    count => INT32
    assignments => [broker_ids] _tagged_fields 
      broker_ids => INT32
  timeout_ms => INT32
  validate_only => BOOLEAN
Request header version: 2
| Field | Description | 
|---|
| topics | Each topic that we want to create new partitions inside. | 
| name | The topic name. | 
| count | The new partition count. | 
| assignments | The new partition assignments. | 
| broker_ids | The assigned broker IDs. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| timeout_ms | The time in ms to wait for the partitions to be created. | 
| validate_only | If true, then validate the request, but don't actually increase the number of partitions. | 
| _tagged_fields | The tagged fields | 
CreatePartitions Request (Version: 3) => [topics] timeout_ms validate_only _tagged_fields 
  topics => name count [assignments] _tagged_fields 
    name => COMPACT_STRING
    count => INT32
    assignments => [broker_ids] _tagged_fields 
      broker_ids => INT32
  timeout_ms => INT32
  validate_only => BOOLEAN
Request header version: 2
| Field | Description | 
|---|
| topics | Each topic that we want to create new partitions inside. | 
| name | The topic name. | 
| count | The new partition count. | 
| assignments | The new partition assignments. | 
| broker_ids | The assigned broker IDs. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| timeout_ms | The time in ms to wait for the partitions to be created. | 
| validate_only | If true, then validate the request, but don't actually increase the number of partitions. | 
| _tagged_fields | The tagged fields | 
CreatePartitions Response (Version: 0) => throttle_time_ms [results] 
  throttle_time_ms => INT32
  results => name error_code error_message 
    name => STRING
    error_code => INT16
    error_message => NULLABLE_STRING
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| results | The partition creation results for each topic. | 
| name | The topic name. | 
| error_code | The result error, or zero if there was no error. | 
| error_message | The result message, or null if there was no error. | 
CreatePartitions Response (Version: 1) => throttle_time_ms [results] 
  throttle_time_ms => INT32
  results => name error_code error_message 
    name => STRING
    error_code => INT16
    error_message => NULLABLE_STRING
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| results | The partition creation results for each topic. | 
| name | The topic name. | 
| error_code | The result error, or zero if there was no error. | 
| error_message | The result message, or null if there was no error. | 
CreatePartitions Response (Version: 2) => throttle_time_ms [results] _tagged_fields 
  throttle_time_ms => INT32
  results => name error_code error_message _tagged_fields 
    name => COMPACT_STRING
    error_code => INT16
    error_message => COMPACT_NULLABLE_STRING
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| results | The partition creation results for each topic. | 
| name | The topic name. | 
| error_code | The result error, or zero if there was no error. | 
| error_message | The result message, or null if there was no error. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
CreateDelegationToken Request (Version: 1) => [renewers] max_lifetime_ms 
  renewers => principal_type principal_name 
    principal_type => STRING
    principal_name => STRING
  max_lifetime_ms => INT64
Request header version: 1
| Field | Description | 
|---|
| renewers | A list of those who are allowed to renew this token before it expires. | 
| principal_type | The type of the Kafka principal. | 
| principal_name | The name of the Kafka principal. | 
| max_lifetime_ms | The maximum lifetime of the token in milliseconds, or -1 to use the server side default. | 
CreateDelegationToken Request (Version: 2) => [renewers] max_lifetime_ms _tagged_fields 
  renewers => principal_type principal_name _tagged_fields 
    principal_type => COMPACT_STRING
    principal_name => COMPACT_STRING
  max_lifetime_ms => INT64
Request header version: 2
| Field | Description | 
|---|
| renewers | A list of those who are allowed to renew this token before it expires. | 
| principal_type | The type of the Kafka principal. | 
| principal_name | The name of the Kafka principal. | 
| _tagged_fields | The tagged fields | 
| max_lifetime_ms | The maximum lifetime of the token in milliseconds, or -1 to use the server side default. | 
| _tagged_fields | The tagged fields | 
CreateDelegationToken Request (Version: 3) => owner_principal_type owner_principal_name [renewers] max_lifetime_ms _tagged_fields 
  owner_principal_type => COMPACT_NULLABLE_STRING
  owner_principal_name => COMPACT_NULLABLE_STRING
  renewers => principal_type principal_name _tagged_fields 
    principal_type => COMPACT_STRING
    principal_name => COMPACT_STRING
  max_lifetime_ms => INT64
Request header version: 2
| Field | Description | 
|---|
| owner_principal_type | The principal type of the owner of the token. If it's null it defaults to the token request principal. | 
| owner_principal_name | The principal name of the owner of the token. If it's null it defaults to the token request principal. | 
| renewers | A list of those who are allowed to renew this token before it expires. | 
| principal_type | The type of the Kafka principal. | 
| principal_name | The name of the Kafka principal. | 
| _tagged_fields | The tagged fields | 
| max_lifetime_ms | The maximum lifetime of the token in milliseconds, or -1 to use the server side default. | 
| _tagged_fields | The tagged fields | 
CreateDelegationToken Response (Version: 1) => error_code principal_type principal_name issue_timestamp_ms expiry_timestamp_ms max_timestamp_ms token_id hmac throttle_time_ms 
  error_code => INT16
  principal_type => STRING
  principal_name => STRING
  issue_timestamp_ms => INT64
  expiry_timestamp_ms => INT64
  max_timestamp_ms => INT64
  token_id => STRING
  hmac => BYTES
  throttle_time_ms => INT32
Response header version: 0
| Field | Description | 
|---|
| error_code | The top-level error, or zero if there was no error. | 
| principal_type | The principal type of the token owner. | 
| principal_name | The name of the token owner. | 
| issue_timestamp_ms | When this token was generated. | 
| expiry_timestamp_ms | When this token expires. | 
| max_timestamp_ms | The maximum lifetime of this token. | 
| token_id | The token UUID. | 
| hmac | HMAC of the delegation token. | 
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
CreateDelegationToken Response (Version: 2) => error_code principal_type principal_name issue_timestamp_ms expiry_timestamp_ms max_timestamp_ms token_id hmac throttle_time_ms _tagged_fields 
  error_code => INT16
  principal_type => COMPACT_STRING
  principal_name => COMPACT_STRING
  issue_timestamp_ms => INT64
  expiry_timestamp_ms => INT64
  max_timestamp_ms => INT64
  token_id => COMPACT_STRING
  hmac => COMPACT_BYTES
  throttle_time_ms => INT32
Response header version: 1
| Field | Description | 
|---|
| error_code | The top-level error, or zero if there was no error. | 
| principal_type | The principal type of the token owner. | 
| principal_name | The name of the token owner. | 
| issue_timestamp_ms | When this token was generated. | 
| expiry_timestamp_ms | When this token expires. | 
| max_timestamp_ms | The maximum lifetime of this token. | 
| token_id | The token UUID. | 
| hmac | HMAC of the delegation token. | 
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| _tagged_fields | The tagged fields | 
RenewDelegationToken Request (Version: 1) => hmac renew_period_ms 
  hmac => BYTES
  renew_period_ms => INT64
Request header version: 1
| Field | Description | 
|---|
| hmac | The HMAC of the delegation token to be renewed. | 
| renew_period_ms | The renewal time period in milliseconds. | 
RenewDelegationToken Request (Version: 2) => hmac renew_period_ms _tagged_fields 
  hmac => COMPACT_BYTES
  renew_period_ms => INT64
Request header version: 2
| Field | Description | 
|---|
| hmac | The HMAC of the delegation token to be renewed. | 
| renew_period_ms | The renewal time period in milliseconds. | 
| _tagged_fields | The tagged fields | 
RenewDelegationToken Response (Version: 1) => error_code expiry_timestamp_ms throttle_time_ms 
  error_code => INT16
  expiry_timestamp_ms => INT64
  throttle_time_ms => INT32
Response header version: 0
| Field | Description | 
|---|
| error_code | The error code, or 0 if there was no error. | 
| expiry_timestamp_ms | The timestamp in milliseconds at which this token expires. | 
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
ExpireDelegationToken Request (Version: 1) => hmac expiry_time_period_ms 
  hmac => BYTES
  expiry_time_period_ms => INT64
Request header version: 1
| Field | Description | 
|---|
| hmac | The HMAC of the delegation token to be expired. | 
| expiry_time_period_ms | The expiry time period in milliseconds. | 
ExpireDelegationToken Request (Version: 2) => hmac expiry_time_period_ms _tagged_fields 
  hmac => COMPACT_BYTES
  expiry_time_period_ms => INT64
Request header version: 2
| Field | Description | 
|---|
| hmac | The HMAC of the delegation token to be expired. | 
| expiry_time_period_ms | The expiry time period in milliseconds. | 
| _tagged_fields | The tagged fields | 
ExpireDelegationToken Response (Version: 1) => error_code expiry_timestamp_ms throttle_time_ms 
  error_code => INT16
  expiry_timestamp_ms => INT64
  throttle_time_ms => INT32
Response header version: 0
| Field | Description | 
|---|
| error_code | The error code, or 0 if there was no error. | 
| expiry_timestamp_ms | The timestamp in milliseconds at which this token expires. | 
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
DescribeDelegationToken Request (Version: 1) => [owners] 
  owners => principal_type principal_name 
    principal_type => STRING
    principal_name => STRING
Request header version: 1
| Field | Description | 
|---|
| owners | Each owner that we want to describe delegation tokens for, or null to describe all tokens. | 
| principal_type | The owner principal type. | 
| principal_name | The owner principal name. | 
DescribeDelegationToken Request (Version: 2) => [owners] _tagged_fields 
  owners => principal_type principal_name _tagged_fields 
    principal_type => COMPACT_STRING
    principal_name => COMPACT_STRING
Request header version: 2
| Field | Description | 
|---|
| owners | Each owner that we want to describe delegation tokens for, or null to describe all tokens. | 
| principal_type | The owner principal type. | 
| principal_name | The owner principal name. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
DescribeDelegationToken Request (Version: 3) => [owners] _tagged_fields 
  owners => principal_type principal_name _tagged_fields 
    principal_type => COMPACT_STRING
    principal_name => COMPACT_STRING
Request header version: 2
| Field | Description | 
|---|
| owners | Each owner that we want to describe delegation tokens for, or null to describe all tokens. | 
| principal_type | The owner principal type. | 
| principal_name | The owner principal name. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
DescribeDelegationToken Response (Version: 1) => error_code [tokens] throttle_time_ms 
  error_code => INT16
  tokens => principal_type principal_name issue_timestamp expiry_timestamp max_timestamp token_id hmac [renewers] 
    principal_type => STRING
    principal_name => STRING
    issue_timestamp => INT64
    expiry_timestamp => INT64
    max_timestamp => INT64
    token_id => STRING
    hmac => BYTES
    renewers => principal_type principal_name 
      principal_type => STRING
      principal_name => STRING
  throttle_time_ms => INT32
Response header version: 0
| Field | Description | 
|---|
| error_code | The error code, or 0 if there was no error. | 
| tokens | The tokens. | 
| principal_type | The token principal type. | 
| principal_name | The token principal name. | 
| issue_timestamp | The token issue timestamp in milliseconds. | 
| expiry_timestamp | The token expiry timestamp in milliseconds. | 
| max_timestamp | The token maximum timestamp length in milliseconds. | 
| token_id | The token ID. | 
| hmac | The token HMAC. | 
| renewers | Those who are able to renew this token before it expires. | 
| principal_type | The renewer principal type. | 
| principal_name | The renewer principal name. | 
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
DescribeDelegationToken Response (Version: 2) => error_code [tokens] throttle_time_ms _tagged_fields 
  error_code => INT16
  tokens => principal_type principal_name issue_timestamp expiry_timestamp max_timestamp token_id hmac [renewers] _tagged_fields 
    principal_type => COMPACT_STRING
    principal_name => COMPACT_STRING
    issue_timestamp => INT64
    expiry_timestamp => INT64
    max_timestamp => INT64
    token_id => COMPACT_STRING
    hmac => COMPACT_BYTES
    renewers => principal_type principal_name _tagged_fields 
      principal_type => COMPACT_STRING
      principal_name => COMPACT_STRING
  throttle_time_ms => INT32
Response header version: 1
| Field | Description | 
|---|
| error_code | The error code, or 0 if there was no error. | 
| tokens | The tokens. | 
| principal_type | The token principal type. | 
| principal_name | The token principal name. | 
| issue_timestamp | The token issue timestamp in milliseconds. | 
| expiry_timestamp | The token expiry timestamp in milliseconds. | 
| max_timestamp | The token maximum timestamp length in milliseconds. | 
| token_id | The token ID. | 
| hmac | The token HMAC. | 
| renewers | Those who are able to renew this token before it expires. | 
| principal_type | The renewer principal type. | 
| principal_name | The renewer principal name. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| _tagged_fields | The tagged fields | 
DeleteGroups Request (Version: 0) => [groups_names] 
  groups_names => STRING
Request header version: 1
| Field | Description | 
|---|
| groups_names | The group names to delete. | 
DeleteGroups Request (Version: 1) => [groups_names] 
  groups_names => STRING
Request header version: 1
| Field | Description | 
|---|
| groups_names | The group names to delete. | 
DeleteGroups Request (Version: 2) => [groups_names] _tagged_fields 
  groups_names => COMPACT_STRING
Request header version: 2
| Field | Description | 
|---|
| groups_names | The group names to delete. | 
| _tagged_fields | The tagged fields | 
DeleteGroups Response (Version: 0) => throttle_time_ms [results] 
  throttle_time_ms => INT32
  results => group_id error_code 
    group_id => STRING
    error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| results | The deletion results. | 
| group_id | The group id. | 
| error_code | The deletion error, or 0 if the deletion succeeded. | 
DeleteGroups Response (Version: 1) => throttle_time_ms [results] 
  throttle_time_ms => INT32
  results => group_id error_code 
    group_id => STRING
    error_code => INT16
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| results | The deletion results. | 
| group_id | The group id. | 
| error_code | The deletion error, or 0 if the deletion succeeded. | 
ElectLeaders Request (Version: 0) => [topic_partitions] timeout_ms 
  topic_partitions => topic [partitions] 
    topic => STRING
    partitions => INT32
  timeout_ms => INT32
Request header version: 1
| Field | Description | 
|---|
| topic_partitions | The topic partitions to elect leaders. | 
| topic | The name of a topic. | 
| partitions | The partitions of this topic whose leader should be elected. | 
| timeout_ms | The time in ms to wait for the election to complete. | 
ElectLeaders Request (Version: 1) => election_type [topic_partitions] timeout_ms 
  election_type => INT8
  topic_partitions => topic [partitions] 
    topic => STRING
    partitions => INT32
  timeout_ms => INT32
Request header version: 1
| Field | Description | 
|---|
| election_type | Type of elections to conduct for the partition. A value of '0' elects the preferred replica. A value of '1' elects the first live replica if there are no in-sync replica. | 
| topic_partitions | The topic partitions to elect leaders. | 
| topic | The name of a topic. | 
| partitions | The partitions of this topic whose leader should be elected. | 
| timeout_ms | The time in ms to wait for the election to complete. | 
ElectLeaders Request (Version: 2) => election_type [topic_partitions] timeout_ms _tagged_fields 
  election_type => INT8
  topic_partitions => topic [partitions] _tagged_fields 
    topic => COMPACT_STRING
    partitions => INT32
  timeout_ms => INT32
Request header version: 2
| Field | Description | 
|---|
| election_type | Type of elections to conduct for the partition. A value of '0' elects the preferred replica. A value of '1' elects the first live replica if there are no in-sync replica. | 
| topic_partitions | The topic partitions to elect leaders. | 
| topic | The name of a topic. | 
| partitions | The partitions of this topic whose leader should be elected. | 
| _tagged_fields | The tagged fields | 
| timeout_ms | The time in ms to wait for the election to complete. | 
| _tagged_fields | The tagged fields | 
ElectLeaders Response (Version: 0) => throttle_time_ms [replica_election_results] 
  throttle_time_ms => INT32
  replica_election_results => topic [partition_result] 
    topic => STRING
    partition_result => partition_id error_code error_message 
      partition_id => INT32
      error_code => INT16
      error_message => NULLABLE_STRING
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| replica_election_results | The election results, or an empty array if the requester did not have permission and the request asks for all partitions. | 
| topic | The topic name. | 
| partition_result | The results for each partition. | 
| partition_id | The partition id. | 
| error_code | The result error, or zero if there was no error. | 
| error_message | The result message, or null if there was no error. | 
ElectLeaders Response (Version: 1) => throttle_time_ms error_code [replica_election_results] 
  throttle_time_ms => INT32
  error_code => INT16
  replica_election_results => topic [partition_result] 
    topic => STRING
    partition_result => partition_id error_code error_message 
      partition_id => INT32
      error_code => INT16
      error_message => NULLABLE_STRING
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The top level response error code. | 
| replica_election_results | The election results, or an empty array if the requester did not have permission and the request asks for all partitions. | 
| topic | The topic name. | 
| partition_result | The results for each partition. | 
| partition_id | The partition id. | 
| error_code | The result error, or zero if there was no error. | 
| error_message | The result message, or null if there was no error. | 
IncrementalAlterConfigs Request (Version: 0) => [resources] validate_only 
  resources => resource_type resource_name [configs] 
    resource_type => INT8
    resource_name => STRING
    configs => name config_operation value 
      name => STRING
      config_operation => INT8
      value => NULLABLE_STRING
  validate_only => BOOLEAN
Request header version: 1
| Field | Description | 
|---|
| resources | The incremental updates for each resource. | 
| resource_type | The resource type. | 
| resource_name | The resource name. | 
| configs | The configurations. | 
| name | The configuration key name. | 
| config_operation | The type (Set, Delete, Append, Subtract) of operation. | 
| value | The value to set for the configuration key. | 
| validate_only | True if we should validate the request, but not change the configurations. | 
IncrementalAlterConfigs Request (Version: 1) => [resources] validate_only _tagged_fields 
  resources => resource_type resource_name [configs] _tagged_fields 
    resource_type => INT8
    resource_name => COMPACT_STRING
    configs => name config_operation value _tagged_fields 
      name => COMPACT_STRING
      config_operation => INT8
      value => COMPACT_NULLABLE_STRING
  validate_only => BOOLEAN
Request header version: 2
| Field | Description | 
|---|
| resources | The incremental updates for each resource. | 
| resource_type | The resource type. | 
| resource_name | The resource name. | 
| configs | The configurations. | 
| name | The configuration key name. | 
| config_operation | The type (Set, Delete, Append, Subtract) of operation. | 
| value | The value to set for the configuration key. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| validate_only | True if we should validate the request, but not change the configurations. | 
| _tagged_fields | The tagged fields | 
IncrementalAlterConfigs Response (Version: 0) => throttle_time_ms [responses] 
  throttle_time_ms => INT32
  responses => error_code error_message resource_type resource_name 
    error_code => INT16
    error_message => NULLABLE_STRING
    resource_type => INT8
    resource_name => STRING
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | Duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| responses | The responses for each resource. | 
| error_code | The resource error code. | 
| error_message | The resource error message, or null if there was no error. | 
| resource_type | The resource type. | 
| resource_name | The resource name. | 
AlterPartitionReassignments Request (Version: 0) => timeout_ms [topics] _tagged_fields 
  timeout_ms => INT32
  topics => name [partitions] _tagged_fields 
    name => COMPACT_STRING
    partitions => partition_index [replicas] _tagged_fields 
      partition_index => INT32
      replicas => INT32
Request header version: 2
| Field | Description | 
|---|
| timeout_ms | The time in ms to wait for the request to complete. | 
| topics | The topics to reassign. | 
| name | The topic name. | 
| partitions | The partitions to reassign. | 
| partition_index | The partition index. | 
| replicas | The replicas to place the partitions on, or null to cancel a pending reassignment for this partition. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
Requests:
ListPartitionReassignments Request (Version: 0) => timeout_ms [topics] _tagged_fields 
  timeout_ms => INT32
  topics => name [partition_indexes] _tagged_fields 
    name => COMPACT_STRING
    partition_indexes => INT32
Request header version: 2
| Field | Description | 
|---|
| timeout_ms | The time in ms to wait for the request to complete. | 
| topics | The topics to list partition reassignments for, or null to list everything. | 
| name | The topic name. | 
| partition_indexes | The partitions to list partition reassignments for. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
Requests:
OffsetDelete Request (Version: 0) => group_id [topics] 
  group_id => STRING
  topics => name [partitions] 
    name => STRING
    partitions => partition_index 
      partition_index => INT32
Request header version: 1
| Field | Description | 
|---|
| group_id | The unique group identifier. | 
| topics | The topics to delete offsets for. | 
| name | The topic name. | 
| partitions | Each partition to delete offsets for. | 
| partition_index | The partition index. | 
Requests:
DescribeClientQuotas Request (Version: 0) => [components] strict 
  components => entity_type match_type match 
    entity_type => STRING
    match_type => INT8
    match => NULLABLE_STRING
  strict => BOOLEAN
Request header version: 1
| Field | Description | 
|---|
| components | Filter components to apply to quota entities. | 
| entity_type | The entity type that the filter component applies to. | 
| match_type | How to match the entity {0 = exact name, 1 = default name, 2 = any specified name}. | 
| match | The string to match against, or null if unused for the match type. | 
| strict | Whether the match is strict, i.e. should exclude entities with unspecified entity types. | 
DescribeClientQuotas Request (Version: 1) => [components] strict _tagged_fields 
  components => entity_type match_type match _tagged_fields 
    entity_type => COMPACT_STRING
    match_type => INT8
    match => COMPACT_NULLABLE_STRING
  strict => BOOLEAN
Request header version: 2
| Field | Description | 
|---|
| components | Filter components to apply to quota entities. | 
| entity_type | The entity type that the filter component applies to. | 
| match_type | How to match the entity {0 = exact name, 1 = default name, 2 = any specified name}. | 
| match | The string to match against, or null if unused for the match type. | 
| _tagged_fields | The tagged fields | 
| strict | Whether the match is strict, i.e. should exclude entities with unspecified entity types. | 
| _tagged_fields | The tagged fields | 
DescribeClientQuotas Response (Version: 0) => throttle_time_ms error_code error_message [entries] 
  throttle_time_ms => INT32
  error_code => INT16
  error_message => NULLABLE_STRING
  entries => [entity] [values] 
    entity => entity_type entity_name 
      entity_type => STRING
      entity_name => NULLABLE_STRING
    values => key value 
      key => STRING
      value => FLOAT64
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or `0` if the quota description succeeded. | 
| error_message | The error message, or `null` if the quota description succeeded. | 
| entries | A result entry. | 
| entity | The quota entity description. | 
| entity_type | The entity type. | 
| entity_name | The entity name, or null if the default. | 
| values | The quota values for the entity. | 
| key | The quota configuration key. | 
| value | The quota configuration value. | 
AlterClientQuotas Request (Version: 0) => [entries] validate_only 
  entries => [entity] [ops] 
    entity => entity_type entity_name 
      entity_type => STRING
      entity_name => NULLABLE_STRING
    ops => key value remove 
      key => STRING
      value => FLOAT64
      remove => BOOLEAN
  validate_only => BOOLEAN
Request header version: 1
| Field | Description | 
|---|
| entries | The quota configuration entries to alter. | 
| entity | The quota entity to alter. | 
| entity_type | The entity type. | 
| entity_name | The name of the entity, or null if the default. | 
| ops | An individual quota configuration entry to alter. | 
| key | The quota configuration key. | 
| value | The value to set, otherwise ignored if the value is to be removed. | 
| remove | Whether the quota configuration value should be removed, otherwise set. | 
| validate_only | Whether the alteration should be validated, but not performed. | 
AlterClientQuotas Request (Version: 1) => [entries] validate_only _tagged_fields 
  entries => [entity] [ops] _tagged_fields 
    entity => entity_type entity_name _tagged_fields 
      entity_type => COMPACT_STRING
      entity_name => COMPACT_NULLABLE_STRING
    ops => key value remove _tagged_fields 
      key => COMPACT_STRING
      value => FLOAT64
      remove => BOOLEAN
  validate_only => BOOLEAN
Request header version: 2
| Field | Description | 
|---|
| entries | The quota configuration entries to alter. | 
| entity | The quota entity to alter. | 
| entity_type | The entity type. | 
| entity_name | The name of the entity, or null if the default. | 
| _tagged_fields | The tagged fields | 
| ops | An individual quota configuration entry to alter. | 
| key | The quota configuration key. | 
| value | The value to set, otherwise ignored if the value is to be removed. | 
| remove | Whether the quota configuration value should be removed, otherwise set. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| validate_only | Whether the alteration should be validated, but not performed. | 
| _tagged_fields | The tagged fields | 
AlterClientQuotas Response (Version: 0) => throttle_time_ms [entries] 
  throttle_time_ms => INT32
  entries => error_code error_message [entity] 
    error_code => INT16
    error_message => NULLABLE_STRING
    entity => entity_type entity_name 
      entity_type => STRING
      entity_name => NULLABLE_STRING
Response header version: 0
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| entries | The quota configuration entries to alter. | 
| error_code | The error code, or `0` if the quota alteration succeeded. | 
| error_message | The error message, or `null` if the quota alteration succeeded. | 
| entity | The quota entity to alter. | 
| entity_type | The entity type. | 
| entity_name | The name of the entity, or null if the default. | 
DescribeUserScramCredentials Request (Version: 0) => [users] _tagged_fields 
  users => name _tagged_fields 
    name => COMPACT_STRING
Request header version: 2
| Field | Description | 
|---|
| users | The users to describe, or null/empty to describe all users. | 
| name | The user name. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
Requests:
AlterUserScramCredentials Request (Version: 0) => [deletions] [upsertions] _tagged_fields 
  deletions => name mechanism _tagged_fields 
    name => COMPACT_STRING
    mechanism => INT8
  upsertions => name mechanism iterations salt salted_password _tagged_fields 
    name => COMPACT_STRING
    mechanism => INT8
    iterations => INT32
    salt => COMPACT_BYTES
    salted_password => COMPACT_BYTES
Request header version: 2
| Field | Description | 
|---|
| deletions | The SCRAM credentials to remove. | 
| name | The user name. | 
| mechanism | The SCRAM mechanism. | 
| _tagged_fields | The tagged fields | 
| upsertions | The SCRAM credentials to update/insert. | 
| name | The user name. | 
| mechanism | The SCRAM mechanism. | 
| iterations | The number of iterations. | 
| salt | A random salt generated by the client. | 
| salted_password | The salted password. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
Requests:
DescribeQuorum Request (Version: 0) => [topics] _tagged_fields 
  topics => topic_name [partitions] _tagged_fields 
    topic_name => COMPACT_STRING
    partitions => partition_index _tagged_fields 
      partition_index => INT32
Request header version: 2
| Field | Description | 
|---|
| topics | The topics to describe. | 
| topic_name | The topic name. | 
| partitions | The partitions to describe. | 
| partition_index | The partition index. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
DescribeQuorum Request (Version: 1) => [topics] _tagged_fields 
  topics => topic_name [partitions] _tagged_fields 
    topic_name => COMPACT_STRING
    partitions => partition_index _tagged_fields 
      partition_index => INT32
Request header version: 2
| Field | Description | 
|---|
| topics | The topics to describe. | 
| topic_name | The topic name. | 
| partitions | The partitions to describe. | 
| partition_index | The partition index. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
DescribeQuorum Request (Version: 2) => [topics] _tagged_fields 
  topics => topic_name [partitions] _tagged_fields 
    topic_name => COMPACT_STRING
    partitions => partition_index _tagged_fields 
      partition_index => INT32
Request header version: 2
| Field | Description | 
|---|
| topics | The topics to describe. | 
| topic_name | The topic name. | 
| partitions | The partitions to describe. | 
| partition_index | The partition index. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
DescribeQuorum Response (Version: 0) => error_code [topics] _tagged_fields 
  error_code => INT16
  topics => topic_name [partitions] _tagged_fields 
    topic_name => COMPACT_STRING
    partitions => partition_index error_code leader_id leader_epoch high_watermark [current_voters] [observers] _tagged_fields 
      partition_index => INT32
      error_code => INT16
      leader_id => INT32
      leader_epoch => INT32
      high_watermark => INT64
      current_voters => replica_id log_end_offset _tagged_fields 
        replica_id => INT32
        log_end_offset => INT64
      observers => replica_id log_end_offset _tagged_fields 
        replica_id => INT32
        log_end_offset => INT64
Response header version: 1
| Field | Description | 
|---|
| error_code | The top level error code. | 
| topics | The response from the describe quorum API. | 
| topic_name | The topic name. | 
| partitions | The partition data. | 
| partition_index | The partition index. | 
| error_code | The partition error code. | 
| leader_id | The ID of the current leader or -1 if the leader is unknown. | 
| leader_epoch | The latest known leader epoch. | 
| high_watermark | The high water mark. | 
| current_voters | The current voters of the partition. | 
| replica_id | The ID of the replica. | 
| log_end_offset | The last known log end offset of the follower or -1 if it is unknown. | 
| _tagged_fields | The tagged fields | 
| observers | The observers of the partition. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
DescribeQuorum Response (Version: 1) => error_code [topics] _tagged_fields 
  error_code => INT16
  topics => topic_name [partitions] _tagged_fields 
    topic_name => COMPACT_STRING
    partitions => partition_index error_code leader_id leader_epoch high_watermark [current_voters] [observers] _tagged_fields 
      partition_index => INT32
      error_code => INT16
      leader_id => INT32
      leader_epoch => INT32
      high_watermark => INT64
      current_voters => replica_id log_end_offset last_fetch_timestamp last_caught_up_timestamp _tagged_fields 
        replica_id => INT32
        log_end_offset => INT64
        last_fetch_timestamp => INT64
        last_caught_up_timestamp => INT64
      observers => replica_id log_end_offset last_fetch_timestamp last_caught_up_timestamp _tagged_fields 
        replica_id => INT32
        log_end_offset => INT64
        last_fetch_timestamp => INT64
        last_caught_up_timestamp => INT64
Response header version: 1
| Field | Description | 
|---|
| error_code | The top level error code. | 
| topics | The response from the describe quorum API. | 
| topic_name | The topic name. | 
| partitions | The partition data. | 
| partition_index | The partition index. | 
| error_code | The partition error code. | 
| leader_id | The ID of the current leader or -1 if the leader is unknown. | 
| leader_epoch | The latest known leader epoch. | 
| high_watermark | The high water mark. | 
| current_voters | The current voters of the partition. | 
| replica_id | The ID of the replica. | 
| log_end_offset | The last known log end offset of the follower or -1 if it is unknown. | 
| last_fetch_timestamp | The last known leader wall clock time time when a follower fetched from the leader. This is reported as -1 both for the current leader or if it is unknown for a voter. | 
| last_caught_up_timestamp | The leader wall clock append time of the offset for which the follower made the most recent fetch request. This is reported as the current time for the leader and -1 if unknown for a voter. | 
| _tagged_fields | The tagged fields | 
| observers | The observers of the partition. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
UpdateFeatures Request (Version: 0) => timeout_ms [feature_updates] _tagged_fields 
  timeout_ms => INT32
  feature_updates => feature max_version_level allow_downgrade _tagged_fields 
    feature => COMPACT_STRING
    max_version_level => INT16
    allow_downgrade => BOOLEAN
Request header version: 2
| Field | Description | 
|---|
| timeout_ms | How long to wait in milliseconds before timing out the request. | 
| feature_updates | The list of updates to finalized features. | 
| feature | The name of the finalized feature to be updated. | 
| max_version_level | The new maximum version level for the finalized feature. A value >= 1 is valid. A value < 1, is special, and can be used to request the deletion of the finalized feature. | 
| allow_downgrade | DEPRECATED in version 1 (see DowngradeType). When set to true, the finalized feature version level is allowed to be downgraded/deleted. The downgrade request will fail if the new maximum version level is a value that's not lower than the existing maximum finalized version level. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
UpdateFeatures Request (Version: 1) => timeout_ms [feature_updates] validate_only _tagged_fields 
  timeout_ms => INT32
  feature_updates => feature max_version_level upgrade_type _tagged_fields 
    feature => COMPACT_STRING
    max_version_level => INT16
    upgrade_type => INT8
  validate_only => BOOLEAN
Request header version: 2
| Field | Description | 
|---|
| timeout_ms | How long to wait in milliseconds before timing out the request. | 
| feature_updates | The list of updates to finalized features. | 
| feature | The name of the finalized feature to be updated. | 
| max_version_level | The new maximum version level for the finalized feature. A value >= 1 is valid. A value < 1, is special, and can be used to request the deletion of the finalized feature. | 
| upgrade_type | Determine which type of upgrade will be performed: 1 will perform an upgrade only (default), 2 is safe downgrades only (lossless), 3 is unsafe downgrades (lossy). | 
| _tagged_fields | The tagged fields | 
| validate_only | True if we should validate the request, but not perform the upgrade or downgrade. | 
| _tagged_fields | The tagged fields | 
UpdateFeatures Request (Version: 2) => timeout_ms [feature_updates] validate_only _tagged_fields 
  timeout_ms => INT32
  feature_updates => feature max_version_level upgrade_type _tagged_fields 
    feature => COMPACT_STRING
    max_version_level => INT16
    upgrade_type => INT8
  validate_only => BOOLEAN
Request header version: 2
| Field | Description | 
|---|
| timeout_ms | How long to wait in milliseconds before timing out the request. | 
| feature_updates | The list of updates to finalized features. | 
| feature | The name of the finalized feature to be updated. | 
| max_version_level | The new maximum version level for the finalized feature. A value >= 1 is valid. A value < 1, is special, and can be used to request the deletion of the finalized feature. | 
| upgrade_type | Determine which type of upgrade will be performed: 1 will perform an upgrade only (default), 2 is safe downgrades only (lossless), 3 is unsafe downgrades (lossy). | 
| _tagged_fields | The tagged fields | 
| validate_only | True if we should validate the request, but not perform the upgrade or downgrade. | 
| _tagged_fields | The tagged fields | 
UpdateFeatures Response (Version: 0) => throttle_time_ms error_code error_message [results] _tagged_fields 
  throttle_time_ms => INT32
  error_code => INT16
  error_message => COMPACT_NULLABLE_STRING
  results => feature error_code error_message _tagged_fields 
    feature => COMPACT_STRING
    error_code => INT16
    error_message => COMPACT_NULLABLE_STRING
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The top-level error code, or `0` if there was no top-level error. | 
| error_message | The top-level error message, or `null` if there was no top-level error. | 
| results | Results for each feature update. | 
| feature | The name of the finalized feature. | 
| error_code | The feature update error code or `0` if the feature update succeeded. | 
| error_message | The feature update error, or `null` if the feature update succeeded. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
UpdateFeatures Response (Version: 1) => throttle_time_ms error_code error_message [results] _tagged_fields 
  throttle_time_ms => INT32
  error_code => INT16
  error_message => COMPACT_NULLABLE_STRING
  results => feature error_code error_message _tagged_fields 
    feature => COMPACT_STRING
    error_code => INT16
    error_message => COMPACT_NULLABLE_STRING
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The top-level error code, or `0` if there was no top-level error. | 
| error_message | The top-level error message, or `null` if there was no top-level error. | 
| results | Results for each feature update. | 
| feature | The name of the finalized feature. | 
| error_code | The feature update error code or `0` if the feature update succeeded. | 
| error_message | The feature update error, or `null` if the feature update succeeded. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
DescribeCluster Request (Version: 0) => include_cluster_authorized_operations _tagged_fields 
  include_cluster_authorized_operations => BOOLEAN
Request header version: 2
| Field | Description | 
|---|
| include_cluster_authorized_operations | Whether to include cluster authorized operations. | 
| _tagged_fields | The tagged fields | 
DescribeCluster Request (Version: 1) => include_cluster_authorized_operations endpoint_type _tagged_fields 
  include_cluster_authorized_operations => BOOLEAN
  endpoint_type => INT8
Request header version: 2
| Field | Description | 
|---|
| include_cluster_authorized_operations | Whether to include cluster authorized operations. | 
| endpoint_type | The endpoint type to describe. 1=brokers, 2=controllers. | 
| _tagged_fields | The tagged fields | 
DescribeCluster Request (Version: 2) => include_cluster_authorized_operations endpoint_type include_fenced_brokers _tagged_fields 
  include_cluster_authorized_operations => BOOLEAN
  endpoint_type => INT8
  include_fenced_brokers => BOOLEAN
Request header version: 2
| Field | Description | 
|---|
| include_cluster_authorized_operations | Whether to include cluster authorized operations. | 
| endpoint_type | The endpoint type to describe. 1=brokers, 2=controllers. | 
| include_fenced_brokers | Whether to include fenced brokers when listing brokers. | 
| _tagged_fields | The tagged fields | 
DescribeCluster Response (Version: 0) => throttle_time_ms error_code error_message cluster_id controller_id [brokers] cluster_authorized_operations _tagged_fields 
  throttle_time_ms => INT32
  error_code => INT16
  error_message => COMPACT_NULLABLE_STRING
  cluster_id => COMPACT_STRING
  controller_id => INT32
  brokers => broker_id host port rack _tagged_fields 
    broker_id => INT32
    host => COMPACT_STRING
    port => INT32
    rack => COMPACT_NULLABLE_STRING
  cluster_authorized_operations => INT32
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The top-level error code, or 0 if there was no error. | 
| error_message | The top-level error message, or null if there was no error. | 
| cluster_id | The cluster ID that responding broker belongs to. | 
| controller_id | The ID of the controller broker. | 
| brokers | Each broker in the response. | 
| broker_id | The broker ID. | 
| host | The broker hostname. | 
| port | The broker port. | 
| rack | The rack of the broker, or null if it has not been assigned to a rack. | 
| _tagged_fields | The tagged fields | 
| cluster_authorized_operations | 32-bit bitfield to represent authorized operations for this cluster. | 
| _tagged_fields | The tagged fields | 
DescribeCluster Response (Version: 1) => throttle_time_ms error_code error_message endpoint_type cluster_id controller_id [brokers] cluster_authorized_operations _tagged_fields 
  throttle_time_ms => INT32
  error_code => INT16
  error_message => COMPACT_NULLABLE_STRING
  endpoint_type => INT8
  cluster_id => COMPACT_STRING
  controller_id => INT32
  brokers => broker_id host port rack _tagged_fields 
    broker_id => INT32
    host => COMPACT_STRING
    port => INT32
    rack => COMPACT_NULLABLE_STRING
  cluster_authorized_operations => INT32
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The top-level error code, or 0 if there was no error. | 
| error_message | The top-level error message, or null if there was no error. | 
| endpoint_type | The endpoint type that was described. 1=brokers, 2=controllers. | 
| cluster_id | The cluster ID that responding broker belongs to. | 
| controller_id | The ID of the controller broker. | 
| brokers | Each broker in the response. | 
| broker_id | The broker ID. | 
| host | The broker hostname. | 
| port | The broker port. | 
| rack | The rack of the broker, or null if it has not been assigned to a rack. | 
| _tagged_fields | The tagged fields | 
| cluster_authorized_operations | 32-bit bitfield to represent authorized operations for this cluster. | 
| _tagged_fields | The tagged fields | 
DescribeProducers Request (Version: 0) => [topics] _tagged_fields 
  topics => name [partition_indexes] _tagged_fields 
    name => COMPACT_STRING
    partition_indexes => INT32
Request header version: 2
| Field | Description | 
|---|
| topics | The topics to list producers for. | 
| name | The topic name. | 
| partition_indexes | The indexes of the partitions to list producers for. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
Requests:
UnregisterBroker Request (Version: 0) => broker_id _tagged_fields 
  broker_id => INT32
Request header version: 2
| Field | Description | 
|---|
| broker_id | The broker ID to unregister. | 
| _tagged_fields | The tagged fields | 
Requests:
DescribeTransactions Request (Version: 0) => [transactional_ids] _tagged_fields 
  transactional_ids => COMPACT_STRING
Request header version: 2
| Field | Description | 
|---|
| transactional_ids | Array of transactionalIds to include in describe results. If empty, then no results will be returned. | 
| _tagged_fields | The tagged fields | 
Requests:
ListTransactions Request (Version: 0) => [state_filters] [producer_id_filters] _tagged_fields 
  state_filters => COMPACT_STRING
  producer_id_filters => INT64
Request header version: 2
| Field | Description | 
|---|
| state_filters | The transaction states to filter by: if empty, all transactions are returned; if non-empty, then only transactions matching one of the filtered states will be returned. | 
| producer_id_filters | The producerIds to filter by: if empty, all transactions will be returned; if non-empty, only transactions which match one of the filtered producerIds will be returned. | 
| _tagged_fields | The tagged fields | 
ListTransactions Request (Version: 1) => [state_filters] [producer_id_filters] duration_filter _tagged_fields 
  state_filters => COMPACT_STRING
  producer_id_filters => INT64
  duration_filter => INT64
Request header version: 2
| Field | Description | 
|---|
| state_filters | The transaction states to filter by: if empty, all transactions are returned; if non-empty, then only transactions matching one of the filtered states will be returned. | 
| producer_id_filters | The producerIds to filter by: if empty, all transactions will be returned; if non-empty, only transactions which match one of the filtered producerIds will be returned. | 
| duration_filter | Duration (in millis) to filter by: if < 0, all transactions will be returned; otherwise, only transactions running longer than this duration will be returned. | 
| _tagged_fields | The tagged fields | 
ListTransactions Response (Version: 0) => throttle_time_ms error_code [unknown_state_filters] [transaction_states] _tagged_fields 
  throttle_time_ms => INT32
  error_code => INT16
  unknown_state_filters => COMPACT_STRING
  transaction_states => transactional_id producer_id transaction_state _tagged_fields 
    transactional_id => COMPACT_STRING
    producer_id => INT64
    transaction_state => COMPACT_STRING
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The error code, or 0 if there was no error. | 
| unknown_state_filters | Set of state filters provided in the request which were unknown to the transaction coordinator. | 
| transaction_states | The current state of the transaction for the transactional id. | 
| transactional_id | The transactional id. | 
| producer_id | The producer id. | 
| transaction_state | The current transaction state of the producer. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
ConsumerGroupHeartbeat Request (Version: 0) => group_id member_id member_epoch instance_id rack_id rebalance_timeout_ms [subscribed_topic_names] server_assignor [topic_partitions] _tagged_fields 
  group_id => COMPACT_STRING
  member_id => COMPACT_STRING
  member_epoch => INT32
  instance_id => COMPACT_NULLABLE_STRING
  rack_id => COMPACT_NULLABLE_STRING
  rebalance_timeout_ms => INT32
  subscribed_topic_names => COMPACT_STRING
  server_assignor => COMPACT_NULLABLE_STRING
  topic_partitions => topic_id [partitions] _tagged_fields 
    topic_id => UUID
    partitions => INT32
Request header version: 2
| Field | Description | 
|---|
| group_id | The group identifier. | 
| member_id | The member id generated by the consumer. The member id must be kept during the entire lifetime of the consumer process. | 
| member_epoch | The current member epoch; 0 to join the group; -1 to leave the group; -2 to indicate that the static member will rejoin. | 
| instance_id | null if not provided or if it didn't change since the last heartbeat; the instance Id otherwise. | 
| rack_id | null if not provided or if it didn't change since the last heartbeat; the rack ID of consumer otherwise. | 
| rebalance_timeout_ms | -1 if it didn't change since the last heartbeat; the maximum time in milliseconds that the coordinator will wait on the member to revoke its partitions otherwise. | 
| subscribed_topic_names | null if it didn't change since the last heartbeat; the subscribed topic names otherwise. | 
| server_assignor | null if not used or if it didn't change since the last heartbeat; the server side assignor to use otherwise. | 
| topic_partitions | null if it didn't change since the last heartbeat; the partitions owned by the member. | 
| topic_id | The topic ID. | 
| partitions | The partitions. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
ConsumerGroupHeartbeat Request (Version: 1) => group_id member_id member_epoch instance_id rack_id rebalance_timeout_ms [subscribed_topic_names] subscribed_topic_regex server_assignor [topic_partitions] _tagged_fields 
  group_id => COMPACT_STRING
  member_id => COMPACT_STRING
  member_epoch => INT32
  instance_id => COMPACT_NULLABLE_STRING
  rack_id => COMPACT_NULLABLE_STRING
  rebalance_timeout_ms => INT32
  subscribed_topic_names => COMPACT_STRING
  subscribed_topic_regex => COMPACT_NULLABLE_STRING
  server_assignor => COMPACT_NULLABLE_STRING
  topic_partitions => topic_id [partitions] _tagged_fields 
    topic_id => UUID
    partitions => INT32
Request header version: 2
| Field | Description | 
|---|
| group_id | The group identifier. | 
| member_id | The member id generated by the consumer. The member id must be kept during the entire lifetime of the consumer process. | 
| member_epoch | The current member epoch; 0 to join the group; -1 to leave the group; -2 to indicate that the static member will rejoin. | 
| instance_id | null if not provided or if it didn't change since the last heartbeat; the instance Id otherwise. | 
| rack_id | null if not provided or if it didn't change since the last heartbeat; the rack ID of consumer otherwise. | 
| rebalance_timeout_ms | -1 if it didn't change since the last heartbeat; the maximum time in milliseconds that the coordinator will wait on the member to revoke its partitions otherwise. | 
| subscribed_topic_names | null if it didn't change since the last heartbeat; the subscribed topic names otherwise. | 
| subscribed_topic_regex | null if it didn't change since the last heartbeat; the subscribed topic regex otherwise. | 
| server_assignor | null if not used or if it didn't change since the last heartbeat; the server side assignor to use otherwise. | 
| topic_partitions | null if it didn't change since the last heartbeat; the partitions owned by the member. | 
| topic_id | The topic ID. | 
| partitions | The partitions. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
ConsumerGroupHeartbeat Response (Version: 0) => throttle_time_ms error_code error_message member_id member_epoch heartbeat_interval_ms assignment _tagged_fields 
  throttle_time_ms => INT32
  error_code => INT16
  error_message => COMPACT_NULLABLE_STRING
  member_id => COMPACT_NULLABLE_STRING
  member_epoch => INT32
  heartbeat_interval_ms => INT32
  assignment => [topic_partitions] _tagged_fields 
    topic_partitions => topic_id [partitions] _tagged_fields 
      topic_id => UUID
      partitions => INT32
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| error_code | The top-level error code, or 0 if there was no error. | 
| error_message | The top-level error message, or null if there was no error. | 
| member_id | The member id is generated by the consumer starting from version 1, while in version 0, it can be provided by users or generated by the group coordinator. | 
| member_epoch | The member epoch. | 
| heartbeat_interval_ms | The heartbeat interval in milliseconds. | 
| assignment | null if not provided; the assignment otherwise. | 
| topic_partitions | The partitions assigned to the member that can be used immediately. | 
| topic_id | The topic ID. | 
| partitions | The partitions. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
ConsumerGroupDescribe Request (Version: 0) => [group_ids] include_authorized_operations _tagged_fields 
  group_ids => COMPACT_STRING
  include_authorized_operations => BOOLEAN
Request header version: 2
| Field | Description | 
|---|
| group_ids | The ids of the groups to describe. | 
| include_authorized_operations | Whether to include authorized operations. | 
| _tagged_fields | The tagged fields | 
ConsumerGroupDescribe Request (Version: 1) => [group_ids] include_authorized_operations _tagged_fields 
  group_ids => COMPACT_STRING
  include_authorized_operations => BOOLEAN
Request header version: 2
| Field | Description | 
|---|
| group_ids | The ids of the groups to describe. | 
| include_authorized_operations | Whether to include authorized operations. | 
| _tagged_fields | The tagged fields | 
ConsumerGroupDescribe Response (Version: 0) => throttle_time_ms [groups] _tagged_fields 
  throttle_time_ms => INT32
  groups => error_code error_message group_id group_state group_epoch assignment_epoch assignor_name [members] authorized_operations _tagged_fields 
    error_code => INT16
    error_message => COMPACT_NULLABLE_STRING
    group_id => COMPACT_STRING
    group_state => COMPACT_STRING
    group_epoch => INT32
    assignment_epoch => INT32
    assignor_name => COMPACT_STRING
    members => member_id instance_id rack_id member_epoch client_id client_host [subscribed_topic_names] subscribed_topic_regex assignment target_assignment _tagged_fields 
      member_id => COMPACT_STRING
      instance_id => COMPACT_NULLABLE_STRING
      rack_id => COMPACT_NULLABLE_STRING
      member_epoch => INT32
      client_id => COMPACT_STRING
      client_host => COMPACT_STRING
      subscribed_topic_names => COMPACT_STRING
      subscribed_topic_regex => COMPACT_NULLABLE_STRING
      assignment => [topic_partitions] _tagged_fields 
        topic_partitions => topic_id topic_name [partitions] _tagged_fields 
          topic_id => UUID
          topic_name => COMPACT_STRING
          partitions => INT32
      target_assignment => [topic_partitions] _tagged_fields 
        topic_partitions => topic_id topic_name [partitions] _tagged_fields 
          topic_id => UUID
          topic_name => COMPACT_STRING
          partitions => INT32
    authorized_operations => INT32
Response header version: 1
| Field | Description | 
|---|
| throttle_time_ms | The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota. | 
| groups | Each described group. | 
| error_code | The describe error, or 0 if there was no error. | 
| error_message | The top-level error message, or null if there was no error. | 
| group_id | The group ID string. | 
| group_state | The group state string, or the empty string. | 
| group_epoch | The group epoch. | 
| assignment_epoch | The assignment epoch. | 
| assignor_name | The selected assignor. | 
| members | The members. | 
| member_id | The member ID. | 
| instance_id | The member instance ID. | 
| rack_id | The member rack ID. | 
| member_epoch | The current member epoch. | 
| client_id | The client ID. | 
| client_host | The client host. | 
| subscribed_topic_names | The subscribed topic names. | 
| subscribed_topic_regex | the subscribed topic regex otherwise or null of not provided. | 
| assignment | The current assignment. | 
| topic_partitions | The assigned topic-partitions to the member. | 
| topic_id | The topic ID. | 
| topic_name | The topic name. | 
| partitions | The partitions. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| target_assignment | The target assignment. | 
| _tagged_fields | The tagged fields | 
| authorized_operations | 32-bit bitfield to represent authorized operations for this group. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
GetTelemetrySubscriptions Request (Version: 0) => client_instance_id _tagged_fields 
  client_instance_id => UUID
Request header version: 2
| Field | Description | 
|---|
| client_instance_id | Unique id for this client instance, must be set to 0 on the first request. | 
| _tagged_fields | The tagged fields | 
Requests:
PushTelemetry Request (Version: 0) => client_instance_id subscription_id terminating compression_type metrics _tagged_fields 
  client_instance_id => UUID
  subscription_id => INT32
  terminating => BOOLEAN
  compression_type => INT8
  metrics => COMPACT_BYTES
Request header version: 2
| Field | Description | 
|---|
| client_instance_id | Unique id for this client instance. | 
| subscription_id | Unique identifier for the current subscription. | 
| terminating | Client is terminating the connection. | 
| compression_type | Compression codec used to compress the metrics. | 
| metrics | Metrics encoded in OpenTelemetry MetricsData v1 protobuf format. | 
| _tagged_fields | The tagged fields | 
Requests:
ListClientMetricsResources Request (Version: 0) => _tagged_fields 
Request header version: 2
| Field | Description | 
|---|
| _tagged_fields | The tagged fields | 
Requests:
DescribeTopicPartitions Request (Version: 0) => [topics] response_partition_limit cursor _tagged_fields 
  topics => name _tagged_fields 
    name => COMPACT_STRING
  response_partition_limit => INT32
  cursor => topic_name partition_index _tagged_fields 
    topic_name => COMPACT_STRING
    partition_index => INT32
Request header version: 2
| Field | Description | 
|---|
| topics | The topics to fetch details for. | 
| name | The topic name. | 
| _tagged_fields | The tagged fields | 
| response_partition_limit | The maximum number of partitions included in the response. | 
| cursor | The first topic and partition index to fetch details for. | 
| topic_name | The name for the first topic to process. | 
| partition_index | The partition index to start with. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
Requests:
ShareGroupHeartbeat Request (Version: 0) => group_id member_id member_epoch rack_id [subscribed_topic_names] _tagged_fields 
  group_id => COMPACT_STRING
  member_id => COMPACT_STRING
  member_epoch => INT32
  rack_id => COMPACT_NULLABLE_STRING
  subscribed_topic_names => COMPACT_STRING
This version of the request is unstable.
Request header version: 2
| Field | Description | 
|---|
| group_id | The group identifier. | 
| member_id | The member id. | 
| member_epoch | The current member epoch; 0 to join the group; -1 to leave the group. | 
| rack_id | null if not provided or if it didn't change since the last heartbeat; the rack ID of consumer otherwise. | 
| subscribed_topic_names | null if it didn't change since the last heartbeat; the subscribed topic names otherwise. | 
| _tagged_fields | The tagged fields | 
Requests:
ShareGroupDescribe Request (Version: 0) => [group_ids] include_authorized_operations _tagged_fields 
  group_ids => COMPACT_STRING
  include_authorized_operations => BOOLEAN
This version of the request is unstable.
Request header version: 2
| Field | Description | 
|---|
| group_ids | The ids of the groups to describe. | 
| include_authorized_operations | Whether to include authorized operations. | 
| _tagged_fields | The tagged fields | 
Requests:
ShareFetch Request (Version: 0) => group_id member_id share_session_epoch max_wait_ms min_bytes max_bytes [topics] [forgotten_topics_data] _tagged_fields 
  group_id => COMPACT_NULLABLE_STRING
  member_id => COMPACT_NULLABLE_STRING
  share_session_epoch => INT32
  max_wait_ms => INT32
  min_bytes => INT32
  max_bytes => INT32
  topics => topic_id [partitions] _tagged_fields 
    topic_id => UUID
    partitions => partition_index partition_max_bytes [acknowledgement_batches] _tagged_fields 
      partition_index => INT32
      partition_max_bytes => INT32
      acknowledgement_batches => first_offset last_offset [acknowledge_types] _tagged_fields 
        first_offset => INT64
        last_offset => INT64
        acknowledge_types => INT8
  forgotten_topics_data => topic_id [partitions] _tagged_fields 
    topic_id => UUID
    partitions => INT32
This version of the request is unstable.
Request header version: 2
| Field | Description | 
|---|
| group_id | The group identifier. | 
| member_id | The member ID. | 
| share_session_epoch | The current share session epoch: 0 to open a share session; -1 to close it; otherwise increments for consecutive requests. | 
| max_wait_ms | The maximum time in milliseconds to wait for the response. | 
| min_bytes | The minimum bytes to accumulate in the response. | 
| max_bytes | The maximum bytes to fetch.  See KIP-74 for cases where this limit may not be honored. | 
| topics | The topics to fetch. | 
| topic_id | The unique topic ID. | 
| partitions | The partitions to fetch. | 
| partition_index | The partition index. | 
| partition_max_bytes | The maximum bytes to fetch from this partition. 0 when only acknowledgement with no fetching is required. See KIP-74 for cases where this limit may not be honored. | 
| acknowledgement_batches | Record batches to acknowledge. | 
| first_offset | First offset of batch of records to acknowledge. | 
| last_offset | Last offset (inclusive) of batch of records to acknowledge. | 
| acknowledge_types | Array of acknowledge types - 0:Gap,1:Accept,2:Release,3:Reject. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| forgotten_topics_data | The partitions to remove from this share session. | 
| topic_id | The unique topic ID. | 
| partitions | The partitions indexes to forget. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
Requests:
ShareAcknowledge Request (Version: 0) => group_id member_id share_session_epoch [topics] _tagged_fields 
  group_id => COMPACT_NULLABLE_STRING
  member_id => COMPACT_NULLABLE_STRING
  share_session_epoch => INT32
  topics => topic_id [partitions] _tagged_fields 
    topic_id => UUID
    partitions => partition_index [acknowledgement_batches] _tagged_fields 
      partition_index => INT32
      acknowledgement_batches => first_offset last_offset [acknowledge_types] _tagged_fields 
        first_offset => INT64
        last_offset => INT64
        acknowledge_types => INT8
This version of the request is unstable.
Request header version: 2
| Field | Description | 
|---|
| group_id | The group identifier. | 
| member_id | The member ID. | 
| share_session_epoch | The current share session epoch: 0 to open a share session; -1 to close it; otherwise increments for consecutive requests. | 
| topics | The topics containing records to acknowledge. | 
| topic_id | The unique topic ID. | 
| partitions | The partitions containing records to acknowledge. | 
| partition_index | The partition index. | 
| acknowledgement_batches | Record batches to acknowledge. | 
| first_offset | First offset of batch of records to acknowledge. | 
| last_offset | Last offset (inclusive) of batch of records to acknowledge. | 
| acknowledge_types | Array of acknowledge types - 0:Gap,1:Accept,2:Release,3:Reject. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
Requests:
AddRaftVoter Request (Version: 0) => cluster_id timeout_ms voter_id voter_directory_id [listeners] _tagged_fields 
  cluster_id => COMPACT_NULLABLE_STRING
  timeout_ms => INT32
  voter_id => INT32
  voter_directory_id => UUID
  listeners => name host port _tagged_fields 
    name => COMPACT_STRING
    host => COMPACT_STRING
    port => UINT16
Request header version: 2
| Field | Description | 
|---|
| cluster_id | The cluster id. | 
| timeout_ms | The maximum time to wait for the request to complete before returning. | 
| voter_id | The replica id of the voter getting added to the topic partition. | 
| voter_directory_id | The directory id of the voter getting added to the topic partition. | 
| listeners | The endpoints that can be used to communicate with the voter. | 
| name | The name of the endpoint. | 
| host | The hostname. | 
| port | The port. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
Requests:
RemoveRaftVoter Request (Version: 0) => cluster_id voter_id voter_directory_id _tagged_fields 
  cluster_id => COMPACT_NULLABLE_STRING
  voter_id => INT32
  voter_directory_id => UUID
Request header version: 2
| Field | Description | 
|---|
| cluster_id | The cluster id of the request. | 
| voter_id | The replica id of the voter getting removed from the topic partition. | 
| voter_directory_id | The directory id of the voter getting removed from the topic partition. | 
| _tagged_fields | The tagged fields | 
Requests:
InitializeShareGroupState Request (Version: 0) => group_id [topics] _tagged_fields 
  group_id => COMPACT_STRING
  topics => topic_id [partitions] _tagged_fields 
    topic_id => UUID
    partitions => partition state_epoch start_offset _tagged_fields 
      partition => INT32
      state_epoch => INT32
      start_offset => INT64
This version of the request is unstable.
Request header version: 2
| Field | Description | 
|---|
| group_id | The group identifier. | 
| topics | The data for the topics. | 
| topic_id | The topic identifier. | 
| partitions | The data for the partitions. | 
| partition | The partition index. | 
| state_epoch | The state epoch for this share-partition. | 
| start_offset | The share-partition start offset, or -1 if the start offset is not being initialized. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
Requests:
ReadShareGroupState Request (Version: 0) => group_id [topics] _tagged_fields 
  group_id => COMPACT_STRING
  topics => topic_id [partitions] _tagged_fields 
    topic_id => UUID
    partitions => partition leader_epoch _tagged_fields 
      partition => INT32
      leader_epoch => INT32
This version of the request is unstable.
Request header version: 2
| Field | Description | 
|---|
| group_id | The group identifier. | 
| topics | The data for the topics. | 
| topic_id | The topic identifier. | 
| partitions | The data for the partitions. | 
| partition | The partition index. | 
| leader_epoch | The leader epoch of the share-partition. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
Requests:
WriteShareGroupState Request (Version: 0) => group_id [topics] _tagged_fields 
  group_id => COMPACT_STRING
  topics => topic_id [partitions] _tagged_fields 
    topic_id => UUID
    partitions => partition state_epoch leader_epoch start_offset [state_batches] _tagged_fields 
      partition => INT32
      state_epoch => INT32
      leader_epoch => INT32
      start_offset => INT64
      state_batches => first_offset last_offset delivery_state delivery_count _tagged_fields 
        first_offset => INT64
        last_offset => INT64
        delivery_state => INT8
        delivery_count => INT16
This version of the request is unstable.
Request header version: 2
| Field | Description | 
|---|
| group_id | The group identifier. | 
| topics | The data for the topics. | 
| topic_id | The topic identifier. | 
| partitions | The data for the partitions. | 
| partition | The partition index. | 
| state_epoch | The state epoch for this share-partition. | 
| leader_epoch | The leader epoch of the share-partition. | 
| start_offset | The share-partition start offset, or -1 if the start offset is not being written. | 
| state_batches | The state batches for the share-partition. | 
| first_offset | The base offset of this state batch. | 
| last_offset | The last offset of this state batch. | 
| delivery_state | The state - 0:Available,2:Acked,4:Archived. | 
| delivery_count | The delivery count. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
Requests:
DeleteShareGroupState Request (Version: 0) => group_id [topics] _tagged_fields 
  group_id => COMPACT_STRING
  topics => topic_id [partitions] _tagged_fields 
    topic_id => UUID
    partitions => partition _tagged_fields 
      partition => INT32
This version of the request is unstable.
Request header version: 2
| Field | Description | 
|---|
| group_id | The group identifier. | 
| topics | The data for the topics. | 
| topic_id | The topic identifier. | 
| partitions | The data for the partitions. | 
| partition | The partition index. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
Requests:
ReadShareGroupStateSummary Request (Version: 0) => group_id [topics] _tagged_fields 
  group_id => COMPACT_STRING
  topics => topic_id [partitions] _tagged_fields 
    topic_id => UUID
    partitions => partition leader_epoch _tagged_fields 
      partition => INT32
      leader_epoch => INT32
This version of the request is unstable.
Request header version: 2
| Field | Description | 
|---|
| group_id | The group identifier. | 
| topics | The data for the topics. | 
| topic_id | The topic identifier. | 
| partitions | The data for the partitions. | 
| partition | The partition index. | 
| leader_epoch | The leader epoch of the share-partition. | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields | 
| _tagged_fields | The tagged fields |