Packages
kafka_protocol
3.0.0
4.3.4
4.3.3
4.3.2
4.3.1
4.3.0
4.2.9
4.2.8
4.2.7
4.2.6
4.2.5
4.2.4
4.2.3
4.2.2
4.2.1
4.2.0
4.1.10
4.1.9
4.1.8
4.1.7
4.1.6
4.1.5
4.1.4
4.1.3
4.1.2
4.1.1
4.1.0
4.0.3
4.0.2
4.0.1
3.0.1
3.0.0
2.4.1
2.3.6
2.3.5
2.3.4
2.3.3
2.3.2
2.3.1
2.3.0
2.2.9
2.2.8
2.2.7
2.2.6
2.2.5
2.2.4
2.2.3
2.2.2
2.2.1
2.2.0
2.1.2
2.1.1
2.1.0
2.0.1
2.0.0
1.1.3
1.1.2
1.1.1
1.1.0
1.0.0
0.9.2
0.9.1
0.9.0
0.8.0
0.7.8
0.7.7
0.7.6
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.0
0.4.0
0.3.2
0.3.1
0.2.3
Kafka protocol library for Erlang/Elixir
Current section
Files
Jump to
Current section
Files
src/kpro_schema.erl
%% generated code, do not edit!
-module(kpro_schema).
-export([all_apis/0, vsn_range/1, min_flexible_vsn/1, api_key/1, req/2, rsp/2, ec/1]).
all_apis() ->
[produce,
fetch,
list_offsets,
metadata,
offset_commit,
offset_fetch,
find_coordinator,
join_group,
heartbeat,
leave_group,
sync_group,
describe_groups,
list_groups,
sasl_handshake,
api_versions,
create_topics,
delete_topics,
delete_records,
init_producer_id,
offset_for_leader_epoch,
add_partitions_to_txn,
add_offsets_to_txn,
end_txn,
txn_offset_commit,
describe_acls,
create_acls,
delete_acls,
describe_configs,
alter_configs,
alter_replica_log_dirs,
describe_log_dirs,
sasl_authenticate,
create_partitions,
create_delegation_token,
renew_delegation_token,
expire_delegation_token,
describe_delegation_token,
delete_groups,
elect_leaders,
incremental_alter_configs,
alter_partition_reassignments,
list_partition_reassignments,
offset_delete].
min_flexible_vsn(metadata) -> 9;
min_flexible_vsn(offset_commit) -> 8;
min_flexible_vsn(offset_fetch) -> 6;
min_flexible_vsn(find_coordinator) -> 3;
min_flexible_vsn(join_group) -> 6;
min_flexible_vsn(heartbeat) -> 4;
min_flexible_vsn(leave_group) -> 4;
min_flexible_vsn(sync_group) -> 4;
min_flexible_vsn(describe_groups) -> 5;
min_flexible_vsn(list_groups) -> 3;
min_flexible_vsn(api_versions) -> 3;
min_flexible_vsn(create_topics) -> 5;
min_flexible_vsn(delete_topics) -> 4;
min_flexible_vsn(init_producer_id) -> 2;
min_flexible_vsn(create_delegation_token) -> 2;
min_flexible_vsn(delete_groups) -> 2;
min_flexible_vsn(elect_leaders) -> 2;
min_flexible_vsn(incremental_alter_configs) -> 1;
min_flexible_vsn(alter_partition_reassignments) -> 0;
min_flexible_vsn(list_partition_reassignments) -> 0;
min_flexible_vsn(_) -> 9999.
vsn_range(produce) -> {0, 8};
vsn_range(fetch) -> {0, 11};
vsn_range(list_offsets) -> {0, 5};
vsn_range(metadata) -> {0, 9};
vsn_range(offset_commit) -> {0, 8};
vsn_range(offset_fetch) -> {0, 6};
vsn_range(find_coordinator) -> {0, 3};
vsn_range(join_group) -> {0, 6};
vsn_range(heartbeat) -> {0, 4};
vsn_range(leave_group) -> {0, 4};
vsn_range(sync_group) -> {0, 4};
vsn_range(describe_groups) -> {0, 5};
vsn_range(list_groups) -> {0, 3};
vsn_range(sasl_handshake) -> {0, 1};
vsn_range(api_versions) -> {0, 3};
vsn_range(create_topics) -> {0, 5};
vsn_range(delete_topics) -> {0, 4};
vsn_range(delete_records) -> {0, 1};
vsn_range(init_producer_id) -> {0, 2};
vsn_range(offset_for_leader_epoch) -> {0, 3};
vsn_range(add_partitions_to_txn) -> {0, 1};
vsn_range(add_offsets_to_txn) -> {0, 1};
vsn_range(end_txn) -> {0, 1};
vsn_range(txn_offset_commit) -> {0, 2};
vsn_range(describe_acls) -> {0, 1};
vsn_range(create_acls) -> {0, 1};
vsn_range(delete_acls) -> {0, 1};
vsn_range(describe_configs) -> {0, 2};
vsn_range(alter_configs) -> {0, 1};
vsn_range(alter_replica_log_dirs) -> {0, 1};
vsn_range(describe_log_dirs) -> {0, 1};
vsn_range(sasl_authenticate) -> {0, 1};
vsn_range(create_partitions) -> {0, 1};
vsn_range(create_delegation_token) -> {0, 2};
vsn_range(renew_delegation_token) -> {0, 1};
vsn_range(expire_delegation_token) -> {0, 1};
vsn_range(describe_delegation_token) -> {0, 1};
vsn_range(delete_groups) -> {0, 2};
vsn_range(elect_leaders) -> {0, 2};
vsn_range(incremental_alter_configs) -> {0, 1};
vsn_range(alter_partition_reassignments) -> {0, 0};
vsn_range(list_partition_reassignments) -> {0, 0};
vsn_range(offset_delete) -> {0, 0};
vsn_range(_) -> false.
api_key(produce) -> 0;
api_key(0) -> produce;
api_key(fetch) -> 1;
api_key(1) -> fetch;
api_key(list_offsets) -> 2;
api_key(2) -> list_offsets;
api_key(metadata) -> 3;
api_key(3) -> metadata;
api_key(offset_commit) -> 8;
api_key(8) -> offset_commit;
api_key(offset_fetch) -> 9;
api_key(9) -> offset_fetch;
api_key(find_coordinator) -> 10;
api_key(10) -> find_coordinator;
api_key(join_group) -> 11;
api_key(11) -> join_group;
api_key(heartbeat) -> 12;
api_key(12) -> heartbeat;
api_key(leave_group) -> 13;
api_key(13) -> leave_group;
api_key(sync_group) -> 14;
api_key(14) -> sync_group;
api_key(describe_groups) -> 15;
api_key(15) -> describe_groups;
api_key(list_groups) -> 16;
api_key(16) -> list_groups;
api_key(sasl_handshake) -> 17;
api_key(17) -> sasl_handshake;
api_key(api_versions) -> 18;
api_key(18) -> api_versions;
api_key(create_topics) -> 19;
api_key(19) -> create_topics;
api_key(delete_topics) -> 20;
api_key(20) -> delete_topics;
api_key(delete_records) -> 21;
api_key(21) -> delete_records;
api_key(init_producer_id) -> 22;
api_key(22) -> init_producer_id;
api_key(offset_for_leader_epoch) -> 23;
api_key(23) -> offset_for_leader_epoch;
api_key(add_partitions_to_txn) -> 24;
api_key(24) -> add_partitions_to_txn;
api_key(add_offsets_to_txn) -> 25;
api_key(25) -> add_offsets_to_txn;
api_key(end_txn) -> 26;
api_key(26) -> end_txn;
api_key(txn_offset_commit) -> 28;
api_key(28) -> txn_offset_commit;
api_key(describe_acls) -> 29;
api_key(29) -> describe_acls;
api_key(create_acls) -> 30;
api_key(30) -> create_acls;
api_key(delete_acls) -> 31;
api_key(31) -> delete_acls;
api_key(describe_configs) -> 32;
api_key(32) -> describe_configs;
api_key(alter_configs) -> 33;
api_key(33) -> alter_configs;
api_key(alter_replica_log_dirs) -> 34;
api_key(34) -> alter_replica_log_dirs;
api_key(describe_log_dirs) -> 35;
api_key(35) -> describe_log_dirs;
api_key(sasl_authenticate) -> 36;
api_key(36) -> sasl_authenticate;
api_key(create_partitions) -> 37;
api_key(37) -> create_partitions;
api_key(create_delegation_token) -> 38;
api_key(38) -> create_delegation_token;
api_key(renew_delegation_token) -> 39;
api_key(39) -> renew_delegation_token;
api_key(expire_delegation_token) -> 40;
api_key(40) -> expire_delegation_token;
api_key(describe_delegation_token) -> 41;
api_key(41) -> describe_delegation_token;
api_key(delete_groups) -> 42;
api_key(42) -> delete_groups;
api_key(elect_leaders) -> 43;
api_key(43) -> elect_leaders;
api_key(incremental_alter_configs) -> 44;
api_key(44) -> incremental_alter_configs;
api_key(alter_partition_reassignments) -> 45;
api_key(45) -> alter_partition_reassignments;
api_key(list_partition_reassignments) -> 46;
api_key(46) -> list_partition_reassignments;
api_key(offset_delete) -> 47;
api_key(47) -> offset_delete;
api_key(API) -> erlang:error({not_supported, API}).
req(produce, V) when V >= 0, V =< 2 ->
[{acks,int16},
{timeout,int32},
{topic_data,{array,[{topic,string},
{data,{array,[{partition,int32},
{record_set,records}]}}]}}];
req(produce, V) when V >= 3, V =< 8 ->
[{transactional_id,nullable_string},
{acks,int16},
{timeout,int32},
{topic_data,{array,[{topic,string},
{data,{array,[{partition,int32},
{record_set,records}]}}]}}];
req(fetch, V) when V >= 0, V =< 2 ->
[{replica_id,int32},
{max_wait_time,int32},
{min_bytes,int32},
{topics,{array,[{topic,string},
{partitions,{array,[{partition,int32},
{fetch_offset,int64},
{partition_max_bytes,int32}]}}]}}];
req(fetch, 3) ->
[{replica_id,int32},
{max_wait_time,int32},
{min_bytes,int32},
{max_bytes,int32},
{topics,{array,[{topic,string},
{partitions,{array,[{partition,int32},
{fetch_offset,int64},
{partition_max_bytes,int32}]}}]}}];
req(fetch, 4) ->
[{replica_id,int32},
{max_wait_time,int32},
{min_bytes,int32},
{max_bytes,int32},
{isolation_level,int8},
{topics,{array,[{topic,string},
{partitions,{array,[{partition,int32},
{fetch_offset,int64},
{partition_max_bytes,int32}]}}]}}];
req(fetch, V) when V >= 5, V =< 6 ->
[{replica_id,int32},
{max_wait_time,int32},
{min_bytes,int32},
{max_bytes,int32},
{isolation_level,int8},
{topics,{array,[{topic,string},
{partitions,{array,[{partition,int32},
{fetch_offset,int64},
{log_start_offset,int64},
{partition_max_bytes,int32}]}}]}}];
req(fetch, V) when V >= 7, V =< 8 ->
[{replica_id,int32},
{max_wait_time,int32},
{min_bytes,int32},
{max_bytes,int32},
{isolation_level,int8},
{session_id,int32},
{session_epoch,int32},
{topics,
{array,
[{topic,string},
{partitions,
{array,
[{partition,int32},
{fetch_offset,int64},
{log_start_offset,int64},
{partition_max_bytes,int32}]}}]}},
{forgotten_topics_data,
{array,
[{topic,string},
{partitions,
{array,
[{partition,int32},
{fetch_offset,int64},
{log_start_offset,int64},
{partition_max_bytes,int32}]}}]}}];
req(fetch, V) when V >= 9, V =< 10 ->
[{replica_id,int32},
{max_wait_time,int32},
{min_bytes,int32},
{max_bytes,int32},
{isolation_level,int8},
{session_id,int32},
{session_epoch,int32},
{topics,
{array,
[{topic,string},
{partitions,
{array,
[{partition,int32},
{current_leader_epoch,int32},
{fetch_offset,int64},
{log_start_offset,int64},
{partition_max_bytes,int32}]}}]}},
{forgotten_topics_data,
{array,
[{topic,string},
{partitions,
{array,
[{partition,int32},
{current_leader_epoch,int32},
{fetch_offset,int64},
{log_start_offset,int64},
{partition_max_bytes,int32}]}}]}}];
req(fetch, 11) ->
[{replica_id,int32},
{max_wait_time,int32},
{min_bytes,int32},
{max_bytes,int32},
{isolation_level,int8},
{session_id,int32},
{session_epoch,int32},
{topics,
{array,
[{topic,string},
{partitions,
{array,
[{partition,int32},
{current_leader_epoch,int32},
{fetch_offset,int64},
{log_start_offset,int64},
{partition_max_bytes,int32}]}}]}},
{forgotten_topics_data,
{array,
[{topic,string},
{partitions,
{array,
[{partition,int32},
{current_leader_epoch,int32},
{fetch_offset,int64},
{log_start_offset,int64},
{partition_max_bytes,int32}]}}]}},
{rack_id,string}];
req(list_offsets, 0) ->
[{replica_id,int32},
{topics,{array,[{topic,string},
{partitions,{array,[{partition,int32},
{timestamp,int64},
{max_num_offsets,int32}]}}]}}];
req(list_offsets, 1) ->
[{replica_id,int32},
{topics,{array,[{topic,string},
{partitions,{array,[{partition,int32},
{timestamp,int64}]}}]}}];
req(list_offsets, V) when V >= 2, V =< 3 ->
[{replica_id,int32},
{isolation_level,int8},
{topics,{array,[{topic,string},
{partitions,{array,[{partition,int32},
{timestamp,int64}]}}]}}];
req(list_offsets, V) when V >= 4, V =< 5 ->
[{replica_id,int32},
{isolation_level,int8},
{topics,{array,[{topic,string},
{partitions,{array,[{partition,int32},
{current_leader_epoch,int32},
{timestamp,int64}]}}]}}];
req(metadata, V) when V >= 0, V =< 3 ->
[{topics,{array,[{name,string}]}}];
req(metadata, V) when V >= 4, V =< 7 ->
[{topics,{array,[{name,string}]}},{allow_auto_topic_creation,boolean}];
req(metadata, 8) ->
[{topics,{array,[{name,string}]}},
{allow_auto_topic_creation,boolean},
{include_cluster_authorized_operations,boolean},
{include_topic_authorized_operations,boolean}];
req(metadata, 9) ->
[{topics,{compact_array,[{name,compact_string},
{tagged_fields,tagged_fields}]}},
{allow_auto_topic_creation,boolean},
{include_cluster_authorized_operations,boolean},
{include_topic_authorized_operations,boolean},
{tagged_fields,tagged_fields}];
req(offset_commit, 0) ->
[{group_id,string},
{topics,
{array,
[{name,string},
{partitions,
{array,
[{partition_index,int32},
{committed_offset,int64},
{committed_metadata,nullable_string}]}}]}}];
req(offset_commit, 1) ->
[{group_id,string},
{generation_id,int32},
{member_id,string},
{topics,
{array,
[{name,string},
{partitions,
{array,
[{partition_index,int32},
{committed_offset,int64},
{commit_timestamp,int64},
{committed_metadata,nullable_string}]}}]}}];
req(offset_commit, V) when V >= 2, V =< 4 ->
[{group_id,string},
{generation_id,int32},
{member_id,string},
{retention_time_ms,int64},
{topics,
{array,
[{name,string},
{partitions,
{array,
[{partition_index,int32},
{committed_offset,int64},
{committed_metadata,nullable_string}]}}]}}];
req(offset_commit, 5) ->
[{group_id,string},
{generation_id,int32},
{member_id,string},
{topics,
{array,
[{name,string},
{partitions,
{array,
[{partition_index,int32},
{committed_offset,int64},
{committed_metadata,nullable_string}]}}]}}];
req(offset_commit, 6) ->
[{group_id,string},
{generation_id,int32},
{member_id,string},
{topics,
{array,
[{name,string},
{partitions,
{array,
[{partition_index,int32},
{committed_offset,int64},
{committed_leader_epoch,int32},
{committed_metadata,nullable_string}]}}]}}];
req(offset_commit, 7) ->
[{group_id,string},
{generation_id,int32},
{member_id,string},
{group_instance_id,nullable_string},
{topics,
{array,
[{name,string},
{partitions,
{array,
[{partition_index,int32},
{committed_offset,int64},
{committed_leader_epoch,int32},
{committed_metadata,nullable_string}]}}]}}];
req(offset_commit, 8) ->
[{group_id,compact_string},
{generation_id,int32},
{member_id,compact_string},
{group_instance_id,compact_nullable_string},
{topics,
{compact_array,
[{name,compact_string},
{partitions,
{compact_array,
[{partition_index,int32},
{committed_offset,int64},
{committed_leader_epoch,int32},
{committed_metadata,compact_nullable_string},
{tagged_fields,tagged_fields}]}},
{tagged_fields,tagged_fields}]}},
{tagged_fields,tagged_fields}];
req(offset_fetch, V) when V >= 0, V =< 5 ->
[{group_id,string},
{topics,{array,[{name,string},{partition_indexes,{array,int32}}]}}];
req(offset_fetch, 6) ->
[{group_id,compact_string},
{topics,{compact_array,[{name,compact_string},
{partition_indexes,{compact_array,int32}},
{tagged_fields,tagged_fields}]}},
{tagged_fields,tagged_fields}];
req(find_coordinator, 0) ->
[{key,string}];
req(find_coordinator, V) when V >= 1, V =< 2 ->
[{key,string},{key_type,int8}];
req(find_coordinator, 3) ->
[{key,compact_string},{key_type,int8},{tagged_fields,tagged_fields}];
req(join_group, 0) ->
[{group_id,string},
{session_timeout_ms,int32},
{member_id,string},
{protocol_type,string},
{protocols,{array,[{name,string},{metadata,bytes}]}}];
req(join_group, V) when V >= 1, V =< 4 ->
[{group_id,string},
{session_timeout_ms,int32},
{rebalance_timeout_ms,int32},
{member_id,string},
{protocol_type,string},
{protocols,{array,[{name,string},{metadata,bytes}]}}];
req(join_group, 5) ->
[{group_id,string},
{session_timeout_ms,int32},
{rebalance_timeout_ms,int32},
{member_id,string},
{group_instance_id,nullable_string},
{protocol_type,string},
{protocols,{array,[{name,string},{metadata,bytes}]}}];
req(join_group, 6) ->
[{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,{compact_array,[{name,compact_string},
{metadata,compact_bytes},
{tagged_fields,tagged_fields}]}},
{tagged_fields,tagged_fields}];
req(heartbeat, V) when V >= 0, V =< 2 ->
[{group_id,string},{generation_id,int32},{member_id,string}];
req(heartbeat, 3) ->
[{group_id,string},
{generation_id,int32},
{member_id,string},
{group_instance_id,nullable_string}];
req(heartbeat, 4) ->
[{group_id,compact_string},
{generation_id,int32},
{member_id,compact_string},
{group_instance_id,compact_nullable_string},
{tagged_fields,tagged_fields}];
req(leave_group, V) when V >= 0, V =< 2 ->
[{group_id,string},{member_id,string}];
req(leave_group, 3) ->
[{group_id,string},
{members,{array,[{member_id,string},{group_instance_id,nullable_string}]}}];
req(leave_group, 4) ->
[{group_id,compact_string},
{members,{compact_array,[{member_id,compact_string},
{group_instance_id,compact_nullable_string},
{tagged_fields,tagged_fields}]}},
{tagged_fields,tagged_fields}];
req(sync_group, V) when V >= 0, V =< 2 ->
[{group_id,string},
{generation_id,int32},
{member_id,string},
{assignments,{array,[{member_id,string},{assignment,bytes}]}}];
req(sync_group, 3) ->
[{group_id,string},
{generation_id,int32},
{member_id,string},
{group_instance_id,nullable_string},
{assignments,{array,[{member_id,string},{assignment,bytes}]}}];
req(sync_group, 4) ->
[{group_id,compact_string},
{generation_id,int32},
{member_id,compact_string},
{group_instance_id,compact_nullable_string},
{assignments,{compact_array,[{member_id,compact_string},
{assignment,compact_bytes},
{tagged_fields,tagged_fields}]}},
{tagged_fields,tagged_fields}];
req(describe_groups, V) when V >= 0, V =< 2 ->
[{groups,{array,string}}];
req(describe_groups, V) when V >= 3, V =< 4 ->
[{groups,{array,string}},{include_authorized_operations,boolean}];
req(describe_groups, 5) ->
[{groups,{compact_array,compact_string}},
{include_authorized_operations,boolean},
{tagged_fields,tagged_fields}];
req(list_groups, V) when V >= 0, V =< 2 ->
[];
req(list_groups, 3) ->
[{tagged_fields,tagged_fields}];
req(sasl_handshake, V) when V >= 0, V =< 1 ->
[{mechanism,string}];
req(api_versions, V) when V >= 0, V =< 2 ->
[];
req(api_versions, 3) ->
[{client_software_name,compact_string},
{client_software_version,compact_string},
{tagged_fields,tagged_fields}];
req(create_topics, 0) ->
[{topics,
{array,
[{name,string},
{num_partitions,int32},
{replication_factor,int16},
{assignments,
{array,[{partition_index,int32},{broker_ids,{array,int32}}]}},
{configs,{array,[{name,string},{value,nullable_string}]}}]}},
{timeout_ms,int32}];
req(create_topics, V) when V >= 1, V =< 4 ->
[{topics,
{array,
[{name,string},
{num_partitions,int32},
{replication_factor,int16},
{assignments,
{array,[{partition_index,int32},{broker_ids,{array,int32}}]}},
{configs,{array,[{name,string},{value,nullable_string}]}}]}},
{timeout_ms,int32},
{validate_only,boolean}];
req(create_topics, 5) ->
[{topics,
{compact_array,
[{name,compact_string},
{num_partitions,int32},
{replication_factor,int16},
{assignments,
{compact_array,
[{partition_index,int32},
{broker_ids,{compact_array,int32}},
{tagged_fields,tagged_fields}]}},
{configs,
{compact_array,
[{name,compact_string},
{value,compact_nullable_string},
{tagged_fields,tagged_fields}]}},
{tagged_fields,tagged_fields}]}},
{timeout_ms,int32},
{validate_only,boolean},
{tagged_fields,tagged_fields}];
req(delete_topics, V) when V >= 0, V =< 3 ->
[{topic_names,{array,string}},{timeout_ms,int32}];
req(delete_topics, 4) ->
[{topic_names,{compact_array,compact_string}},
{timeout_ms,int32},
{tagged_fields,tagged_fields}];
req(delete_records, V) when V >= 0, V =< 1 ->
[{topics,{array,[{topic,string},
{partitions,{array,[{partition,int32},{offset,int64}]}}]}},
{timeout,int32}];
req(init_producer_id, V) when V >= 0, V =< 1 ->
[{transactional_id,nullable_string},{transaction_timeout_ms,int32}];
req(init_producer_id, 2) ->
[{transactional_id,compact_nullable_string},
{transaction_timeout_ms,int32},
{tagged_fields,tagged_fields}];
req(offset_for_leader_epoch, V) when V >= 0, V =< 1 ->
[{topics,{array,[{topic,string},
{partitions,{array,[{partition,int32},
{leader_epoch,int32}]}}]}}];
req(offset_for_leader_epoch, 2) ->
[{topics,{array,[{topic,string},
{partitions,{array,[{partition,int32},
{current_leader_epoch,int32},
{leader_epoch,int32}]}}]}}];
req(offset_for_leader_epoch, 3) ->
[{replica_id,int32},
{topics,{array,[{topic,string},
{partitions,{array,[{partition,int32},
{current_leader_epoch,int32},
{leader_epoch,int32}]}}]}}];
req(add_partitions_to_txn, V) when V >= 0, V =< 1 ->
[{transactional_id,string},
{producer_id,int64},
{producer_epoch,int16},
{topics,{array,[{topic,string},{partitions,{array,int32}}]}}];
req(add_offsets_to_txn, V) when V >= 0, V =< 1 ->
[{transactional_id,string},
{producer_id,int64},
{producer_epoch,int16},
{group_id,string}];
req(end_txn, V) when V >= 0, V =< 1 ->
[{transactional_id,string},
{producer_id,int64},
{producer_epoch,int16},
{transaction_result,boolean}];
req(txn_offset_commit, V) when V >= 0, V =< 1 ->
[{transactional_id,string},
{group_id,string},
{producer_id,int64},
{producer_epoch,int16},
{topics,
{array,
[{name,string},
{partitions,
{array,
[{partition_index,int32},
{committed_offset,int64},
{committed_metadata,nullable_string}]}}]}}];
req(txn_offset_commit, 2) ->
[{transactional_id,string},
{group_id,string},
{producer_id,int64},
{producer_epoch,int16},
{topics,
{array,
[{name,string},
{partitions,
{array,
[{partition_index,int32},
{committed_offset,int64},
{committed_leader_epoch,int32},
{committed_metadata,nullable_string}]}}]}}];
req(describe_acls, 0) ->
[{resource_type,int8},
{resource_name,nullable_string},
{principal,nullable_string},
{host,nullable_string},
{operation,int8},
{permission_type,int8}];
req(describe_acls, 1) ->
[{resource_type,int8},
{resource_name,nullable_string},
{resource_pattern_type_filter,int8},
{principal,nullable_string},
{host,nullable_string},
{operation,int8},
{permission_type,int8}];
req(create_acls, 0) ->
[{creations,{array,[{resource_type,int8},
{resource_name,string},
{principal,string},
{host,string},
{operation,int8},
{permission_type,int8}]}}];
req(create_acls, 1) ->
[{creations,{array,[{resource_type,int8},
{resource_name,string},
{resource_pattern_type,int8},
{principal,string},
{host,string},
{operation,int8},
{permission_type,int8}]}}];
req(delete_acls, 0) ->
[{filters,{array,[{resource_type,int8},
{resource_name,nullable_string},
{principal,nullable_string},
{host,nullable_string},
{operation,int8},
{permission_type,int8}]}}];
req(delete_acls, 1) ->
[{filters,{array,[{resource_type,int8},
{resource_name,nullable_string},
{resource_pattern_type_filter,int8},
{principal,nullable_string},
{host,nullable_string},
{operation,int8},
{permission_type,int8}]}}];
req(describe_configs, 0) ->
[{resources,{array,[{resource_type,int8},
{resource_name,string},
{config_names,{array,string}}]}}];
req(describe_configs, V) when V >= 1, V =< 2 ->
[{resources,{array,[{resource_type,int8},
{resource_name,string},
{config_names,{array,string}}]}},
{include_synonyms,boolean}];
req(alter_configs, V) when V >= 0, V =< 1 ->
[{resources,
{array,
[{resource_type,int8},
{resource_name,string},
{config_entries,
{array,
[{config_name,string},{config_value,nullable_string}]}}]}},
{validate_only,boolean}];
req(alter_replica_log_dirs, V) when V >= 0, V =< 1 ->
[{log_dirs,{array,[{log_dir,string},
{topics,{array,[{topic,string},
{partitions,{array,int32}}]}}]}}];
req(describe_log_dirs, V) when V >= 0, V =< 1 ->
[{topics,{array,[{topic,string},{partitions,{array,int32}}]}}];
req(sasl_authenticate, V) when V >= 0, V =< 1 ->
[{auth_bytes,bytes}];
req(create_partitions, V) when V >= 0, V =< 1 ->
[{topic_partitions,
{array,
[{topic,string},
{new_partitions,
[{count,int32},{assignment,{array,{array,int32}}}]}]}},
{timeout,int32},
{validate_only,boolean}];
req(create_delegation_token, V) when V >= 0, V =< 1 ->
[{renewers,{array,[{principal_type,string},{principal_name,string}]}},
{max_lifetime_ms,int64}];
req(create_delegation_token, 2) ->
[{renewers,{compact_array,[{principal_type,compact_string},
{principal_name,compact_string},
{tagged_fields,tagged_fields}]}},
{max_lifetime_ms,int64},
{tagged_fields,tagged_fields}];
req(renew_delegation_token, V) when V >= 0, V =< 1 ->
[{hmac,bytes},{renew_period_ms,int64}];
req(expire_delegation_token, V) when V >= 0, V =< 1 ->
[{hmac,bytes},{expiry_time_period_ms,int64}];
req(describe_delegation_token, V) when V >= 0, V =< 1 ->
[{owners,{array,[{principal_type,string},{principal_name,string}]}}];
req(delete_groups, V) when V >= 0, V =< 1 ->
[{groups_names,{array,string}}];
req(delete_groups, 2) ->
[{groups_names,{compact_array,compact_string}},
{tagged_fields,tagged_fields}];
req(elect_leaders, 0) ->
[{topic_partitions,{array,[{topic,string},{partition_id,{array,int32}}]}},
{timeout_ms,int32}];
req(elect_leaders, 1) ->
[{election_type,int8},
{topic_partitions,{array,[{topic,string},{partition_id,{array,int32}}]}},
{timeout_ms,int32}];
req(elect_leaders, 2) ->
[{election_type,int8},
{topic_partitions,{compact_array,[{topic,compact_string},
{partition_id,{compact_array,int32}},
{tagged_fields,tagged_fields}]}},
{timeout_ms,int32},
{tagged_fields,tagged_fields}];
req(incremental_alter_configs, 0) ->
[{resources,{array,[{resource_type,int8},
{resource_name,string},
{configs,{array,[{name,string},
{config_operation,int8},
{value,nullable_string}]}}]}},
{validate_only,boolean}];
req(incremental_alter_configs, 1) ->
[{resources,
{compact_array,
[{resource_type,int8},
{resource_name,compact_string},
{configs,
{compact_array,
[{name,compact_string},
{config_operation,int8},
{value,compact_nullable_string},
{tagged_fields,tagged_fields}]}},
{tagged_fields,tagged_fields}]}},
{validate_only,boolean},
{tagged_fields,tagged_fields}];
req(alter_partition_reassignments, 0) ->
[{timeout_ms,int32},
{topics,
{compact_array,
[{name,compact_string},
{partitions,
{compact_array,
[{partition_index,int32},
{replicas,{compact_array,int32}},
{tagged_fields,tagged_fields}]}},
{tagged_fields,tagged_fields}]}},
{tagged_fields,tagged_fields}];
req(list_partition_reassignments, 0) ->
[{timeout_ms,int32},
{topics,{compact_array,[{name,compact_string},
{partition_indexes,{compact_array,int32}},
{tagged_fields,tagged_fields}]}},
{tagged_fields,tagged_fields}];
req(offset_delete, 0) ->
[{group_id,string},
{topics,{array,[{name,string},
{partitions,{array,[{partition_index,int32}]}}]}}].
rsp(produce, 0) ->
[{responses,
{array,
[{topic,string},
{partition_responses,
{array,
[{partition,int32},
{error_code,int16},
{base_offset,int64}]}}]}}];
rsp(produce, 1) ->
[{responses,
{array,
[{topic,string},
{partition_responses,
{array,
[{partition,int32},
{error_code,int16},
{base_offset,int64}]}}]}},
{throttle_time_ms,int32}];
rsp(produce, V) when V >= 2, V =< 4 ->
[{responses,
{array,
[{topic,string},
{partition_responses,
{array,
[{partition,int32},
{error_code,int16},
{base_offset,int64},
{log_append_time,int64}]}}]}},
{throttle_time_ms,int32}];
rsp(produce, V) when V >= 5, V =< 7 ->
[{responses,
{array,
[{topic,string},
{partition_responses,
{array,
[{partition,int32},
{error_code,int16},
{base_offset,int64},
{log_append_time,int64},
{log_start_offset,int64}]}}]}},
{throttle_time_ms,int32}];
rsp(produce, 8) ->
[{responses,
{array,
[{topic,string},
{partition_responses,
{array,
[{partition,int32},
{error_code,int16},
{base_offset,int64},
{log_append_time,int64},
{log_start_offset,int64},
{record_errors,
{array,
[{batch_index,int32},
{batch_index_error_message,nullable_string}]}},
{error_message,nullable_string}]}}]}},
{throttle_time_ms,int32}];
rsp(fetch, 0) ->
[{responses,
{array,
[{topic,string},
{partition_responses,
{array,
[{partition_header,
[{partition,int32},
{error_code,int16},
{high_watermark,int64}]},
{record_set,records}]}}]}}];
rsp(fetch, V) when V >= 1, V =< 3 ->
[{throttle_time_ms,int32},
{responses,
{array,
[{topic,string},
{partition_responses,
{array,
[{partition_header,
[{partition,int32},
{error_code,int16},
{high_watermark,int64}]},
{record_set,records}]}}]}}];
rsp(fetch, 4) ->
[{throttle_time_ms,int32},
{responses,
{array,
[{topic,string},
{partition_responses,
{array,
[{partition_header,
[{partition,int32},
{error_code,int16},
{high_watermark,int64},
{last_stable_offset,int64},
{aborted_transactions,
{array,
[{producer_id,int64},
{first_offset,int64}]}}]},
{record_set,records}]}}]}}];
rsp(fetch, V) when V >= 5, V =< 6 ->
[{throttle_time_ms,int32},
{responses,
{array,
[{topic,string},
{partition_responses,
{array,
[{partition_header,
[{partition,int32},
{error_code,int16},
{high_watermark,int64},
{last_stable_offset,int64},
{log_start_offset,int64},
{aborted_transactions,
{array,
[{producer_id,int64},
{first_offset,int64}]}}]},
{record_set,records}]}}]}}];
rsp(fetch, V) when V >= 7, V =< 10 ->
[{throttle_time_ms,int32},
{error_code,int16},
{session_id,int32},
{responses,
{array,
[{topic,string},
{partition_responses,
{array,
[{partition_header,
[{partition,int32},
{error_code,int16},
{high_watermark,int64},
{last_stable_offset,int64},
{log_start_offset,int64},
{aborted_transactions,
{array,
[{producer_id,int64},
{first_offset,int64}]}}]},
{record_set,records}]}}]}}];
rsp(fetch, 11) ->
[{throttle_time_ms,int32},
{error_code,int16},
{session_id,int32},
{responses,
{array,
[{topic,string},
{partition_responses,
{array,
[{partition_header,
[{partition,int32},
{error_code,int16},
{high_watermark,int64},
{last_stable_offset,int64},
{log_start_offset,int64},
{aborted_transactions,
{array,
[{producer_id,int64},{first_offset,int64}]}},
{preferred_read_replica,int32}]},
{record_set,records}]}}]}}];
rsp(list_offsets, 0) ->
[{responses,
{array,
[{topic,string},
{partition_responses,
{array,
[{partition,int32},
{error_code,int16},
{offsets,{array,int64}}]}}]}}];
rsp(list_offsets, 1) ->
[{responses,
{array,
[{topic,string},
{partition_responses,
{array,
[{partition,int32},
{error_code,int16},
{timestamp,int64},
{offset,int64}]}}]}}];
rsp(list_offsets, V) when V >= 2, V =< 3 ->
[{throttle_time_ms,int32},
{responses,
{array,
[{topic,string},
{partition_responses,
{array,
[{partition,int32},
{error_code,int16},
{timestamp,int64},
{offset,int64}]}}]}}];
rsp(list_offsets, V) when V >= 4, V =< 5 ->
[{throttle_time_ms,int32},
{responses,
{array,
[{topic,string},
{partition_responses,
{array,
[{partition,int32},
{error_code,int16},
{timestamp,int64},
{offset,int64},
{leader_epoch,int32}]}}]}}];
rsp(metadata, 0) ->
[{brokers,{array,[{node_id,int32},{host,string},{port,int32}]}},
{topics,{array,[{error_code,int16},
{name,string},
{partitions,{array,[{error_code,int16},
{partition_index,int32},
{leader_id,int32},
{replica_nodes,{array,int32}},
{isr_nodes,{array,int32}}]}}]}}];
rsp(metadata, 1) ->
[{brokers,{array,[{node_id,int32},
{host,string},
{port,int32},
{rack,nullable_string}]}},
{controller_id,int32},
{topics,{array,[{error_code,int16},
{name,string},
{is_internal,boolean},
{partitions,{array,[{error_code,int16},
{partition_index,int32},
{leader_id,int32},
{replica_nodes,{array,int32}},
{isr_nodes,{array,int32}}]}}]}}];
rsp(metadata, 2) ->
[{brokers,{array,[{node_id,int32},
{host,string},
{port,int32},
{rack,nullable_string}]}},
{cluster_id,nullable_string},
{controller_id,int32},
{topics,{array,[{error_code,int16},
{name,string},
{is_internal,boolean},
{partitions,{array,[{error_code,int16},
{partition_index,int32},
{leader_id,int32},
{replica_nodes,{array,int32}},
{isr_nodes,{array,int32}}]}}]}}];
rsp(metadata, V) when V >= 3, V =< 4 ->
[{throttle_time_ms,int32},
{brokers,{array,[{node_id,int32},
{host,string},
{port,int32},
{rack,nullable_string}]}},
{cluster_id,nullable_string},
{controller_id,int32},
{topics,{array,[{error_code,int16},
{name,string},
{is_internal,boolean},
{partitions,{array,[{error_code,int16},
{partition_index,int32},
{leader_id,int32},
{replica_nodes,{array,int32}},
{isr_nodes,{array,int32}}]}}]}}];
rsp(metadata, V) when V >= 5, V =< 6 ->
[{throttle_time_ms,int32},
{brokers,{array,[{node_id,int32},
{host,string},
{port,int32},
{rack,nullable_string}]}},
{cluster_id,nullable_string},
{controller_id,int32},
{topics,{array,[{error_code,int16},
{name,string},
{is_internal,boolean},
{partitions,{array,[{error_code,int16},
{partition_index,int32},
{leader_id,int32},
{replica_nodes,{array,int32}},
{isr_nodes,{array,int32}},
{offline_replicas,{array,int32}}]}}]}}];
rsp(metadata, 7) ->
[{throttle_time_ms,int32},
{brokers,{array,[{node_id,int32},
{host,string},
{port,int32},
{rack,nullable_string}]}},
{cluster_id,nullable_string},
{controller_id,int32},
{topics,{array,[{error_code,int16},
{name,string},
{is_internal,boolean},
{partitions,{array,[{error_code,int16},
{partition_index,int32},
{leader_id,int32},
{leader_epoch,int32},
{replica_nodes,{array,int32}},
{isr_nodes,{array,int32}},
{offline_replicas,{array,int32}}]}}]}}];
rsp(metadata, 8) ->
[{throttle_time_ms,int32},
{brokers,{array,[{node_id,int32},
{host,string},
{port,int32},
{rack,nullable_string}]}},
{cluster_id,nullable_string},
{controller_id,int32},
{topics,{array,[{error_code,int16},
{name,string},
{is_internal,boolean},
{partitions,{array,[{error_code,int16},
{partition_index,int32},
{leader_id,int32},
{leader_epoch,int32},
{replica_nodes,{array,int32}},
{isr_nodes,{array,int32}},
{offline_replicas,{array,int32}}]}},
{topic_authorized_operations,int32}]}},
{cluster_authorized_operations,int32}];
rsp(metadata, 9) ->
[{throttle_time_ms,int32},
{brokers,
{compact_array,
[{node_id,int32},
{host,compact_string},
{port,int32},
{rack,compact_nullable_string},
{tagged_fields,tagged_fields}]}},
{cluster_id,compact_nullable_string},
{controller_id,int32},
{topics,
{compact_array,
[{error_code,int16},
{name,compact_string},
{is_internal,boolean},
{partitions,
{compact_array,
[{error_code,int16},
{partition_index,int32},
{leader_id,int32},
{leader_epoch,int32},
{replica_nodes,{compact_array,int32}},
{isr_nodes,{compact_array,int32}},
{offline_replicas,{compact_array,int32}},
{tagged_fields,tagged_fields}]}},
{topic_authorized_operations,int32},
{tagged_fields,tagged_fields}]}},
{cluster_authorized_operations,int32},
{tagged_fields,tagged_fields}];
rsp(offset_commit, V) when V >= 0, V =< 2 ->
[{topics,{array,[{name,string},
{partitions,{array,[{partition_index,int32},
{error_code,int16}]}}]}}];
rsp(offset_commit, V) when V >= 3, V =< 7 ->
[{throttle_time_ms,int32},
{topics,{array,[{name,string},
{partitions,{array,[{partition_index,int32},
{error_code,int16}]}}]}}];
rsp(offset_commit, 8) ->
[{throttle_time_ms,int32},
{topics,
{compact_array,
[{name,compact_string},
{partitions,
{compact_array,
[{partition_index,int32},
{error_code,int16},
{tagged_fields,tagged_fields}]}},
{tagged_fields,tagged_fields}]}},
{tagged_fields,tagged_fields}];
rsp(offset_fetch, V) when V >= 0, V =< 1 ->
[{topics,{array,[{name,string},
{partitions,{array,[{partition_index,int32},
{committed_offset,int64},
{metadata,nullable_string},
{error_code,int16}]}}]}}];
rsp(offset_fetch, 2) ->
[{topics,{array,[{name,string},
{partitions,{array,[{partition_index,int32},
{committed_offset,int64},
{metadata,nullable_string},
{error_code,int16}]}}]}},
{error_code,int16}];
rsp(offset_fetch, V) when V >= 3, V =< 4 ->
[{throttle_time_ms,int32},
{topics,{array,[{name,string},
{partitions,{array,[{partition_index,int32},
{committed_offset,int64},
{metadata,nullable_string},
{error_code,int16}]}}]}},
{error_code,int16}];
rsp(offset_fetch, 5) ->
[{throttle_time_ms,int32},
{topics,{array,[{name,string},
{partitions,{array,[{partition_index,int32},
{committed_offset,int64},
{committed_leader_epoch,int32},
{metadata,nullable_string},
{error_code,int16}]}}]}},
{error_code,int16}];
rsp(offset_fetch, 6) ->
[{throttle_time_ms,int32},
{topics,
{compact_array,
[{name,compact_string},
{partitions,
{compact_array,
[{partition_index,int32},
{committed_offset,int64},
{committed_leader_epoch,int32},
{metadata,compact_nullable_string},
{error_code,int16},
{tagged_fields,tagged_fields}]}},
{tagged_fields,tagged_fields}]}},
{error_code,int16},
{tagged_fields,tagged_fields}];
rsp(find_coordinator, 0) ->
[{error_code,int16},{node_id,int32},{host,string},{port,int32}];
rsp(find_coordinator, V) when V >= 1, V =< 2 ->
[{throttle_time_ms,int32},
{error_code,int16},
{error_message,nullable_string},
{node_id,int32},
{host,string},
{port,int32}];
rsp(find_coordinator, 3) ->
[{throttle_time_ms,int32},
{error_code,int16},
{error_message,compact_nullable_string},
{node_id,int32},
{host,compact_string},
{port,int32},
{tagged_fields,tagged_fields}];
rsp(join_group, V) when V >= 0, V =< 1 ->
[{error_code,int16},
{generation_id,int32},
{protocol_name,string},
{leader,string},
{member_id,string},
{members,{array,[{member_id,string},{metadata,bytes}]}}];
rsp(join_group, V) when V >= 2, V =< 4 ->
[{throttle_time_ms,int32},
{error_code,int16},
{generation_id,int32},
{protocol_name,string},
{leader,string},
{member_id,string},
{members,{array,[{member_id,string},{metadata,bytes}]}}];
rsp(join_group, 5) ->
[{throttle_time_ms,int32},
{error_code,int16},
{generation_id,int32},
{protocol_name,string},
{leader,string},
{member_id,string},
{members,{array,[{member_id,string},
{group_instance_id,nullable_string},
{metadata,bytes}]}}];
rsp(join_group, 6) ->
[{throttle_time_ms,int32},
{error_code,int16},
{generation_id,int32},
{protocol_name,compact_string},
{leader,compact_string},
{member_id,compact_string},
{members,{compact_array,[{member_id,compact_string},
{group_instance_id,compact_nullable_string},
{metadata,compact_bytes},
{tagged_fields,tagged_fields}]}},
{tagged_fields,tagged_fields}];
rsp(heartbeat, 0) ->
[{error_code,int16}];
rsp(heartbeat, V) when V >= 1, V =< 3 ->
[{throttle_time_ms,int32},{error_code,int16}];
rsp(heartbeat, 4) ->
[{throttle_time_ms,int32},{error_code,int16},{tagged_fields,tagged_fields}];
rsp(leave_group, 0) ->
[{error_code,int16}];
rsp(leave_group, V) when V >= 1, V =< 2 ->
[{throttle_time_ms,int32},{error_code,int16}];
rsp(leave_group, 3) ->
[{throttle_time_ms,int32},
{error_code,int16},
{members,{array,[{member_id,string},
{group_instance_id,nullable_string},
{error_code,int16}]}}];
rsp(leave_group, 4) ->
[{throttle_time_ms,int32},
{error_code,int16},
{members,{compact_array,[{member_id,compact_string},
{group_instance_id,compact_nullable_string},
{error_code,int16},
{tagged_fields,tagged_fields}]}},
{tagged_fields,tagged_fields}];
rsp(sync_group, 0) ->
[{error_code,int16},{assignment,bytes}];
rsp(sync_group, V) when V >= 1, V =< 3 ->
[{throttle_time_ms,int32},{error_code,int16},{assignment,bytes}];
rsp(sync_group, 4) ->
[{throttle_time_ms,int32},
{error_code,int16},
{assignment,compact_bytes},
{tagged_fields,tagged_fields}];
rsp(describe_groups, 0) ->
[{groups,{array,[{error_code,int16},
{group_id,string},
{group_state,string},
{protocol_type,string},
{protocol_data,string},
{members,{array,[{member_id,string},
{client_id,string},
{client_host,string},
{member_metadata,bytes},
{member_assignment,bytes}]}}]}}];
rsp(describe_groups, V) when V >= 1, V =< 2 ->
[{throttle_time_ms,int32},
{groups,{array,[{error_code,int16},
{group_id,string},
{group_state,string},
{protocol_type,string},
{protocol_data,string},
{members,{array,[{member_id,string},
{client_id,string},
{client_host,string},
{member_metadata,bytes},
{member_assignment,bytes}]}}]}}];
rsp(describe_groups, 3) ->
[{throttle_time_ms,int32},
{groups,{array,[{error_code,int16},
{group_id,string},
{group_state,string},
{protocol_type,string},
{protocol_data,string},
{members,{array,[{member_id,string},
{client_id,string},
{client_host,string},
{member_metadata,bytes},
{member_assignment,bytes}]}},
{authorized_operations,int32}]}}];
rsp(describe_groups, 4) ->
[{throttle_time_ms,int32},
{groups,{array,[{error_code,int16},
{group_id,string},
{group_state,string},
{protocol_type,string},
{protocol_data,string},
{members,{array,[{member_id,string},
{group_instance_id,nullable_string},
{client_id,string},
{client_host,string},
{member_metadata,bytes},
{member_assignment,bytes}]}},
{authorized_operations,int32}]}}];
rsp(describe_groups, 5) ->
[{throttle_time_ms,int32},
{groups,
{compact_array,
[{error_code,int16},
{group_id,compact_string},
{group_state,compact_string},
{protocol_type,compact_string},
{protocol_data,compact_string},
{members,
{compact_array,
[{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},
{tagged_fields,tagged_fields}]}},
{authorized_operations,int32},
{tagged_fields,tagged_fields}]}},
{tagged_fields,tagged_fields}];
rsp(list_groups, 0) ->
[{error_code,int16},
{groups,{array,[{group_id,string},{protocol_type,string}]}}];
rsp(list_groups, V) when V >= 1, V =< 2 ->
[{throttle_time_ms,int32},
{error_code,int16},
{groups,{array,[{group_id,string},{protocol_type,string}]}}];
rsp(list_groups, 3) ->
[{throttle_time_ms,int32},
{error_code,int16},
{groups,{compact_array,[{group_id,compact_string},
{protocol_type,compact_string},
{tagged_fields,tagged_fields}]}},
{tagged_fields,tagged_fields}];
rsp(sasl_handshake, V) when V >= 0, V =< 1 ->
[{error_code,int16},{mechanisms,{array,string}}];
rsp(api_versions, 0) ->
[{error_code,int16},
{api_keys,{array,[{api_key,int16},
{min_version,int16},
{max_version,int16}]}}];
rsp(api_versions, V) when V >= 1, V =< 2 ->
[{error_code,int16},
{api_keys,{array,[{api_key,int16},
{min_version,int16},
{max_version,int16}]}},
{throttle_time_ms,int32}];
rsp(api_versions, 3) ->
[{error_code,int16},
{api_keys,{compact_array,[{api_key,int16},
{min_version,int16},
{max_version,int16},
{tagged_fields,tagged_fields}]}},
{throttle_time_ms,int32},
{tagged_fields,tagged_fields}];
rsp(create_topics, 0) ->
[{topics,{array,[{name,string},{error_code,int16}]}}];
rsp(create_topics, 1) ->
[{topics,{array,[{name,string},
{error_code,int16},
{error_message,nullable_string}]}}];
rsp(create_topics, V) when V >= 2, V =< 4 ->
[{throttle_time_ms,int32},
{topics,{array,[{name,string},
{error_code,int16},
{error_message,nullable_string}]}}];
rsp(create_topics, 5) ->
[{throttle_time_ms,int32},
{topics,
{compact_array,
[{name,compact_string},
{error_code,int16},
{error_message,compact_nullable_string},
{num_partitions,int32},
{replication_factor,int16},
{configs,
{compact_array,
[{name,compact_string},
{value,compact_nullable_string},
{read_only,boolean},
{config_source,int8},
{is_sensitive,boolean},
{tagged_fields,tagged_fields}]}},
{tagged_fields,tagged_fields}]}},
{tagged_fields,tagged_fields}];
rsp(delete_topics, 0) ->
[{responses,{array,[{name,string},{error_code,int16}]}}];
rsp(delete_topics, V) when V >= 1, V =< 3 ->
[{throttle_time_ms,int32},
{responses,{array,[{name,string},{error_code,int16}]}}];
rsp(delete_topics, 4) ->
[{throttle_time_ms,int32},
{responses,{compact_array,[{name,compact_string},
{error_code,int16},
{tagged_fields,tagged_fields}]}},
{tagged_fields,tagged_fields}];
rsp(delete_records, V) when V >= 0, V =< 1 ->
[{throttle_time_ms,int32},
{topics,{array,[{topic,string},
{partitions,{array,[{partition,int32},
{low_watermark,int64},
{error_code,int16}]}}]}}];
rsp(init_producer_id, V) when V >= 0, V =< 1 ->
[{throttle_time_ms,int32},
{error_code,int16},
{producer_id,int64},
{producer_epoch,int16}];
rsp(init_producer_id, 2) ->
[{throttle_time_ms,int32},
{error_code,int16},
{producer_id,int64},
{producer_epoch,int16},
{tagged_fields,tagged_fields}];
rsp(offset_for_leader_epoch, 0) ->
[{topics,{array,[{topic,string},
{partitions,{array,[{error_code,int16},
{partition,int32},
{end_offset,int64}]}}]}}];
rsp(offset_for_leader_epoch, 1) ->
[{topics,{array,[{topic,string},
{partitions,{array,[{error_code,int16},
{partition,int32},
{leader_epoch,int32},
{end_offset,int64}]}}]}}];
rsp(offset_for_leader_epoch, V) when V >= 2, V =< 3 ->
[{throttle_time_ms,int32},
{topics,{array,[{topic,string},
{partitions,{array,[{error_code,int16},
{partition,int32},
{leader_epoch,int32},
{end_offset,int64}]}}]}}];
rsp(add_partitions_to_txn, V) when V >= 0, V =< 1 ->
[{throttle_time_ms,int32},
{errors,
{array,
[{topic,string},
{partition_errors,
{array,[{partition,int32},{error_code,int16}]}}]}}];
rsp(add_offsets_to_txn, V) when V >= 0, V =< 1 ->
[{throttle_time_ms,int32},{error_code,int16}];
rsp(end_txn, V) when V >= 0, V =< 1 ->
[{throttle_time_ms,int32},{error_code,int16}];
rsp(txn_offset_commit, V) when V >= 0, V =< 2 ->
[{throttle_time_ms,int32},
{topics,{array,[{name,string},
{partitions,{array,[{partition_index,int32},
{error_code,int16}]}}]}}];
rsp(describe_acls, 0) ->
[{throttle_time_ms,int32},
{error_code,int16},
{error_message,nullable_string},
{resources,{array,[{resource_type,int8},
{resource_name,string},
{acls,{array,[{principal,string},
{host,string},
{operation,int8},
{permission_type,int8}]}}]}}];
rsp(describe_acls, 1) ->
[{throttle_time_ms,int32},
{error_code,int16},
{error_message,nullable_string},
{resources,{array,[{resource_type,int8},
{resource_name,string},
{resource_pattern_type,int8},
{acls,{array,[{principal,string},
{host,string},
{operation,int8},
{permission_type,int8}]}}]}}];
rsp(create_acls, V) when V >= 0, V =< 1 ->
[{throttle_time_ms,int32},
{creation_responses,{array,[{error_code,int16},
{error_message,nullable_string}]}}];
rsp(delete_acls, 0) ->
[{throttle_time_ms,int32},
{filter_responses,
{array,
[{error_code,int16},
{error_message,nullable_string},
{matching_acls,
{array,
[{error_code,int16},
{error_message,nullable_string},
{resource_type,int8},
{resource_name,string},
{principal,string},
{host,string},
{operation,int8},
{permission_type,int8}]}}]}}];
rsp(delete_acls, 1) ->
[{throttle_time_ms,int32},
{filter_responses,
{array,
[{error_code,int16},
{error_message,nullable_string},
{matching_acls,
{array,
[{error_code,int16},
{error_message,nullable_string},
{resource_type,int8},
{resource_name,string},
{resource_pattern_type,int8},
{principal,string},
{host,string},
{operation,int8},
{permission_type,int8}]}}]}}];
rsp(describe_configs, 0) ->
[{throttle_time_ms,int32},
{resources,
{array,
[{error_code,int16},
{error_message,nullable_string},
{resource_type,int8},
{resource_name,string},
{config_entries,
{array,
[{config_name,string},
{config_value,nullable_string},
{read_only,boolean},
{is_default,boolean},
{is_sensitive,boolean}]}}]}}];
rsp(describe_configs, V) when V >= 1, V =< 2 ->
[{throttle_time_ms,int32},
{resources,
{array,
[{error_code,int16},
{error_message,nullable_string},
{resource_type,int8},
{resource_name,string},
{config_entries,
{array,
[{config_name,string},
{config_value,nullable_string},
{read_only,boolean},
{config_source,int8},
{is_sensitive,boolean},
{config_synonyms,
{array,
[{config_name,string},
{config_value,nullable_string},
{config_source,int8}]}}]}}]}}];
rsp(alter_configs, V) when V >= 0, V =< 1 ->
[{throttle_time_ms,int32},
{resources,{array,[{error_code,int16},
{error_message,nullable_string},
{resource_type,int8},
{resource_name,string}]}}];
rsp(alter_replica_log_dirs, V) when V >= 0, V =< 1 ->
[{throttle_time_ms,int32},
{topics,{array,[{topic,string},
{partitions,{array,[{partition,int32},
{error_code,int16}]}}]}}];
rsp(describe_log_dirs, V) when V >= 0, V =< 1 ->
[{throttle_time_ms,int32},
{log_dirs,
{array,
[{error_code,int16},
{log_dir,string},
{topics,
{array,
[{topic,string},
{partitions,
{array,
[{partition,int32},
{size,int64},
{offset_lag,int64},
{is_future,boolean}]}}]}}]}}];
rsp(sasl_authenticate, 0) ->
[{error_code,int16},{error_message,nullable_string},{auth_bytes,bytes}];
rsp(sasl_authenticate, 1) ->
[{error_code,int16},
{error_message,nullable_string},
{auth_bytes,bytes},
{session_lifetime_ms,int64}];
rsp(create_partitions, V) when V >= 0, V =< 1 ->
[{throttle_time_ms,int32},
{topic_errors,{array,[{topic,string},
{error_code,int16},
{error_message,nullable_string}]}}];
rsp(create_delegation_token, V) when V >= 0, V =< 1 ->
[{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}];
rsp(create_delegation_token, 2) ->
[{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},
{tagged_fields,tagged_fields}];
rsp(renew_delegation_token, V) when V >= 0, V =< 1 ->
[{error_code,int16},{expiry_timestamp_ms,int64},{throttle_time_ms,int32}];
rsp(expire_delegation_token, V) when V >= 0, V =< 1 ->
[{error_code,int16},{expiry_timestamp_ms,int64},{throttle_time_ms,int32}];
rsp(describe_delegation_token, V) when V >= 0, V =< 1 ->
[{error_code,int16},
{tokens,{array,[{principal_type,string},
{principal_name,string},
{issue_timestamp,int64},
{expiry_timestamp,int64},
{max_timestamp,int64},
{token_id,string},
{hmac,bytes},
{renewers,{array,[{principal_type,string},
{principal_name,string}]}}]}},
{throttle_time_ms,int32}];
rsp(delete_groups, V) when V >= 0, V =< 1 ->
[{throttle_time_ms,int32},
{results,{array,[{group_id,string},{error_code,int16}]}}];
rsp(delete_groups, 2) ->
[{throttle_time_ms,int32},
{results,{compact_array,[{group_id,compact_string},
{error_code,int16},
{tagged_fields,tagged_fields}]}},
{tagged_fields,tagged_fields}];
rsp(elect_leaders, 0) ->
[{throttle_time_ms,int32},
{replica_election_results,
{array,
[{topic,string},
{partition_result,
{array,
[{partition_id,int32},
{error_code,int16},
{error_message,nullable_string}]}}]}}];
rsp(elect_leaders, 1) ->
[{throttle_time_ms,int32},
{error_code,int16},
{replica_election_results,
{array,
[{topic,string},
{partition_result,
{array,
[{partition_id,int32},
{error_code,int16},
{error_message,nullable_string}]}}]}}];
rsp(elect_leaders, 2) ->
[{throttle_time_ms,int32},
{error_code,int16},
{replica_election_results,
{compact_array,
[{topic,compact_string},
{partition_result,
{compact_array,
[{partition_id,int32},
{error_code,int16},
{error_message,compact_nullable_string},
{tagged_fields,tagged_fields}]}},
{tagged_fields,tagged_fields}]}},
{tagged_fields,tagged_fields}];
rsp(incremental_alter_configs, 0) ->
[{throttle_time_ms,int32},
{responses,{array,[{error_code,int16},
{error_message,nullable_string},
{resource_type,int8},
{resource_name,string}]}}];
rsp(incremental_alter_configs, 1) ->
[{throttle_time_ms,int32},
{responses,{compact_array,[{error_code,int16},
{error_message,compact_nullable_string},
{resource_type,int8},
{resource_name,compact_string},
{tagged_fields,tagged_fields}]}},
{tagged_fields,tagged_fields}];
rsp(alter_partition_reassignments, 0) ->
[{throttle_time_ms,int32},
{error_code,int16},
{error_message,compact_nullable_string},
{responses,
{compact_array,
[{name,compact_string},
{partitions,
{compact_array,
[{partition_index,int32},
{error_code,int16},
{error_message,compact_nullable_string},
{tagged_fields,tagged_fields}]}},
{tagged_fields,tagged_fields}]}},
{tagged_fields,tagged_fields}];
rsp(list_partition_reassignments, 0) ->
[{throttle_time_ms,int32},
{error_code,int16},
{error_message,compact_nullable_string},
{topics,
{compact_array,
[{name,compact_string},
{partitions,
{compact_array,
[{partition_index,int32},
{replicas,{compact_array,int32}},
{adding_replicas,{compact_array,int32}},
{removing_replicas,{compact_array,int32}},
{tagged_fields,tagged_fields}]}},
{tagged_fields,tagged_fields}]}},
{tagged_fields,tagged_fields}];
rsp(offset_delete, 0) ->
[{error_code,int16},
{throttle_time_ms,int32},
{topics,{array,[{name,string},
{partitions,{array,[{partition_index,int32},
{error_code,int16}]}}]}}].
ec(0) -> no_error;
ec(-1) -> unknown_server_error;
ec(1) -> offset_out_of_range;
ec(2) -> corrupt_message;
ec(3) -> unknown_topic_or_partition;
ec(4) -> invalid_fetch_size;
ec(5) -> leader_not_available;
ec(6) -> not_leader_for_partition;
ec(7) -> request_timed_out;
ec(8) -> broker_not_available;
ec(9) -> replica_not_available;
ec(10) -> message_too_large;
ec(11) -> stale_controller_epoch;
ec(12) -> offset_metadata_too_large;
ec(13) -> network_exception;
ec(14) -> coordinator_load_in_progress;
ec(15) -> coordinator_not_available;
ec(16) -> not_coordinator;
ec(17) -> invalid_topic_exception;
ec(18) -> record_list_too_large;
ec(19) -> not_enough_replicas;
ec(20) -> not_enough_replicas_after_append;
ec(21) -> invalid_required_acks;
ec(22) -> illegal_generation;
ec(23) -> inconsistent_group_protocol;
ec(24) -> invalid_group_id;
ec(25) -> unknown_member_id;
ec(26) -> invalid_session_timeout;
ec(27) -> rebalance_in_progress;
ec(28) -> invalid_commit_offset_size;
ec(29) -> topic_authorization_failed;
ec(30) -> group_authorization_failed;
ec(31) -> cluster_authorization_failed;
ec(32) -> invalid_timestamp;
ec(33) -> unsupported_sasl_mechanism;
ec(34) -> illegal_sasl_state;
ec(35) -> unsupported_version;
ec(36) -> topic_already_exists;
ec(37) -> invalid_partitions;
ec(38) -> invalid_replication_factor;
ec(39) -> invalid_replica_assignment;
ec(40) -> invalid_config;
ec(41) -> not_controller;
ec(42) -> invalid_request;
ec(43) -> unsupported_for_message_format;
ec(44) -> policy_violation;
ec(45) -> out_of_order_sequence_number;
ec(46) -> duplicate_sequence_number;
ec(47) -> invalid_producer_epoch;
ec(48) -> invalid_txn_state;
ec(49) -> invalid_producer_id_mapping;
ec(50) -> invalid_transaction_timeout;
ec(51) -> concurrent_transactions;
ec(52) -> transaction_coordinator_fenced;
ec(53) -> transactional_id_authorization_failed;
ec(54) -> security_disabled;
ec(55) -> operation_not_attempted;
ec(56) -> kafka_storage_error;
ec(57) -> log_dir_not_found;
ec(58) -> sasl_authentication_failed;
ec(59) -> unknown_producer_id;
ec(60) -> reassignment_in_progress;
ec(61) -> delegation_token_auth_disabled;
ec(62) -> delegation_token_not_found;
ec(63) -> delegation_token_owner_mismatch;
ec(64) -> delegation_token_request_not_allowed;
ec(65) -> delegation_token_authorization_failed;
ec(66) -> delegation_token_expired;
ec(67) -> invalid_principal_type;
ec(68) -> non_empty_group;
ec(69) -> group_id_not_found;
ec(70) -> fetch_session_id_not_found;
ec(71) -> invalid_fetch_session_epoch;
ec(72) -> listener_not_found;
ec(73) -> topic_deletion_disabled;
ec(74) -> fenced_leader_epoch;
ec(75) -> unknown_leader_epoch;
ec(76) -> unsupported_compression_type;
ec(77) -> stale_broker_epoch;
ec(78) -> offset_not_available;
ec(79) -> member_id_required;
ec(80) -> preferred_leader_not_available;
ec(81) -> group_max_size_reached;
ec(82) -> fenced_instance_id;
ec(83) -> eligible_leaders_not_available;
ec(84) -> election_not_needed;
ec(85) -> no_reassignment_in_progress;
ec(86) -> group_subscribed_to_topic;
ec(87) -> invalid_record;
ec(88) -> unstable_offset_commit.