Skip to main content

kacrab_protocol/
generated.rs

1//! Generated Kafka protocol message types — DO NOT EDIT
2#![allow(
3    missing_docs,
4    unused_imports,
5    ambiguous_glob_reexports,
6    clippy::all,
7    clippy::pedantic,
8    clippy::nursery,
9    clippy::arithmetic_side_effects,
10    reason = "Generated protocol modules mirror Kafka's schema shape and intentionally trade \
11              hand-written lint style for reproducible wire-code output."
12)]
13pub const KAFKA_PROTOCOL_SOURCE_REF: &str = "apache/kafka@4.3.0";
14pub mod error_code;
15pub use error_code::ErrorCode;
16pub mod add_offsets_to_txn_request;
17pub mod add_offsets_to_txn_response;
18pub mod add_partitions_to_txn_request;
19pub mod add_partitions_to_txn_response;
20pub mod add_raft_voter_request;
21pub mod add_raft_voter_response;
22pub mod allocate_producer_ids_request;
23pub mod allocate_producer_ids_response;
24pub mod alter_client_quotas_request;
25pub mod alter_client_quotas_response;
26pub mod alter_configs_request;
27pub mod alter_configs_response;
28pub mod alter_partition_reassignments_request;
29pub mod alter_partition_reassignments_response;
30pub mod alter_partition_request;
31pub mod alter_partition_response;
32pub mod alter_replica_log_dirs_request;
33pub mod alter_replica_log_dirs_response;
34pub mod alter_share_group_offsets_request;
35pub mod alter_share_group_offsets_response;
36pub mod alter_user_scram_credentials_request;
37pub mod alter_user_scram_credentials_response;
38pub mod api_versions_request;
39pub mod api_versions_response;
40pub mod assign_replicas_to_dirs_request;
41pub mod assign_replicas_to_dirs_response;
42pub mod begin_quorum_epoch_request;
43pub mod begin_quorum_epoch_response;
44pub mod broker_heartbeat_request;
45pub mod broker_heartbeat_response;
46pub mod broker_registration_request;
47pub mod broker_registration_response;
48pub mod consumer_group_describe_request;
49pub mod consumer_group_describe_response;
50pub mod consumer_group_heartbeat_request;
51pub mod consumer_group_heartbeat_response;
52pub mod consumer_protocol_assignment;
53pub mod consumer_protocol_subscription;
54pub mod control_record_type_schema;
55pub mod controlled_shutdown_request;
56pub mod controlled_shutdown_response;
57pub mod controller_registration_request;
58pub mod controller_registration_response;
59pub mod create_acls_request;
60pub mod create_acls_response;
61pub mod create_delegation_token_request;
62pub mod create_delegation_token_response;
63pub mod create_partitions_request;
64pub mod create_partitions_response;
65pub mod create_topics_request;
66pub mod create_topics_response;
67pub mod default_principal_data;
68pub mod delete_acls_request;
69pub mod delete_acls_response;
70pub mod delete_groups_request;
71pub mod delete_groups_response;
72pub mod delete_records_request;
73pub mod delete_records_response;
74pub mod delete_share_group_offsets_request;
75pub mod delete_share_group_offsets_response;
76pub mod delete_share_group_state_request;
77pub mod delete_share_group_state_response;
78pub mod delete_topics_request;
79pub mod delete_topics_response;
80pub mod describe_acls_request;
81pub mod describe_acls_response;
82pub mod describe_client_quotas_request;
83pub mod describe_client_quotas_response;
84pub mod describe_cluster_request;
85pub mod describe_cluster_response;
86pub mod describe_configs_request;
87pub mod describe_configs_response;
88pub mod describe_delegation_token_request;
89pub mod describe_delegation_token_response;
90pub mod describe_groups_request;
91pub mod describe_groups_response;
92pub mod describe_log_dirs_request;
93pub mod describe_log_dirs_response;
94pub mod describe_producers_request;
95pub mod describe_producers_response;
96pub mod describe_quorum_request;
97pub mod describe_quorum_response;
98pub mod describe_share_group_offsets_request;
99pub mod describe_share_group_offsets_response;
100pub mod describe_topic_partitions_request;
101pub mod describe_topic_partitions_response;
102pub mod describe_transactions_request;
103pub mod describe_transactions_response;
104pub mod describe_user_scram_credentials_request;
105pub mod describe_user_scram_credentials_response;
106pub mod elect_leaders_request;
107pub mod elect_leaders_response;
108pub mod end_quorum_epoch_request;
109pub mod end_quorum_epoch_response;
110pub mod end_txn_marker;
111pub mod end_txn_request;
112pub mod end_txn_response;
113pub mod envelope_request;
114pub mod envelope_response;
115pub mod expire_delegation_token_request;
116pub mod expire_delegation_token_response;
117pub mod fetch_request;
118pub mod fetch_response;
119pub mod fetch_snapshot_request;
120pub mod fetch_snapshot_response;
121pub mod find_coordinator_request;
122pub mod find_coordinator_response;
123pub mod get_telemetry_subscriptions_request;
124pub mod get_telemetry_subscriptions_response;
125pub mod heartbeat_request;
126pub mod heartbeat_response;
127pub mod incremental_alter_configs_request;
128pub mod incremental_alter_configs_response;
129pub mod init_producer_id_request;
130pub mod init_producer_id_response;
131pub mod initialize_share_group_state_request;
132pub mod initialize_share_group_state_response;
133pub mod join_group_request;
134pub mod join_group_response;
135pub mod k_raft_version_record;
136pub mod leader_and_isr_request;
137pub mod leader_and_isr_response;
138pub mod leader_change_message;
139pub mod leave_group_request;
140pub mod leave_group_response;
141pub mod list_config_resources_request;
142pub mod list_config_resources_response;
143pub mod list_groups_request;
144pub mod list_groups_response;
145pub mod list_offsets_request;
146pub mod list_offsets_response;
147pub mod list_partition_reassignments_request;
148pub mod list_partition_reassignments_response;
149pub mod list_transactions_request;
150pub mod list_transactions_response;
151pub mod metadata_request;
152pub mod metadata_response;
153pub mod offset_commit_request;
154pub mod offset_commit_response;
155pub mod offset_delete_request;
156pub mod offset_delete_response;
157pub mod offset_fetch_request;
158pub mod offset_fetch_response;
159pub mod offset_for_leader_epoch_request;
160pub mod offset_for_leader_epoch_response;
161pub mod produce_request;
162pub mod produce_response;
163pub mod push_telemetry_request;
164pub mod push_telemetry_response;
165pub mod read_share_group_state_request;
166pub mod read_share_group_state_response;
167pub mod read_share_group_state_summary_request;
168pub mod read_share_group_state_summary_response;
169pub mod remove_raft_voter_request;
170pub mod remove_raft_voter_response;
171pub mod renew_delegation_token_request;
172pub mod renew_delegation_token_response;
173pub mod request_header;
174pub mod response_header;
175pub mod sasl_authenticate_request;
176pub mod sasl_authenticate_response;
177pub mod sasl_handshake_request;
178pub mod sasl_handshake_response;
179pub mod share_acknowledge_request;
180pub mod share_acknowledge_response;
181pub mod share_fetch_request;
182pub mod share_fetch_response;
183pub mod share_group_describe_request;
184pub mod share_group_describe_response;
185pub mod share_group_heartbeat_request;
186pub mod share_group_heartbeat_response;
187pub mod snapshot_footer_record;
188pub mod snapshot_header_record;
189pub mod stop_replica_request;
190pub mod stop_replica_response;
191pub mod streams_group_describe_request;
192pub mod streams_group_describe_response;
193pub mod streams_group_heartbeat_request;
194pub mod streams_group_heartbeat_response;
195pub mod sync_group_request;
196pub mod sync_group_response;
197pub mod txn_offset_commit_request;
198pub mod txn_offset_commit_response;
199pub mod unregister_broker_request;
200pub mod unregister_broker_response;
201pub mod update_features_request;
202pub mod update_features_response;
203pub mod update_metadata_request;
204pub mod update_metadata_response;
205pub mod update_raft_voter_request;
206pub mod update_raft_voter_response;
207pub mod vote_request;
208pub mod vote_response;
209pub mod voters_record;
210pub mod write_share_group_state_request;
211pub mod write_share_group_state_response;
212pub mod write_txn_markers_request;
213pub mod write_txn_markers_response;
214pub use add_offsets_to_txn_request::*;
215pub use add_offsets_to_txn_response::*;
216pub use add_partitions_to_txn_request::*;
217pub use add_partitions_to_txn_response::*;
218pub use add_raft_voter_request::*;
219pub use add_raft_voter_response::*;
220pub use allocate_producer_ids_request::*;
221pub use allocate_producer_ids_response::*;
222pub use alter_client_quotas_request::*;
223pub use alter_client_quotas_response::*;
224pub use alter_configs_request::*;
225pub use alter_configs_response::*;
226pub use alter_partition_reassignments_request::*;
227pub use alter_partition_reassignments_response::*;
228pub use alter_partition_request::*;
229pub use alter_partition_response::*;
230pub use alter_replica_log_dirs_request::*;
231pub use alter_replica_log_dirs_response::*;
232pub use alter_share_group_offsets_request::*;
233pub use alter_share_group_offsets_response::*;
234pub use alter_user_scram_credentials_request::*;
235pub use alter_user_scram_credentials_response::*;
236pub use api_versions_request::*;
237pub use api_versions_response::*;
238pub use assign_replicas_to_dirs_request::*;
239pub use assign_replicas_to_dirs_response::*;
240pub use begin_quorum_epoch_request::*;
241pub use begin_quorum_epoch_response::*;
242pub use broker_heartbeat_request::*;
243pub use broker_heartbeat_response::*;
244pub use broker_registration_request::*;
245pub use broker_registration_response::*;
246pub use consumer_group_describe_request::*;
247pub use consumer_group_describe_response::*;
248pub use consumer_group_heartbeat_request::*;
249pub use consumer_group_heartbeat_response::*;
250pub use consumer_protocol_assignment::*;
251pub use consumer_protocol_subscription::*;
252pub use control_record_type_schema::*;
253pub use controlled_shutdown_request::*;
254pub use controlled_shutdown_response::*;
255pub use controller_registration_request::*;
256pub use controller_registration_response::*;
257pub use create_acls_request::*;
258pub use create_acls_response::*;
259pub use create_delegation_token_request::*;
260pub use create_delegation_token_response::*;
261pub use create_partitions_request::*;
262pub use create_partitions_response::*;
263pub use create_topics_request::*;
264pub use create_topics_response::*;
265pub use default_principal_data::*;
266pub use delete_acls_request::*;
267pub use delete_acls_response::*;
268pub use delete_groups_request::*;
269pub use delete_groups_response::*;
270pub use delete_records_request::*;
271pub use delete_records_response::*;
272pub use delete_share_group_offsets_request::*;
273pub use delete_share_group_offsets_response::*;
274pub use delete_share_group_state_request::*;
275pub use delete_share_group_state_response::*;
276pub use delete_topics_request::*;
277pub use delete_topics_response::*;
278pub use describe_acls_request::*;
279pub use describe_acls_response::*;
280pub use describe_client_quotas_request::*;
281pub use describe_client_quotas_response::*;
282pub use describe_cluster_request::*;
283pub use describe_cluster_response::*;
284pub use describe_configs_request::*;
285pub use describe_configs_response::*;
286pub use describe_delegation_token_request::*;
287pub use describe_delegation_token_response::*;
288pub use describe_groups_request::*;
289pub use describe_groups_response::*;
290pub use describe_log_dirs_request::*;
291pub use describe_log_dirs_response::*;
292pub use describe_producers_request::*;
293pub use describe_producers_response::*;
294pub use describe_quorum_request::*;
295pub use describe_quorum_response::*;
296pub use describe_share_group_offsets_request::*;
297pub use describe_share_group_offsets_response::*;
298pub use describe_topic_partitions_request::*;
299pub use describe_topic_partitions_response::*;
300pub use describe_transactions_request::*;
301pub use describe_transactions_response::*;
302pub use describe_user_scram_credentials_request::*;
303pub use describe_user_scram_credentials_response::*;
304pub use elect_leaders_request::*;
305pub use elect_leaders_response::*;
306pub use end_quorum_epoch_request::*;
307pub use end_quorum_epoch_response::*;
308pub use end_txn_marker::*;
309pub use end_txn_request::*;
310pub use end_txn_response::*;
311pub use envelope_request::*;
312pub use envelope_response::*;
313pub use expire_delegation_token_request::*;
314pub use expire_delegation_token_response::*;
315pub use fetch_request::*;
316pub use fetch_response::*;
317pub use fetch_snapshot_request::*;
318pub use fetch_snapshot_response::*;
319pub use find_coordinator_request::*;
320pub use find_coordinator_response::*;
321pub use get_telemetry_subscriptions_request::*;
322pub use get_telemetry_subscriptions_response::*;
323pub use heartbeat_request::*;
324pub use heartbeat_response::*;
325pub use incremental_alter_configs_request::*;
326pub use incremental_alter_configs_response::*;
327pub use init_producer_id_request::*;
328pub use init_producer_id_response::*;
329pub use initialize_share_group_state_request::*;
330pub use initialize_share_group_state_response::*;
331pub use join_group_request::*;
332pub use join_group_response::*;
333pub use k_raft_version_record::*;
334pub use leader_and_isr_request::*;
335pub use leader_and_isr_response::*;
336pub use leader_change_message::*;
337pub use leave_group_request::*;
338pub use leave_group_response::*;
339pub use list_config_resources_request::*;
340pub use list_config_resources_response::*;
341pub use list_groups_request::*;
342pub use list_groups_response::*;
343pub use list_offsets_request::*;
344pub use list_offsets_response::*;
345pub use list_partition_reassignments_request::*;
346pub use list_partition_reassignments_response::*;
347pub use list_transactions_request::*;
348pub use list_transactions_response::*;
349pub use metadata_request::*;
350pub use metadata_response::*;
351pub use offset_commit_request::*;
352pub use offset_commit_response::*;
353pub use offset_delete_request::*;
354pub use offset_delete_response::*;
355pub use offset_fetch_request::*;
356pub use offset_fetch_response::*;
357pub use offset_for_leader_epoch_request::*;
358pub use offset_for_leader_epoch_response::*;
359pub use produce_request::*;
360pub use produce_response::*;
361pub use push_telemetry_request::*;
362pub use push_telemetry_response::*;
363pub use read_share_group_state_request::*;
364pub use read_share_group_state_response::*;
365pub use read_share_group_state_summary_request::*;
366pub use read_share_group_state_summary_response::*;
367pub use remove_raft_voter_request::*;
368pub use remove_raft_voter_response::*;
369pub use renew_delegation_token_request::*;
370pub use renew_delegation_token_response::*;
371pub use request_header::*;
372pub use response_header::*;
373pub use sasl_authenticate_request::*;
374pub use sasl_authenticate_response::*;
375pub use sasl_handshake_request::*;
376pub use sasl_handshake_response::*;
377pub use share_acknowledge_request::*;
378pub use share_acknowledge_response::*;
379pub use share_fetch_request::*;
380pub use share_fetch_response::*;
381pub use share_group_describe_request::*;
382pub use share_group_describe_response::*;
383pub use share_group_heartbeat_request::*;
384pub use share_group_heartbeat_response::*;
385pub use snapshot_footer_record::*;
386pub use snapshot_header_record::*;
387pub use stop_replica_request::*;
388pub use stop_replica_response::*;
389pub use streams_group_describe_request::*;
390pub use streams_group_describe_response::*;
391pub use streams_group_heartbeat_request::*;
392pub use streams_group_heartbeat_response::*;
393pub use sync_group_request::*;
394pub use sync_group_response::*;
395pub use txn_offset_commit_request::*;
396pub use txn_offset_commit_response::*;
397pub use unregister_broker_request::*;
398pub use unregister_broker_response::*;
399pub use update_features_request::*;
400pub use update_features_response::*;
401pub use update_metadata_request::*;
402pub use update_metadata_response::*;
403pub use update_raft_voter_request::*;
404pub use update_raft_voter_response::*;
405pub use vote_request::*;
406pub use vote_response::*;
407pub use voters_record::*;
408pub use write_share_group_state_request::*;
409pub use write_share_group_state_response::*;
410pub use write_txn_markers_request::*;
411pub use write_txn_markers_response::*;
412/// Kafka API keys for request dispatch.
413#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
414#[repr(i16)]
415pub enum ApiKey {
416    Produce = 0,
417    Fetch = 1,
418    ListOffsets = 2,
419    Metadata = 3,
420    LeaderAndIsr = 4,
421    StopReplica = 5,
422    UpdateMetadata = 6,
423    ControlledShutdown = 7,
424    OffsetCommit = 8,
425    OffsetFetch = 9,
426    FindCoordinator = 10,
427    JoinGroup = 11,
428    Heartbeat = 12,
429    LeaveGroup = 13,
430    SyncGroup = 14,
431    DescribeGroups = 15,
432    ListGroups = 16,
433    SaslHandshake = 17,
434    ApiVersions = 18,
435    CreateTopics = 19,
436    DeleteTopics = 20,
437    DeleteRecords = 21,
438    InitProducerId = 22,
439    OffsetForLeaderEpoch = 23,
440    AddPartitionsToTxn = 24,
441    AddOffsetsToTxn = 25,
442    EndTxn = 26,
443    WriteTxnMarkers = 27,
444    TxnOffsetCommit = 28,
445    DescribeAcls = 29,
446    CreateAcls = 30,
447    DeleteAcls = 31,
448    DescribeConfigs = 32,
449    AlterConfigs = 33,
450    AlterReplicaLogDirs = 34,
451    DescribeLogDirs = 35,
452    SaslAuthenticate = 36,
453    CreatePartitions = 37,
454    CreateDelegationToken = 38,
455    RenewDelegationToken = 39,
456    ExpireDelegationToken = 40,
457    DescribeDelegationToken = 41,
458    DeleteGroups = 42,
459    ElectLeaders = 43,
460    IncrementalAlterConfigs = 44,
461    AlterPartitionReassignments = 45,
462    ListPartitionReassignments = 46,
463    OffsetDelete = 47,
464    DescribeClientQuotas = 48,
465    AlterClientQuotas = 49,
466    DescribeUserScramCredentials = 50,
467    AlterUserScramCredentials = 51,
468    Vote = 52,
469    BeginQuorumEpoch = 53,
470    EndQuorumEpoch = 54,
471    DescribeQuorum = 55,
472    AlterPartition = 56,
473    UpdateFeatures = 57,
474    Envelope = 58,
475    FetchSnapshot = 59,
476    DescribeCluster = 60,
477    DescribeProducers = 61,
478    BrokerRegistration = 62,
479    BrokerHeartbeat = 63,
480    UnregisterBroker = 64,
481    DescribeTransactions = 65,
482    ListTransactions = 66,
483    AllocateProducerIds = 67,
484    ConsumerGroupHeartbeat = 68,
485    ConsumerGroupDescribe = 69,
486    ControllerRegistration = 70,
487    GetTelemetrySubscriptions = 71,
488    PushTelemetry = 72,
489    AssignReplicasToDirs = 73,
490    ListConfigResources = 74,
491    DescribeTopicPartitions = 75,
492    ShareGroupHeartbeat = 76,
493    ShareGroupDescribe = 77,
494    ShareFetch = 78,
495    ShareAcknowledge = 79,
496    AddRaftVoter = 80,
497    RemoveRaftVoter = 81,
498    UpdateRaftVoter = 82,
499    InitializeShareGroupState = 83,
500    ReadShareGroupState = 84,
501    WriteShareGroupState = 85,
502    DeleteShareGroupState = 86,
503    ReadShareGroupStateSummary = 87,
504    StreamsGroupHeartbeat = 88,
505    StreamsGroupDescribe = 89,
506    DescribeShareGroupOffsets = 90,
507    AlterShareGroupOffsets = 91,
508    DeleteShareGroupOffsets = 92,
509}
510impl ApiKey {
511    pub fn from_i16(value: i16) -> Option<Self> {
512        match value {
513            0 => Some(ApiKey::Produce),
514            1 => Some(ApiKey::Fetch),
515            2 => Some(ApiKey::ListOffsets),
516            3 => Some(ApiKey::Metadata),
517            4 => Some(ApiKey::LeaderAndIsr),
518            5 => Some(ApiKey::StopReplica),
519            6 => Some(ApiKey::UpdateMetadata),
520            7 => Some(ApiKey::ControlledShutdown),
521            8 => Some(ApiKey::OffsetCommit),
522            9 => Some(ApiKey::OffsetFetch),
523            10 => Some(ApiKey::FindCoordinator),
524            11 => Some(ApiKey::JoinGroup),
525            12 => Some(ApiKey::Heartbeat),
526            13 => Some(ApiKey::LeaveGroup),
527            14 => Some(ApiKey::SyncGroup),
528            15 => Some(ApiKey::DescribeGroups),
529            16 => Some(ApiKey::ListGroups),
530            17 => Some(ApiKey::SaslHandshake),
531            18 => Some(ApiKey::ApiVersions),
532            19 => Some(ApiKey::CreateTopics),
533            20 => Some(ApiKey::DeleteTopics),
534            21 => Some(ApiKey::DeleteRecords),
535            22 => Some(ApiKey::InitProducerId),
536            23 => Some(ApiKey::OffsetForLeaderEpoch),
537            24 => Some(ApiKey::AddPartitionsToTxn),
538            25 => Some(ApiKey::AddOffsetsToTxn),
539            26 => Some(ApiKey::EndTxn),
540            27 => Some(ApiKey::WriteTxnMarkers),
541            28 => Some(ApiKey::TxnOffsetCommit),
542            29 => Some(ApiKey::DescribeAcls),
543            30 => Some(ApiKey::CreateAcls),
544            31 => Some(ApiKey::DeleteAcls),
545            32 => Some(ApiKey::DescribeConfigs),
546            33 => Some(ApiKey::AlterConfigs),
547            34 => Some(ApiKey::AlterReplicaLogDirs),
548            35 => Some(ApiKey::DescribeLogDirs),
549            36 => Some(ApiKey::SaslAuthenticate),
550            37 => Some(ApiKey::CreatePartitions),
551            38 => Some(ApiKey::CreateDelegationToken),
552            39 => Some(ApiKey::RenewDelegationToken),
553            40 => Some(ApiKey::ExpireDelegationToken),
554            41 => Some(ApiKey::DescribeDelegationToken),
555            42 => Some(ApiKey::DeleteGroups),
556            43 => Some(ApiKey::ElectLeaders),
557            44 => Some(ApiKey::IncrementalAlterConfigs),
558            45 => Some(ApiKey::AlterPartitionReassignments),
559            46 => Some(ApiKey::ListPartitionReassignments),
560            47 => Some(ApiKey::OffsetDelete),
561            48 => Some(ApiKey::DescribeClientQuotas),
562            49 => Some(ApiKey::AlterClientQuotas),
563            50 => Some(ApiKey::DescribeUserScramCredentials),
564            51 => Some(ApiKey::AlterUserScramCredentials),
565            52 => Some(ApiKey::Vote),
566            53 => Some(ApiKey::BeginQuorumEpoch),
567            54 => Some(ApiKey::EndQuorumEpoch),
568            55 => Some(ApiKey::DescribeQuorum),
569            56 => Some(ApiKey::AlterPartition),
570            57 => Some(ApiKey::UpdateFeatures),
571            58 => Some(ApiKey::Envelope),
572            59 => Some(ApiKey::FetchSnapshot),
573            60 => Some(ApiKey::DescribeCluster),
574            61 => Some(ApiKey::DescribeProducers),
575            62 => Some(ApiKey::BrokerRegistration),
576            63 => Some(ApiKey::BrokerHeartbeat),
577            64 => Some(ApiKey::UnregisterBroker),
578            65 => Some(ApiKey::DescribeTransactions),
579            66 => Some(ApiKey::ListTransactions),
580            67 => Some(ApiKey::AllocateProducerIds),
581            68 => Some(ApiKey::ConsumerGroupHeartbeat),
582            69 => Some(ApiKey::ConsumerGroupDescribe),
583            70 => Some(ApiKey::ControllerRegistration),
584            71 => Some(ApiKey::GetTelemetrySubscriptions),
585            72 => Some(ApiKey::PushTelemetry),
586            73 => Some(ApiKey::AssignReplicasToDirs),
587            74 => Some(ApiKey::ListConfigResources),
588            75 => Some(ApiKey::DescribeTopicPartitions),
589            76 => Some(ApiKey::ShareGroupHeartbeat),
590            77 => Some(ApiKey::ShareGroupDescribe),
591            78 => Some(ApiKey::ShareFetch),
592            79 => Some(ApiKey::ShareAcknowledge),
593            80 => Some(ApiKey::AddRaftVoter),
594            81 => Some(ApiKey::RemoveRaftVoter),
595            82 => Some(ApiKey::UpdateRaftVoter),
596            83 => Some(ApiKey::InitializeShareGroupState),
597            84 => Some(ApiKey::ReadShareGroupState),
598            85 => Some(ApiKey::WriteShareGroupState),
599            86 => Some(ApiKey::DeleteShareGroupState),
600            87 => Some(ApiKey::ReadShareGroupStateSummary),
601            88 => Some(ApiKey::StreamsGroupHeartbeat),
602            89 => Some(ApiKey::StreamsGroupDescribe),
603            90 => Some(ApiKey::DescribeShareGroupOffsets),
604            91 => Some(ApiKey::AlterShareGroupOffsets),
605            92 => Some(ApiKey::DeleteShareGroupOffsets),
606            _ => None,
607        }
608    }
609}
610/// Static metadata about a Kafka API: supported version range and flexible-encoding threshold.
611///
612/// `flexible_versions_start` is the first message version that uses flexible encoding.
613/// Use `i16::MAX` to indicate the API is never flexible.
614#[derive(Debug, Clone, Copy)]
615pub struct ApiInfo {
616    pub min_version: i16,
617    pub max_version: i16,
618    pub flexible_versions_start: i16,
619}
620/// Returns the client-side [`ApiInfo`] for the given [`ApiKey`].
621///
622/// The data is derived from the Kafka protocol JSON spec files at code-generation time.
623pub fn client_api_info(api_key: ApiKey) -> ApiInfo {
624    match api_key {
625        ApiKey::Produce => ApiInfo {
626            min_version: 3,
627            max_version: 13,
628            flexible_versions_start: 9,
629        },
630        ApiKey::Fetch => ApiInfo {
631            min_version: 4,
632            max_version: 18,
633            flexible_versions_start: 12,
634        },
635        ApiKey::ListOffsets => ApiInfo {
636            min_version: 1,
637            max_version: 11,
638            flexible_versions_start: 6,
639        },
640        ApiKey::Metadata => ApiInfo {
641            min_version: 0,
642            max_version: 13,
643            flexible_versions_start: 9,
644        },
645        ApiKey::LeaderAndIsr => ApiInfo {
646            min_version: 0,
647            max_version: 0,
648            flexible_versions_start: i16::MAX,
649        },
650        ApiKey::StopReplica => ApiInfo {
651            min_version: 0,
652            max_version: 0,
653            flexible_versions_start: i16::MAX,
654        },
655        ApiKey::UpdateMetadata => ApiInfo {
656            min_version: 0,
657            max_version: 0,
658            flexible_versions_start: i16::MAX,
659        },
660        ApiKey::ControlledShutdown => ApiInfo {
661            min_version: 0,
662            max_version: 0,
663            flexible_versions_start: i16::MAX,
664        },
665        ApiKey::OffsetCommit => ApiInfo {
666            min_version: 2,
667            max_version: 10,
668            flexible_versions_start: 8,
669        },
670        ApiKey::OffsetFetch => ApiInfo {
671            min_version: 1,
672            max_version: 10,
673            flexible_versions_start: 6,
674        },
675        ApiKey::FindCoordinator => ApiInfo {
676            min_version: 0,
677            max_version: 6,
678            flexible_versions_start: 3,
679        },
680        ApiKey::JoinGroup => ApiInfo {
681            min_version: 0,
682            max_version: 9,
683            flexible_versions_start: 6,
684        },
685        ApiKey::Heartbeat => ApiInfo {
686            min_version: 0,
687            max_version: 4,
688            flexible_versions_start: 4,
689        },
690        ApiKey::LeaveGroup => ApiInfo {
691            min_version: 0,
692            max_version: 5,
693            flexible_versions_start: 4,
694        },
695        ApiKey::SyncGroup => ApiInfo {
696            min_version: 0,
697            max_version: 5,
698            flexible_versions_start: 4,
699        },
700        ApiKey::DescribeGroups => ApiInfo {
701            min_version: 0,
702            max_version: 6,
703            flexible_versions_start: 5,
704        },
705        ApiKey::ListGroups => ApiInfo {
706            min_version: 0,
707            max_version: 5,
708            flexible_versions_start: 3,
709        },
710        ApiKey::SaslHandshake => ApiInfo {
711            min_version: 0,
712            max_version: 1,
713            flexible_versions_start: i16::MAX,
714        },
715        ApiKey::ApiVersions => ApiInfo {
716            min_version: 0,
717            max_version: 4,
718            flexible_versions_start: 3,
719        },
720        ApiKey::CreateTopics => ApiInfo {
721            min_version: 2,
722            max_version: 7,
723            flexible_versions_start: 5,
724        },
725        ApiKey::DeleteTopics => ApiInfo {
726            min_version: 1,
727            max_version: 6,
728            flexible_versions_start: 4,
729        },
730        ApiKey::DeleteRecords => ApiInfo {
731            min_version: 0,
732            max_version: 2,
733            flexible_versions_start: 2,
734        },
735        ApiKey::InitProducerId => ApiInfo {
736            min_version: 0,
737            max_version: 6,
738            flexible_versions_start: 2,
739        },
740        ApiKey::OffsetForLeaderEpoch => ApiInfo {
741            min_version: 2,
742            max_version: 4,
743            flexible_versions_start: 4,
744        },
745        ApiKey::AddPartitionsToTxn => ApiInfo {
746            min_version: 0,
747            max_version: 5,
748            flexible_versions_start: 3,
749        },
750        ApiKey::AddOffsetsToTxn => ApiInfo {
751            min_version: 0,
752            max_version: 4,
753            flexible_versions_start: 3,
754        },
755        ApiKey::EndTxn => ApiInfo {
756            min_version: 0,
757            max_version: 5,
758            flexible_versions_start: 3,
759        },
760        ApiKey::WriteTxnMarkers => ApiInfo {
761            min_version: 1,
762            max_version: 2,
763            flexible_versions_start: 1,
764        },
765        ApiKey::TxnOffsetCommit => ApiInfo {
766            min_version: 0,
767            max_version: 5,
768            flexible_versions_start: 3,
769        },
770        ApiKey::DescribeAcls => ApiInfo {
771            min_version: 1,
772            max_version: 3,
773            flexible_versions_start: 2,
774        },
775        ApiKey::CreateAcls => ApiInfo {
776            min_version: 1,
777            max_version: 3,
778            flexible_versions_start: 2,
779        },
780        ApiKey::DeleteAcls => ApiInfo {
781            min_version: 1,
782            max_version: 3,
783            flexible_versions_start: 2,
784        },
785        ApiKey::DescribeConfigs => ApiInfo {
786            min_version: 1,
787            max_version: 4,
788            flexible_versions_start: 4,
789        },
790        ApiKey::AlterConfigs => ApiInfo {
791            min_version: 0,
792            max_version: 2,
793            flexible_versions_start: 2,
794        },
795        ApiKey::AlterReplicaLogDirs => ApiInfo {
796            min_version: 1,
797            max_version: 2,
798            flexible_versions_start: 2,
799        },
800        ApiKey::DescribeLogDirs => ApiInfo {
801            min_version: 1,
802            max_version: 5,
803            flexible_versions_start: 2,
804        },
805        ApiKey::SaslAuthenticate => ApiInfo {
806            min_version: 0,
807            max_version: 2,
808            flexible_versions_start: 2,
809        },
810        ApiKey::CreatePartitions => ApiInfo {
811            min_version: 0,
812            max_version: 3,
813            flexible_versions_start: 2,
814        },
815        ApiKey::CreateDelegationToken => ApiInfo {
816            min_version: 1,
817            max_version: 3,
818            flexible_versions_start: 2,
819        },
820        ApiKey::RenewDelegationToken => ApiInfo {
821            min_version: 1,
822            max_version: 2,
823            flexible_versions_start: 2,
824        },
825        ApiKey::ExpireDelegationToken => ApiInfo {
826            min_version: 1,
827            max_version: 2,
828            flexible_versions_start: 2,
829        },
830        ApiKey::DescribeDelegationToken => ApiInfo {
831            min_version: 1,
832            max_version: 3,
833            flexible_versions_start: 2,
834        },
835        ApiKey::DeleteGroups => ApiInfo {
836            min_version: 0,
837            max_version: 2,
838            flexible_versions_start: 2,
839        },
840        ApiKey::ElectLeaders => ApiInfo {
841            min_version: 0,
842            max_version: 2,
843            flexible_versions_start: 2,
844        },
845        ApiKey::IncrementalAlterConfigs => ApiInfo {
846            min_version: 0,
847            max_version: 1,
848            flexible_versions_start: 1,
849        },
850        ApiKey::AlterPartitionReassignments => ApiInfo {
851            min_version: 0,
852            max_version: 1,
853            flexible_versions_start: 0,
854        },
855        ApiKey::ListPartitionReassignments => ApiInfo {
856            min_version: 0,
857            max_version: 0,
858            flexible_versions_start: 0,
859        },
860        ApiKey::OffsetDelete => ApiInfo {
861            min_version: 0,
862            max_version: 0,
863            flexible_versions_start: i16::MAX,
864        },
865        ApiKey::DescribeClientQuotas => ApiInfo {
866            min_version: 0,
867            max_version: 1,
868            flexible_versions_start: 1,
869        },
870        ApiKey::AlterClientQuotas => ApiInfo {
871            min_version: 0,
872            max_version: 1,
873            flexible_versions_start: 1,
874        },
875        ApiKey::DescribeUserScramCredentials => ApiInfo {
876            min_version: 0,
877            max_version: 0,
878            flexible_versions_start: 0,
879        },
880        ApiKey::AlterUserScramCredentials => ApiInfo {
881            min_version: 0,
882            max_version: 0,
883            flexible_versions_start: 0,
884        },
885        ApiKey::Vote => ApiInfo {
886            min_version: 0,
887            max_version: 2,
888            flexible_versions_start: 0,
889        },
890        ApiKey::BeginQuorumEpoch => ApiInfo {
891            min_version: 0,
892            max_version: 1,
893            flexible_versions_start: 1,
894        },
895        ApiKey::EndQuorumEpoch => ApiInfo {
896            min_version: 0,
897            max_version: 1,
898            flexible_versions_start: 1,
899        },
900        ApiKey::DescribeQuorum => ApiInfo {
901            min_version: 0,
902            max_version: 2,
903            flexible_versions_start: 0,
904        },
905        ApiKey::AlterPartition => ApiInfo {
906            min_version: 2,
907            max_version: 3,
908            flexible_versions_start: 0,
909        },
910        ApiKey::UpdateFeatures => ApiInfo {
911            min_version: 0,
912            max_version: 2,
913            flexible_versions_start: 0,
914        },
915        ApiKey::Envelope => ApiInfo {
916            min_version: 0,
917            max_version: 0,
918            flexible_versions_start: 0,
919        },
920        ApiKey::FetchSnapshot => ApiInfo {
921            min_version: 0,
922            max_version: 1,
923            flexible_versions_start: 0,
924        },
925        ApiKey::DescribeCluster => ApiInfo {
926            min_version: 0,
927            max_version: 2,
928            flexible_versions_start: 0,
929        },
930        ApiKey::DescribeProducers => ApiInfo {
931            min_version: 0,
932            max_version: 0,
933            flexible_versions_start: 0,
934        },
935        ApiKey::BrokerRegistration => ApiInfo {
936            min_version: 0,
937            max_version: 4,
938            flexible_versions_start: 0,
939        },
940        ApiKey::BrokerHeartbeat => ApiInfo {
941            min_version: 0,
942            max_version: 2,
943            flexible_versions_start: 0,
944        },
945        ApiKey::UnregisterBroker => ApiInfo {
946            min_version: 0,
947            max_version: 0,
948            flexible_versions_start: 0,
949        },
950        ApiKey::DescribeTransactions => ApiInfo {
951            min_version: 0,
952            max_version: 0,
953            flexible_versions_start: 0,
954        },
955        ApiKey::ListTransactions => ApiInfo {
956            min_version: 0,
957            max_version: 2,
958            flexible_versions_start: 0,
959        },
960        ApiKey::AllocateProducerIds => ApiInfo {
961            min_version: 0,
962            max_version: 0,
963            flexible_versions_start: 0,
964        },
965        ApiKey::ConsumerGroupHeartbeat => ApiInfo {
966            min_version: 0,
967            max_version: 1,
968            flexible_versions_start: 0,
969        },
970        ApiKey::ConsumerGroupDescribe => ApiInfo {
971            min_version: 0,
972            max_version: 1,
973            flexible_versions_start: 0,
974        },
975        ApiKey::ControllerRegistration => ApiInfo {
976            min_version: 0,
977            max_version: 0,
978            flexible_versions_start: 0,
979        },
980        ApiKey::GetTelemetrySubscriptions => ApiInfo {
981            min_version: 0,
982            max_version: 0,
983            flexible_versions_start: 0,
984        },
985        ApiKey::PushTelemetry => ApiInfo {
986            min_version: 0,
987            max_version: 0,
988            flexible_versions_start: 0,
989        },
990        ApiKey::AssignReplicasToDirs => ApiInfo {
991            min_version: 0,
992            max_version: 0,
993            flexible_versions_start: 0,
994        },
995        ApiKey::ListConfigResources => ApiInfo {
996            min_version: 0,
997            max_version: 1,
998            flexible_versions_start: 0,
999        },
1000        ApiKey::DescribeTopicPartitions => ApiInfo {
1001            min_version: 0,
1002            max_version: 0,
1003            flexible_versions_start: 0,
1004        },
1005        ApiKey::ShareGroupHeartbeat => ApiInfo {
1006            min_version: 1,
1007            max_version: 1,
1008            flexible_versions_start: 0,
1009        },
1010        ApiKey::ShareGroupDescribe => ApiInfo {
1011            min_version: 1,
1012            max_version: 1,
1013            flexible_versions_start: 0,
1014        },
1015        ApiKey::ShareFetch => ApiInfo {
1016            min_version: 1,
1017            max_version: 2,
1018            flexible_versions_start: 0,
1019        },
1020        ApiKey::ShareAcknowledge => ApiInfo {
1021            min_version: 1,
1022            max_version: 2,
1023            flexible_versions_start: 0,
1024        },
1025        ApiKey::AddRaftVoter => ApiInfo {
1026            min_version: 0,
1027            max_version: 1,
1028            flexible_versions_start: 0,
1029        },
1030        ApiKey::RemoveRaftVoter => ApiInfo {
1031            min_version: 0,
1032            max_version: 0,
1033            flexible_versions_start: 0,
1034        },
1035        ApiKey::UpdateRaftVoter => ApiInfo {
1036            min_version: 0,
1037            max_version: 0,
1038            flexible_versions_start: 0,
1039        },
1040        ApiKey::InitializeShareGroupState => ApiInfo {
1041            min_version: 0,
1042            max_version: 0,
1043            flexible_versions_start: 0,
1044        },
1045        ApiKey::ReadShareGroupState => ApiInfo {
1046            min_version: 0,
1047            max_version: 0,
1048            flexible_versions_start: 0,
1049        },
1050        ApiKey::WriteShareGroupState => ApiInfo {
1051            min_version: 0,
1052            max_version: 1,
1053            flexible_versions_start: 0,
1054        },
1055        ApiKey::DeleteShareGroupState => ApiInfo {
1056            min_version: 0,
1057            max_version: 0,
1058            flexible_versions_start: 0,
1059        },
1060        ApiKey::ReadShareGroupStateSummary => ApiInfo {
1061            min_version: 0,
1062            max_version: 1,
1063            flexible_versions_start: 0,
1064        },
1065        ApiKey::StreamsGroupHeartbeat => ApiInfo {
1066            min_version: 0,
1067            max_version: 0,
1068            flexible_versions_start: 0,
1069        },
1070        ApiKey::StreamsGroupDescribe => ApiInfo {
1071            min_version: 0,
1072            max_version: 0,
1073            flexible_versions_start: 0,
1074        },
1075        ApiKey::DescribeShareGroupOffsets => ApiInfo {
1076            min_version: 0,
1077            max_version: 1,
1078            flexible_versions_start: 0,
1079        },
1080        ApiKey::AlterShareGroupOffsets => ApiInfo {
1081            min_version: 0,
1082            max_version: 0,
1083            flexible_versions_start: 0,
1084        },
1085        ApiKey::DeleteShareGroupOffsets => ApiInfo {
1086            min_version: 0,
1087            max_version: 0,
1088            flexible_versions_start: 0,
1089        },
1090    }
1091}
1092#[cfg(feature = "message-enums")]
1093use bytes::BytesMut;
1094
1095/// Type-erased generated Kafka requests.
1096#[cfg(feature = "message-enums")]
1097#[derive(Debug, Clone, PartialEq)]
1098pub enum RequestKind {
1099    Produce(ProduceRequestData),
1100    Fetch(FetchRequestData),
1101    ListOffsets(ListOffsetsRequestData),
1102    Metadata(MetadataRequestData),
1103    LeaderAndIsr(LeaderAndIsrRequestData),
1104    StopReplica(StopReplicaRequestData),
1105    UpdateMetadata(UpdateMetadataRequestData),
1106    ControlledShutdown(ControlledShutdownRequestData),
1107    OffsetCommit(OffsetCommitRequestData),
1108    OffsetFetch(OffsetFetchRequestData),
1109    FindCoordinator(FindCoordinatorRequestData),
1110    JoinGroup(JoinGroupRequestData),
1111    Heartbeat(HeartbeatRequestData),
1112    LeaveGroup(LeaveGroupRequestData),
1113    SyncGroup(SyncGroupRequestData),
1114    DescribeGroups(DescribeGroupsRequestData),
1115    ListGroups(ListGroupsRequestData),
1116    SaslHandshake(SaslHandshakeRequestData),
1117    ApiVersions(ApiVersionsRequestData),
1118    CreateTopics(CreateTopicsRequestData),
1119    DeleteTopics(DeleteTopicsRequestData),
1120    DeleteRecords(DeleteRecordsRequestData),
1121    InitProducerId(InitProducerIdRequestData),
1122    OffsetForLeaderEpoch(OffsetForLeaderEpochRequestData),
1123    AddPartitionsToTxn(AddPartitionsToTxnRequestData),
1124    AddOffsetsToTxn(AddOffsetsToTxnRequestData),
1125    EndTxn(EndTxnRequestData),
1126    WriteTxnMarkers(WriteTxnMarkersRequestData),
1127    TxnOffsetCommit(TxnOffsetCommitRequestData),
1128    DescribeAcls(DescribeAclsRequestData),
1129    CreateAcls(CreateAclsRequestData),
1130    DeleteAcls(DeleteAclsRequestData),
1131    DescribeConfigs(DescribeConfigsRequestData),
1132    AlterConfigs(AlterConfigsRequestData),
1133    AlterReplicaLogDirs(AlterReplicaLogDirsRequestData),
1134    DescribeLogDirs(DescribeLogDirsRequestData),
1135    SaslAuthenticate(SaslAuthenticateRequestData),
1136    CreatePartitions(CreatePartitionsRequestData),
1137    CreateDelegationToken(CreateDelegationTokenRequestData),
1138    RenewDelegationToken(RenewDelegationTokenRequestData),
1139    ExpireDelegationToken(ExpireDelegationTokenRequestData),
1140    DescribeDelegationToken(DescribeDelegationTokenRequestData),
1141    DeleteGroups(DeleteGroupsRequestData),
1142    ElectLeaders(ElectLeadersRequestData),
1143    IncrementalAlterConfigs(IncrementalAlterConfigsRequestData),
1144    AlterPartitionReassignments(AlterPartitionReassignmentsRequestData),
1145    ListPartitionReassignments(ListPartitionReassignmentsRequestData),
1146    OffsetDelete(OffsetDeleteRequestData),
1147    DescribeClientQuotas(DescribeClientQuotasRequestData),
1148    AlterClientQuotas(AlterClientQuotasRequestData),
1149    DescribeUserScramCredentials(DescribeUserScramCredentialsRequestData),
1150    AlterUserScramCredentials(AlterUserScramCredentialsRequestData),
1151    Vote(VoteRequestData),
1152    BeginQuorumEpoch(BeginQuorumEpochRequestData),
1153    EndQuorumEpoch(EndQuorumEpochRequestData),
1154    DescribeQuorum(DescribeQuorumRequestData),
1155    AlterPartition(AlterPartitionRequestData),
1156    UpdateFeatures(UpdateFeaturesRequestData),
1157    Envelope(EnvelopeRequestData),
1158    FetchSnapshot(FetchSnapshotRequestData),
1159    DescribeCluster(DescribeClusterRequestData),
1160    DescribeProducers(DescribeProducersRequestData),
1161    BrokerRegistration(BrokerRegistrationRequestData),
1162    BrokerHeartbeat(BrokerHeartbeatRequestData),
1163    UnregisterBroker(UnregisterBrokerRequestData),
1164    DescribeTransactions(DescribeTransactionsRequestData),
1165    ListTransactions(ListTransactionsRequestData),
1166    AllocateProducerIds(AllocateProducerIdsRequestData),
1167    ConsumerGroupHeartbeat(ConsumerGroupHeartbeatRequestData),
1168    ConsumerGroupDescribe(ConsumerGroupDescribeRequestData),
1169    ControllerRegistration(ControllerRegistrationRequestData),
1170    GetTelemetrySubscriptions(GetTelemetrySubscriptionsRequestData),
1171    PushTelemetry(PushTelemetryRequestData),
1172    AssignReplicasToDirs(AssignReplicasToDirsRequestData),
1173    ListConfigResources(ListConfigResourcesRequestData),
1174    DescribeTopicPartitions(DescribeTopicPartitionsRequestData),
1175    ShareGroupHeartbeat(ShareGroupHeartbeatRequestData),
1176    ShareGroupDescribe(ShareGroupDescribeRequestData),
1177    ShareFetch(ShareFetchRequestData),
1178    ShareAcknowledge(ShareAcknowledgeRequestData),
1179    AddRaftVoter(AddRaftVoterRequestData),
1180    RemoveRaftVoter(RemoveRaftVoterRequestData),
1181    UpdateRaftVoter(UpdateRaftVoterRequestData),
1182    InitializeShareGroupState(InitializeShareGroupStateRequestData),
1183    ReadShareGroupState(ReadShareGroupStateRequestData),
1184    WriteShareGroupState(WriteShareGroupStateRequestData),
1185    DeleteShareGroupState(DeleteShareGroupStateRequestData),
1186    ReadShareGroupStateSummary(ReadShareGroupStateSummaryRequestData),
1187    StreamsGroupHeartbeat(StreamsGroupHeartbeatRequestData),
1188    StreamsGroupDescribe(StreamsGroupDescribeRequestData),
1189    DescribeShareGroupOffsets(DescribeShareGroupOffsetsRequestData),
1190    AlterShareGroupOffsets(AlterShareGroupOffsetsRequestData),
1191    DeleteShareGroupOffsets(DeleteShareGroupOffsetsRequestData),
1192}
1193#[cfg(feature = "message-enums")]
1194impl RequestKind {
1195    pub fn api_key(&self) -> ApiKey {
1196        match self {
1197            RequestKind::Produce(_) => ApiKey::Produce,
1198            RequestKind::Fetch(_) => ApiKey::Fetch,
1199            RequestKind::ListOffsets(_) => ApiKey::ListOffsets,
1200            RequestKind::Metadata(_) => ApiKey::Metadata,
1201            RequestKind::LeaderAndIsr(_) => ApiKey::LeaderAndIsr,
1202            RequestKind::StopReplica(_) => ApiKey::StopReplica,
1203            RequestKind::UpdateMetadata(_) => ApiKey::UpdateMetadata,
1204            RequestKind::ControlledShutdown(_) => ApiKey::ControlledShutdown,
1205            RequestKind::OffsetCommit(_) => ApiKey::OffsetCommit,
1206            RequestKind::OffsetFetch(_) => ApiKey::OffsetFetch,
1207            RequestKind::FindCoordinator(_) => ApiKey::FindCoordinator,
1208            RequestKind::JoinGroup(_) => ApiKey::JoinGroup,
1209            RequestKind::Heartbeat(_) => ApiKey::Heartbeat,
1210            RequestKind::LeaveGroup(_) => ApiKey::LeaveGroup,
1211            RequestKind::SyncGroup(_) => ApiKey::SyncGroup,
1212            RequestKind::DescribeGroups(_) => ApiKey::DescribeGroups,
1213            RequestKind::ListGroups(_) => ApiKey::ListGroups,
1214            RequestKind::SaslHandshake(_) => ApiKey::SaslHandshake,
1215            RequestKind::ApiVersions(_) => ApiKey::ApiVersions,
1216            RequestKind::CreateTopics(_) => ApiKey::CreateTopics,
1217            RequestKind::DeleteTopics(_) => ApiKey::DeleteTopics,
1218            RequestKind::DeleteRecords(_) => ApiKey::DeleteRecords,
1219            RequestKind::InitProducerId(_) => ApiKey::InitProducerId,
1220            RequestKind::OffsetForLeaderEpoch(_) => ApiKey::OffsetForLeaderEpoch,
1221            RequestKind::AddPartitionsToTxn(_) => ApiKey::AddPartitionsToTxn,
1222            RequestKind::AddOffsetsToTxn(_) => ApiKey::AddOffsetsToTxn,
1223            RequestKind::EndTxn(_) => ApiKey::EndTxn,
1224            RequestKind::WriteTxnMarkers(_) => ApiKey::WriteTxnMarkers,
1225            RequestKind::TxnOffsetCommit(_) => ApiKey::TxnOffsetCommit,
1226            RequestKind::DescribeAcls(_) => ApiKey::DescribeAcls,
1227            RequestKind::CreateAcls(_) => ApiKey::CreateAcls,
1228            RequestKind::DeleteAcls(_) => ApiKey::DeleteAcls,
1229            RequestKind::DescribeConfigs(_) => ApiKey::DescribeConfigs,
1230            RequestKind::AlterConfigs(_) => ApiKey::AlterConfigs,
1231            RequestKind::AlterReplicaLogDirs(_) => ApiKey::AlterReplicaLogDirs,
1232            RequestKind::DescribeLogDirs(_) => ApiKey::DescribeLogDirs,
1233            RequestKind::SaslAuthenticate(_) => ApiKey::SaslAuthenticate,
1234            RequestKind::CreatePartitions(_) => ApiKey::CreatePartitions,
1235            RequestKind::CreateDelegationToken(_) => ApiKey::CreateDelegationToken,
1236            RequestKind::RenewDelegationToken(_) => ApiKey::RenewDelegationToken,
1237            RequestKind::ExpireDelegationToken(_) => ApiKey::ExpireDelegationToken,
1238            RequestKind::DescribeDelegationToken(_) => ApiKey::DescribeDelegationToken,
1239            RequestKind::DeleteGroups(_) => ApiKey::DeleteGroups,
1240            RequestKind::ElectLeaders(_) => ApiKey::ElectLeaders,
1241            RequestKind::IncrementalAlterConfigs(_) => ApiKey::IncrementalAlterConfigs,
1242            RequestKind::AlterPartitionReassignments(_) => ApiKey::AlterPartitionReassignments,
1243            RequestKind::ListPartitionReassignments(_) => ApiKey::ListPartitionReassignments,
1244            RequestKind::OffsetDelete(_) => ApiKey::OffsetDelete,
1245            RequestKind::DescribeClientQuotas(_) => ApiKey::DescribeClientQuotas,
1246            RequestKind::AlterClientQuotas(_) => ApiKey::AlterClientQuotas,
1247            RequestKind::DescribeUserScramCredentials(_) => ApiKey::DescribeUserScramCredentials,
1248            RequestKind::AlterUserScramCredentials(_) => ApiKey::AlterUserScramCredentials,
1249            RequestKind::Vote(_) => ApiKey::Vote,
1250            RequestKind::BeginQuorumEpoch(_) => ApiKey::BeginQuorumEpoch,
1251            RequestKind::EndQuorumEpoch(_) => ApiKey::EndQuorumEpoch,
1252            RequestKind::DescribeQuorum(_) => ApiKey::DescribeQuorum,
1253            RequestKind::AlterPartition(_) => ApiKey::AlterPartition,
1254            RequestKind::UpdateFeatures(_) => ApiKey::UpdateFeatures,
1255            RequestKind::Envelope(_) => ApiKey::Envelope,
1256            RequestKind::FetchSnapshot(_) => ApiKey::FetchSnapshot,
1257            RequestKind::DescribeCluster(_) => ApiKey::DescribeCluster,
1258            RequestKind::DescribeProducers(_) => ApiKey::DescribeProducers,
1259            RequestKind::BrokerRegistration(_) => ApiKey::BrokerRegistration,
1260            RequestKind::BrokerHeartbeat(_) => ApiKey::BrokerHeartbeat,
1261            RequestKind::UnregisterBroker(_) => ApiKey::UnregisterBroker,
1262            RequestKind::DescribeTransactions(_) => ApiKey::DescribeTransactions,
1263            RequestKind::ListTransactions(_) => ApiKey::ListTransactions,
1264            RequestKind::AllocateProducerIds(_) => ApiKey::AllocateProducerIds,
1265            RequestKind::ConsumerGroupHeartbeat(_) => ApiKey::ConsumerGroupHeartbeat,
1266            RequestKind::ConsumerGroupDescribe(_) => ApiKey::ConsumerGroupDescribe,
1267            RequestKind::ControllerRegistration(_) => ApiKey::ControllerRegistration,
1268            RequestKind::GetTelemetrySubscriptions(_) => ApiKey::GetTelemetrySubscriptions,
1269            RequestKind::PushTelemetry(_) => ApiKey::PushTelemetry,
1270            RequestKind::AssignReplicasToDirs(_) => ApiKey::AssignReplicasToDirs,
1271            RequestKind::ListConfigResources(_) => ApiKey::ListConfigResources,
1272            RequestKind::DescribeTopicPartitions(_) => ApiKey::DescribeTopicPartitions,
1273            RequestKind::ShareGroupHeartbeat(_) => ApiKey::ShareGroupHeartbeat,
1274            RequestKind::ShareGroupDescribe(_) => ApiKey::ShareGroupDescribe,
1275            RequestKind::ShareFetch(_) => ApiKey::ShareFetch,
1276            RequestKind::ShareAcknowledge(_) => ApiKey::ShareAcknowledge,
1277            RequestKind::AddRaftVoter(_) => ApiKey::AddRaftVoter,
1278            RequestKind::RemoveRaftVoter(_) => ApiKey::RemoveRaftVoter,
1279            RequestKind::UpdateRaftVoter(_) => ApiKey::UpdateRaftVoter,
1280            RequestKind::InitializeShareGroupState(_) => ApiKey::InitializeShareGroupState,
1281            RequestKind::ReadShareGroupState(_) => ApiKey::ReadShareGroupState,
1282            RequestKind::WriteShareGroupState(_) => ApiKey::WriteShareGroupState,
1283            RequestKind::DeleteShareGroupState(_) => ApiKey::DeleteShareGroupState,
1284            RequestKind::ReadShareGroupStateSummary(_) => ApiKey::ReadShareGroupStateSummary,
1285            RequestKind::StreamsGroupHeartbeat(_) => ApiKey::StreamsGroupHeartbeat,
1286            RequestKind::StreamsGroupDescribe(_) => ApiKey::StreamsGroupDescribe,
1287            RequestKind::DescribeShareGroupOffsets(_) => ApiKey::DescribeShareGroupOffsets,
1288            RequestKind::AlterShareGroupOffsets(_) => ApiKey::AlterShareGroupOffsets,
1289            RequestKind::DeleteShareGroupOffsets(_) => ApiKey::DeleteShareGroupOffsets,
1290        }
1291    }
1292    pub fn write(&self, buf: &mut BytesMut, version: i16) -> crate::Result<()> {
1293        match self {
1294            RequestKind::Produce(message) => message.write(buf, version),
1295            RequestKind::Fetch(message) => message.write(buf, version),
1296            RequestKind::ListOffsets(message) => message.write(buf, version),
1297            RequestKind::Metadata(message) => message.write(buf, version),
1298            RequestKind::LeaderAndIsr(message) => message.write(buf, version),
1299            RequestKind::StopReplica(message) => message.write(buf, version),
1300            RequestKind::UpdateMetadata(message) => message.write(buf, version),
1301            RequestKind::ControlledShutdown(message) => message.write(buf, version),
1302            RequestKind::OffsetCommit(message) => message.write(buf, version),
1303            RequestKind::OffsetFetch(message) => message.write(buf, version),
1304            RequestKind::FindCoordinator(message) => message.write(buf, version),
1305            RequestKind::JoinGroup(message) => message.write(buf, version),
1306            RequestKind::Heartbeat(message) => message.write(buf, version),
1307            RequestKind::LeaveGroup(message) => message.write(buf, version),
1308            RequestKind::SyncGroup(message) => message.write(buf, version),
1309            RequestKind::DescribeGroups(message) => message.write(buf, version),
1310            RequestKind::ListGroups(message) => message.write(buf, version),
1311            RequestKind::SaslHandshake(message) => message.write(buf, version),
1312            RequestKind::ApiVersions(message) => message.write(buf, version),
1313            RequestKind::CreateTopics(message) => message.write(buf, version),
1314            RequestKind::DeleteTopics(message) => message.write(buf, version),
1315            RequestKind::DeleteRecords(message) => message.write(buf, version),
1316            RequestKind::InitProducerId(message) => message.write(buf, version),
1317            RequestKind::OffsetForLeaderEpoch(message) => message.write(buf, version),
1318            RequestKind::AddPartitionsToTxn(message) => message.write(buf, version),
1319            RequestKind::AddOffsetsToTxn(message) => message.write(buf, version),
1320            RequestKind::EndTxn(message) => message.write(buf, version),
1321            RequestKind::WriteTxnMarkers(message) => message.write(buf, version),
1322            RequestKind::TxnOffsetCommit(message) => message.write(buf, version),
1323            RequestKind::DescribeAcls(message) => message.write(buf, version),
1324            RequestKind::CreateAcls(message) => message.write(buf, version),
1325            RequestKind::DeleteAcls(message) => message.write(buf, version),
1326            RequestKind::DescribeConfigs(message) => message.write(buf, version),
1327            RequestKind::AlterConfigs(message) => message.write(buf, version),
1328            RequestKind::AlterReplicaLogDirs(message) => message.write(buf, version),
1329            RequestKind::DescribeLogDirs(message) => message.write(buf, version),
1330            RequestKind::SaslAuthenticate(message) => message.write(buf, version),
1331            RequestKind::CreatePartitions(message) => message.write(buf, version),
1332            RequestKind::CreateDelegationToken(message) => message.write(buf, version),
1333            RequestKind::RenewDelegationToken(message) => message.write(buf, version),
1334            RequestKind::ExpireDelegationToken(message) => message.write(buf, version),
1335            RequestKind::DescribeDelegationToken(message) => message.write(buf, version),
1336            RequestKind::DeleteGroups(message) => message.write(buf, version),
1337            RequestKind::ElectLeaders(message) => message.write(buf, version),
1338            RequestKind::IncrementalAlterConfigs(message) => message.write(buf, version),
1339            RequestKind::AlterPartitionReassignments(message) => message.write(buf, version),
1340            RequestKind::ListPartitionReassignments(message) => message.write(buf, version),
1341            RequestKind::OffsetDelete(message) => message.write(buf, version),
1342            RequestKind::DescribeClientQuotas(message) => message.write(buf, version),
1343            RequestKind::AlterClientQuotas(message) => message.write(buf, version),
1344            RequestKind::DescribeUserScramCredentials(message) => message.write(buf, version),
1345            RequestKind::AlterUserScramCredentials(message) => message.write(buf, version),
1346            RequestKind::Vote(message) => message.write(buf, version),
1347            RequestKind::BeginQuorumEpoch(message) => message.write(buf, version),
1348            RequestKind::EndQuorumEpoch(message) => message.write(buf, version),
1349            RequestKind::DescribeQuorum(message) => message.write(buf, version),
1350            RequestKind::AlterPartition(message) => message.write(buf, version),
1351            RequestKind::UpdateFeatures(message) => message.write(buf, version),
1352            RequestKind::Envelope(message) => message.write(buf, version),
1353            RequestKind::FetchSnapshot(message) => message.write(buf, version),
1354            RequestKind::DescribeCluster(message) => message.write(buf, version),
1355            RequestKind::DescribeProducers(message) => message.write(buf, version),
1356            RequestKind::BrokerRegistration(message) => message.write(buf, version),
1357            RequestKind::BrokerHeartbeat(message) => message.write(buf, version),
1358            RequestKind::UnregisterBroker(message) => message.write(buf, version),
1359            RequestKind::DescribeTransactions(message) => message.write(buf, version),
1360            RequestKind::ListTransactions(message) => message.write(buf, version),
1361            RequestKind::AllocateProducerIds(message) => message.write(buf, version),
1362            RequestKind::ConsumerGroupHeartbeat(message) => message.write(buf, version),
1363            RequestKind::ConsumerGroupDescribe(message) => message.write(buf, version),
1364            RequestKind::ControllerRegistration(message) => message.write(buf, version),
1365            RequestKind::GetTelemetrySubscriptions(message) => message.write(buf, version),
1366            RequestKind::PushTelemetry(message) => message.write(buf, version),
1367            RequestKind::AssignReplicasToDirs(message) => message.write(buf, version),
1368            RequestKind::ListConfigResources(message) => message.write(buf, version),
1369            RequestKind::DescribeTopicPartitions(message) => message.write(buf, version),
1370            RequestKind::ShareGroupHeartbeat(message) => message.write(buf, version),
1371            RequestKind::ShareGroupDescribe(message) => message.write(buf, version),
1372            RequestKind::ShareFetch(message) => message.write(buf, version),
1373            RequestKind::ShareAcknowledge(message) => message.write(buf, version),
1374            RequestKind::AddRaftVoter(message) => message.write(buf, version),
1375            RequestKind::RemoveRaftVoter(message) => message.write(buf, version),
1376            RequestKind::UpdateRaftVoter(message) => message.write(buf, version),
1377            RequestKind::InitializeShareGroupState(message) => message.write(buf, version),
1378            RequestKind::ReadShareGroupState(message) => message.write(buf, version),
1379            RequestKind::WriteShareGroupState(message) => message.write(buf, version),
1380            RequestKind::DeleteShareGroupState(message) => message.write(buf, version),
1381            RequestKind::ReadShareGroupStateSummary(message) => message.write(buf, version),
1382            RequestKind::StreamsGroupHeartbeat(message) => message.write(buf, version),
1383            RequestKind::StreamsGroupDescribe(message) => message.write(buf, version),
1384            RequestKind::DescribeShareGroupOffsets(message) => message.write(buf, version),
1385            RequestKind::AlterShareGroupOffsets(message) => message.write(buf, version),
1386            RequestKind::DeleteShareGroupOffsets(message) => message.write(buf, version),
1387        }
1388    }
1389    pub fn encoded_len(&self, version: i16) -> crate::Result<usize> {
1390        match self {
1391            RequestKind::Produce(message) => message.encoded_len(version),
1392            RequestKind::Fetch(message) => message.encoded_len(version),
1393            RequestKind::ListOffsets(message) => message.encoded_len(version),
1394            RequestKind::Metadata(message) => message.encoded_len(version),
1395            RequestKind::LeaderAndIsr(message) => message.encoded_len(version),
1396            RequestKind::StopReplica(message) => message.encoded_len(version),
1397            RequestKind::UpdateMetadata(message) => message.encoded_len(version),
1398            RequestKind::ControlledShutdown(message) => message.encoded_len(version),
1399            RequestKind::OffsetCommit(message) => message.encoded_len(version),
1400            RequestKind::OffsetFetch(message) => message.encoded_len(version),
1401            RequestKind::FindCoordinator(message) => message.encoded_len(version),
1402            RequestKind::JoinGroup(message) => message.encoded_len(version),
1403            RequestKind::Heartbeat(message) => message.encoded_len(version),
1404            RequestKind::LeaveGroup(message) => message.encoded_len(version),
1405            RequestKind::SyncGroup(message) => message.encoded_len(version),
1406            RequestKind::DescribeGroups(message) => message.encoded_len(version),
1407            RequestKind::ListGroups(message) => message.encoded_len(version),
1408            RequestKind::SaslHandshake(message) => message.encoded_len(version),
1409            RequestKind::ApiVersions(message) => message.encoded_len(version),
1410            RequestKind::CreateTopics(message) => message.encoded_len(version),
1411            RequestKind::DeleteTopics(message) => message.encoded_len(version),
1412            RequestKind::DeleteRecords(message) => message.encoded_len(version),
1413            RequestKind::InitProducerId(message) => message.encoded_len(version),
1414            RequestKind::OffsetForLeaderEpoch(message) => message.encoded_len(version),
1415            RequestKind::AddPartitionsToTxn(message) => message.encoded_len(version),
1416            RequestKind::AddOffsetsToTxn(message) => message.encoded_len(version),
1417            RequestKind::EndTxn(message) => message.encoded_len(version),
1418            RequestKind::WriteTxnMarkers(message) => message.encoded_len(version),
1419            RequestKind::TxnOffsetCommit(message) => message.encoded_len(version),
1420            RequestKind::DescribeAcls(message) => message.encoded_len(version),
1421            RequestKind::CreateAcls(message) => message.encoded_len(version),
1422            RequestKind::DeleteAcls(message) => message.encoded_len(version),
1423            RequestKind::DescribeConfigs(message) => message.encoded_len(version),
1424            RequestKind::AlterConfigs(message) => message.encoded_len(version),
1425            RequestKind::AlterReplicaLogDirs(message) => message.encoded_len(version),
1426            RequestKind::DescribeLogDirs(message) => message.encoded_len(version),
1427            RequestKind::SaslAuthenticate(message) => message.encoded_len(version),
1428            RequestKind::CreatePartitions(message) => message.encoded_len(version),
1429            RequestKind::CreateDelegationToken(message) => message.encoded_len(version),
1430            RequestKind::RenewDelegationToken(message) => message.encoded_len(version),
1431            RequestKind::ExpireDelegationToken(message) => message.encoded_len(version),
1432            RequestKind::DescribeDelegationToken(message) => message.encoded_len(version),
1433            RequestKind::DeleteGroups(message) => message.encoded_len(version),
1434            RequestKind::ElectLeaders(message) => message.encoded_len(version),
1435            RequestKind::IncrementalAlterConfigs(message) => message.encoded_len(version),
1436            RequestKind::AlterPartitionReassignments(message) => message.encoded_len(version),
1437            RequestKind::ListPartitionReassignments(message) => message.encoded_len(version),
1438            RequestKind::OffsetDelete(message) => message.encoded_len(version),
1439            RequestKind::DescribeClientQuotas(message) => message.encoded_len(version),
1440            RequestKind::AlterClientQuotas(message) => message.encoded_len(version),
1441            RequestKind::DescribeUserScramCredentials(message) => message.encoded_len(version),
1442            RequestKind::AlterUserScramCredentials(message) => message.encoded_len(version),
1443            RequestKind::Vote(message) => message.encoded_len(version),
1444            RequestKind::BeginQuorumEpoch(message) => message.encoded_len(version),
1445            RequestKind::EndQuorumEpoch(message) => message.encoded_len(version),
1446            RequestKind::DescribeQuorum(message) => message.encoded_len(version),
1447            RequestKind::AlterPartition(message) => message.encoded_len(version),
1448            RequestKind::UpdateFeatures(message) => message.encoded_len(version),
1449            RequestKind::Envelope(message) => message.encoded_len(version),
1450            RequestKind::FetchSnapshot(message) => message.encoded_len(version),
1451            RequestKind::DescribeCluster(message) => message.encoded_len(version),
1452            RequestKind::DescribeProducers(message) => message.encoded_len(version),
1453            RequestKind::BrokerRegistration(message) => message.encoded_len(version),
1454            RequestKind::BrokerHeartbeat(message) => message.encoded_len(version),
1455            RequestKind::UnregisterBroker(message) => message.encoded_len(version),
1456            RequestKind::DescribeTransactions(message) => message.encoded_len(version),
1457            RequestKind::ListTransactions(message) => message.encoded_len(version),
1458            RequestKind::AllocateProducerIds(message) => message.encoded_len(version),
1459            RequestKind::ConsumerGroupHeartbeat(message) => message.encoded_len(version),
1460            RequestKind::ConsumerGroupDescribe(message) => message.encoded_len(version),
1461            RequestKind::ControllerRegistration(message) => message.encoded_len(version),
1462            RequestKind::GetTelemetrySubscriptions(message) => message.encoded_len(version),
1463            RequestKind::PushTelemetry(message) => message.encoded_len(version),
1464            RequestKind::AssignReplicasToDirs(message) => message.encoded_len(version),
1465            RequestKind::ListConfigResources(message) => message.encoded_len(version),
1466            RequestKind::DescribeTopicPartitions(message) => message.encoded_len(version),
1467            RequestKind::ShareGroupHeartbeat(message) => message.encoded_len(version),
1468            RequestKind::ShareGroupDescribe(message) => message.encoded_len(version),
1469            RequestKind::ShareFetch(message) => message.encoded_len(version),
1470            RequestKind::ShareAcknowledge(message) => message.encoded_len(version),
1471            RequestKind::AddRaftVoter(message) => message.encoded_len(version),
1472            RequestKind::RemoveRaftVoter(message) => message.encoded_len(version),
1473            RequestKind::UpdateRaftVoter(message) => message.encoded_len(version),
1474            RequestKind::InitializeShareGroupState(message) => message.encoded_len(version),
1475            RequestKind::ReadShareGroupState(message) => message.encoded_len(version),
1476            RequestKind::WriteShareGroupState(message) => message.encoded_len(version),
1477            RequestKind::DeleteShareGroupState(message) => message.encoded_len(version),
1478            RequestKind::ReadShareGroupStateSummary(message) => message.encoded_len(version),
1479            RequestKind::StreamsGroupHeartbeat(message) => message.encoded_len(version),
1480            RequestKind::StreamsGroupDescribe(message) => message.encoded_len(version),
1481            RequestKind::DescribeShareGroupOffsets(message) => message.encoded_len(version),
1482            RequestKind::AlterShareGroupOffsets(message) => message.encoded_len(version),
1483            RequestKind::DeleteShareGroupOffsets(message) => message.encoded_len(version),
1484        }
1485    }
1486}
1487/// Type-erased generated Kafka responses.
1488#[cfg(feature = "message-enums")]
1489#[derive(Debug, Clone, PartialEq)]
1490pub enum ResponseKind {
1491    Produce(ProduceResponseData),
1492    Fetch(FetchResponseData),
1493    ListOffsets(ListOffsetsResponseData),
1494    Metadata(MetadataResponseData),
1495    LeaderAndIsr(LeaderAndIsrResponseData),
1496    StopReplica(StopReplicaResponseData),
1497    UpdateMetadata(UpdateMetadataResponseData),
1498    ControlledShutdown(ControlledShutdownResponseData),
1499    OffsetCommit(OffsetCommitResponseData),
1500    OffsetFetch(OffsetFetchResponseData),
1501    FindCoordinator(FindCoordinatorResponseData),
1502    JoinGroup(JoinGroupResponseData),
1503    Heartbeat(HeartbeatResponseData),
1504    LeaveGroup(LeaveGroupResponseData),
1505    SyncGroup(SyncGroupResponseData),
1506    DescribeGroups(DescribeGroupsResponseData),
1507    ListGroups(ListGroupsResponseData),
1508    SaslHandshake(SaslHandshakeResponseData),
1509    ApiVersions(ApiVersionsResponseData),
1510    CreateTopics(CreateTopicsResponseData),
1511    DeleteTopics(DeleteTopicsResponseData),
1512    DeleteRecords(DeleteRecordsResponseData),
1513    InitProducerId(InitProducerIdResponseData),
1514    OffsetForLeaderEpoch(OffsetForLeaderEpochResponseData),
1515    AddPartitionsToTxn(AddPartitionsToTxnResponseData),
1516    AddOffsetsToTxn(AddOffsetsToTxnResponseData),
1517    EndTxn(EndTxnResponseData),
1518    WriteTxnMarkers(WriteTxnMarkersResponseData),
1519    TxnOffsetCommit(TxnOffsetCommitResponseData),
1520    DescribeAcls(DescribeAclsResponseData),
1521    CreateAcls(CreateAclsResponseData),
1522    DeleteAcls(DeleteAclsResponseData),
1523    DescribeConfigs(DescribeConfigsResponseData),
1524    AlterConfigs(AlterConfigsResponseData),
1525    AlterReplicaLogDirs(AlterReplicaLogDirsResponseData),
1526    DescribeLogDirs(DescribeLogDirsResponseData),
1527    SaslAuthenticate(SaslAuthenticateResponseData),
1528    CreatePartitions(CreatePartitionsResponseData),
1529    CreateDelegationToken(CreateDelegationTokenResponseData),
1530    RenewDelegationToken(RenewDelegationTokenResponseData),
1531    ExpireDelegationToken(ExpireDelegationTokenResponseData),
1532    DescribeDelegationToken(DescribeDelegationTokenResponseData),
1533    DeleteGroups(DeleteGroupsResponseData),
1534    ElectLeaders(ElectLeadersResponseData),
1535    IncrementalAlterConfigs(IncrementalAlterConfigsResponseData),
1536    AlterPartitionReassignments(AlterPartitionReassignmentsResponseData),
1537    ListPartitionReassignments(ListPartitionReassignmentsResponseData),
1538    OffsetDelete(OffsetDeleteResponseData),
1539    DescribeClientQuotas(DescribeClientQuotasResponseData),
1540    AlterClientQuotas(AlterClientQuotasResponseData),
1541    DescribeUserScramCredentials(DescribeUserScramCredentialsResponseData),
1542    AlterUserScramCredentials(AlterUserScramCredentialsResponseData),
1543    Vote(VoteResponseData),
1544    BeginQuorumEpoch(BeginQuorumEpochResponseData),
1545    EndQuorumEpoch(EndQuorumEpochResponseData),
1546    DescribeQuorum(DescribeQuorumResponseData),
1547    AlterPartition(AlterPartitionResponseData),
1548    UpdateFeatures(UpdateFeaturesResponseData),
1549    Envelope(EnvelopeResponseData),
1550    FetchSnapshot(FetchSnapshotResponseData),
1551    DescribeCluster(DescribeClusterResponseData),
1552    DescribeProducers(DescribeProducersResponseData),
1553    BrokerRegistration(BrokerRegistrationResponseData),
1554    BrokerHeartbeat(BrokerHeartbeatResponseData),
1555    UnregisterBroker(UnregisterBrokerResponseData),
1556    DescribeTransactions(DescribeTransactionsResponseData),
1557    ListTransactions(ListTransactionsResponseData),
1558    AllocateProducerIds(AllocateProducerIdsResponseData),
1559    ConsumerGroupHeartbeat(ConsumerGroupHeartbeatResponseData),
1560    ConsumerGroupDescribe(ConsumerGroupDescribeResponseData),
1561    ControllerRegistration(ControllerRegistrationResponseData),
1562    GetTelemetrySubscriptions(GetTelemetrySubscriptionsResponseData),
1563    PushTelemetry(PushTelemetryResponseData),
1564    AssignReplicasToDirs(AssignReplicasToDirsResponseData),
1565    ListConfigResources(ListConfigResourcesResponseData),
1566    DescribeTopicPartitions(DescribeTopicPartitionsResponseData),
1567    ShareGroupHeartbeat(ShareGroupHeartbeatResponseData),
1568    ShareGroupDescribe(ShareGroupDescribeResponseData),
1569    ShareFetch(ShareFetchResponseData),
1570    ShareAcknowledge(ShareAcknowledgeResponseData),
1571    AddRaftVoter(AddRaftVoterResponseData),
1572    RemoveRaftVoter(RemoveRaftVoterResponseData),
1573    UpdateRaftVoter(UpdateRaftVoterResponseData),
1574    InitializeShareGroupState(InitializeShareGroupStateResponseData),
1575    ReadShareGroupState(ReadShareGroupStateResponseData),
1576    WriteShareGroupState(WriteShareGroupStateResponseData),
1577    DeleteShareGroupState(DeleteShareGroupStateResponseData),
1578    ReadShareGroupStateSummary(ReadShareGroupStateSummaryResponseData),
1579    StreamsGroupHeartbeat(StreamsGroupHeartbeatResponseData),
1580    StreamsGroupDescribe(StreamsGroupDescribeResponseData),
1581    DescribeShareGroupOffsets(DescribeShareGroupOffsetsResponseData),
1582    AlterShareGroupOffsets(AlterShareGroupOffsetsResponseData),
1583    DeleteShareGroupOffsets(DeleteShareGroupOffsetsResponseData),
1584}
1585#[cfg(feature = "message-enums")]
1586impl ResponseKind {
1587    pub fn api_key(&self) -> ApiKey {
1588        match self {
1589            ResponseKind::Produce(_) => ApiKey::Produce,
1590            ResponseKind::Fetch(_) => ApiKey::Fetch,
1591            ResponseKind::ListOffsets(_) => ApiKey::ListOffsets,
1592            ResponseKind::Metadata(_) => ApiKey::Metadata,
1593            ResponseKind::LeaderAndIsr(_) => ApiKey::LeaderAndIsr,
1594            ResponseKind::StopReplica(_) => ApiKey::StopReplica,
1595            ResponseKind::UpdateMetadata(_) => ApiKey::UpdateMetadata,
1596            ResponseKind::ControlledShutdown(_) => ApiKey::ControlledShutdown,
1597            ResponseKind::OffsetCommit(_) => ApiKey::OffsetCommit,
1598            ResponseKind::OffsetFetch(_) => ApiKey::OffsetFetch,
1599            ResponseKind::FindCoordinator(_) => ApiKey::FindCoordinator,
1600            ResponseKind::JoinGroup(_) => ApiKey::JoinGroup,
1601            ResponseKind::Heartbeat(_) => ApiKey::Heartbeat,
1602            ResponseKind::LeaveGroup(_) => ApiKey::LeaveGroup,
1603            ResponseKind::SyncGroup(_) => ApiKey::SyncGroup,
1604            ResponseKind::DescribeGroups(_) => ApiKey::DescribeGroups,
1605            ResponseKind::ListGroups(_) => ApiKey::ListGroups,
1606            ResponseKind::SaslHandshake(_) => ApiKey::SaslHandshake,
1607            ResponseKind::ApiVersions(_) => ApiKey::ApiVersions,
1608            ResponseKind::CreateTopics(_) => ApiKey::CreateTopics,
1609            ResponseKind::DeleteTopics(_) => ApiKey::DeleteTopics,
1610            ResponseKind::DeleteRecords(_) => ApiKey::DeleteRecords,
1611            ResponseKind::InitProducerId(_) => ApiKey::InitProducerId,
1612            ResponseKind::OffsetForLeaderEpoch(_) => ApiKey::OffsetForLeaderEpoch,
1613            ResponseKind::AddPartitionsToTxn(_) => ApiKey::AddPartitionsToTxn,
1614            ResponseKind::AddOffsetsToTxn(_) => ApiKey::AddOffsetsToTxn,
1615            ResponseKind::EndTxn(_) => ApiKey::EndTxn,
1616            ResponseKind::WriteTxnMarkers(_) => ApiKey::WriteTxnMarkers,
1617            ResponseKind::TxnOffsetCommit(_) => ApiKey::TxnOffsetCommit,
1618            ResponseKind::DescribeAcls(_) => ApiKey::DescribeAcls,
1619            ResponseKind::CreateAcls(_) => ApiKey::CreateAcls,
1620            ResponseKind::DeleteAcls(_) => ApiKey::DeleteAcls,
1621            ResponseKind::DescribeConfigs(_) => ApiKey::DescribeConfigs,
1622            ResponseKind::AlterConfigs(_) => ApiKey::AlterConfigs,
1623            ResponseKind::AlterReplicaLogDirs(_) => ApiKey::AlterReplicaLogDirs,
1624            ResponseKind::DescribeLogDirs(_) => ApiKey::DescribeLogDirs,
1625            ResponseKind::SaslAuthenticate(_) => ApiKey::SaslAuthenticate,
1626            ResponseKind::CreatePartitions(_) => ApiKey::CreatePartitions,
1627            ResponseKind::CreateDelegationToken(_) => ApiKey::CreateDelegationToken,
1628            ResponseKind::RenewDelegationToken(_) => ApiKey::RenewDelegationToken,
1629            ResponseKind::ExpireDelegationToken(_) => ApiKey::ExpireDelegationToken,
1630            ResponseKind::DescribeDelegationToken(_) => ApiKey::DescribeDelegationToken,
1631            ResponseKind::DeleteGroups(_) => ApiKey::DeleteGroups,
1632            ResponseKind::ElectLeaders(_) => ApiKey::ElectLeaders,
1633            ResponseKind::IncrementalAlterConfigs(_) => ApiKey::IncrementalAlterConfigs,
1634            ResponseKind::AlterPartitionReassignments(_) => ApiKey::AlterPartitionReassignments,
1635            ResponseKind::ListPartitionReassignments(_) => ApiKey::ListPartitionReassignments,
1636            ResponseKind::OffsetDelete(_) => ApiKey::OffsetDelete,
1637            ResponseKind::DescribeClientQuotas(_) => ApiKey::DescribeClientQuotas,
1638            ResponseKind::AlterClientQuotas(_) => ApiKey::AlterClientQuotas,
1639            ResponseKind::DescribeUserScramCredentials(_) => ApiKey::DescribeUserScramCredentials,
1640            ResponseKind::AlterUserScramCredentials(_) => ApiKey::AlterUserScramCredentials,
1641            ResponseKind::Vote(_) => ApiKey::Vote,
1642            ResponseKind::BeginQuorumEpoch(_) => ApiKey::BeginQuorumEpoch,
1643            ResponseKind::EndQuorumEpoch(_) => ApiKey::EndQuorumEpoch,
1644            ResponseKind::DescribeQuorum(_) => ApiKey::DescribeQuorum,
1645            ResponseKind::AlterPartition(_) => ApiKey::AlterPartition,
1646            ResponseKind::UpdateFeatures(_) => ApiKey::UpdateFeatures,
1647            ResponseKind::Envelope(_) => ApiKey::Envelope,
1648            ResponseKind::FetchSnapshot(_) => ApiKey::FetchSnapshot,
1649            ResponseKind::DescribeCluster(_) => ApiKey::DescribeCluster,
1650            ResponseKind::DescribeProducers(_) => ApiKey::DescribeProducers,
1651            ResponseKind::BrokerRegistration(_) => ApiKey::BrokerRegistration,
1652            ResponseKind::BrokerHeartbeat(_) => ApiKey::BrokerHeartbeat,
1653            ResponseKind::UnregisterBroker(_) => ApiKey::UnregisterBroker,
1654            ResponseKind::DescribeTransactions(_) => ApiKey::DescribeTransactions,
1655            ResponseKind::ListTransactions(_) => ApiKey::ListTransactions,
1656            ResponseKind::AllocateProducerIds(_) => ApiKey::AllocateProducerIds,
1657            ResponseKind::ConsumerGroupHeartbeat(_) => ApiKey::ConsumerGroupHeartbeat,
1658            ResponseKind::ConsumerGroupDescribe(_) => ApiKey::ConsumerGroupDescribe,
1659            ResponseKind::ControllerRegistration(_) => ApiKey::ControllerRegistration,
1660            ResponseKind::GetTelemetrySubscriptions(_) => ApiKey::GetTelemetrySubscriptions,
1661            ResponseKind::PushTelemetry(_) => ApiKey::PushTelemetry,
1662            ResponseKind::AssignReplicasToDirs(_) => ApiKey::AssignReplicasToDirs,
1663            ResponseKind::ListConfigResources(_) => ApiKey::ListConfigResources,
1664            ResponseKind::DescribeTopicPartitions(_) => ApiKey::DescribeTopicPartitions,
1665            ResponseKind::ShareGroupHeartbeat(_) => ApiKey::ShareGroupHeartbeat,
1666            ResponseKind::ShareGroupDescribe(_) => ApiKey::ShareGroupDescribe,
1667            ResponseKind::ShareFetch(_) => ApiKey::ShareFetch,
1668            ResponseKind::ShareAcknowledge(_) => ApiKey::ShareAcknowledge,
1669            ResponseKind::AddRaftVoter(_) => ApiKey::AddRaftVoter,
1670            ResponseKind::RemoveRaftVoter(_) => ApiKey::RemoveRaftVoter,
1671            ResponseKind::UpdateRaftVoter(_) => ApiKey::UpdateRaftVoter,
1672            ResponseKind::InitializeShareGroupState(_) => ApiKey::InitializeShareGroupState,
1673            ResponseKind::ReadShareGroupState(_) => ApiKey::ReadShareGroupState,
1674            ResponseKind::WriteShareGroupState(_) => ApiKey::WriteShareGroupState,
1675            ResponseKind::DeleteShareGroupState(_) => ApiKey::DeleteShareGroupState,
1676            ResponseKind::ReadShareGroupStateSummary(_) => ApiKey::ReadShareGroupStateSummary,
1677            ResponseKind::StreamsGroupHeartbeat(_) => ApiKey::StreamsGroupHeartbeat,
1678            ResponseKind::StreamsGroupDescribe(_) => ApiKey::StreamsGroupDescribe,
1679            ResponseKind::DescribeShareGroupOffsets(_) => ApiKey::DescribeShareGroupOffsets,
1680            ResponseKind::AlterShareGroupOffsets(_) => ApiKey::AlterShareGroupOffsets,
1681            ResponseKind::DeleteShareGroupOffsets(_) => ApiKey::DeleteShareGroupOffsets,
1682        }
1683    }
1684    pub fn write(&self, buf: &mut BytesMut, version: i16) -> crate::Result<()> {
1685        match self {
1686            ResponseKind::Produce(message) => message.write(buf, version),
1687            ResponseKind::Fetch(message) => message.write(buf, version),
1688            ResponseKind::ListOffsets(message) => message.write(buf, version),
1689            ResponseKind::Metadata(message) => message.write(buf, version),
1690            ResponseKind::LeaderAndIsr(message) => message.write(buf, version),
1691            ResponseKind::StopReplica(message) => message.write(buf, version),
1692            ResponseKind::UpdateMetadata(message) => message.write(buf, version),
1693            ResponseKind::ControlledShutdown(message) => message.write(buf, version),
1694            ResponseKind::OffsetCommit(message) => message.write(buf, version),
1695            ResponseKind::OffsetFetch(message) => message.write(buf, version),
1696            ResponseKind::FindCoordinator(message) => message.write(buf, version),
1697            ResponseKind::JoinGroup(message) => message.write(buf, version),
1698            ResponseKind::Heartbeat(message) => message.write(buf, version),
1699            ResponseKind::LeaveGroup(message) => message.write(buf, version),
1700            ResponseKind::SyncGroup(message) => message.write(buf, version),
1701            ResponseKind::DescribeGroups(message) => message.write(buf, version),
1702            ResponseKind::ListGroups(message) => message.write(buf, version),
1703            ResponseKind::SaslHandshake(message) => message.write(buf, version),
1704            ResponseKind::ApiVersions(message) => message.write(buf, version),
1705            ResponseKind::CreateTopics(message) => message.write(buf, version),
1706            ResponseKind::DeleteTopics(message) => message.write(buf, version),
1707            ResponseKind::DeleteRecords(message) => message.write(buf, version),
1708            ResponseKind::InitProducerId(message) => message.write(buf, version),
1709            ResponseKind::OffsetForLeaderEpoch(message) => message.write(buf, version),
1710            ResponseKind::AddPartitionsToTxn(message) => message.write(buf, version),
1711            ResponseKind::AddOffsetsToTxn(message) => message.write(buf, version),
1712            ResponseKind::EndTxn(message) => message.write(buf, version),
1713            ResponseKind::WriteTxnMarkers(message) => message.write(buf, version),
1714            ResponseKind::TxnOffsetCommit(message) => message.write(buf, version),
1715            ResponseKind::DescribeAcls(message) => message.write(buf, version),
1716            ResponseKind::CreateAcls(message) => message.write(buf, version),
1717            ResponseKind::DeleteAcls(message) => message.write(buf, version),
1718            ResponseKind::DescribeConfigs(message) => message.write(buf, version),
1719            ResponseKind::AlterConfigs(message) => message.write(buf, version),
1720            ResponseKind::AlterReplicaLogDirs(message) => message.write(buf, version),
1721            ResponseKind::DescribeLogDirs(message) => message.write(buf, version),
1722            ResponseKind::SaslAuthenticate(message) => message.write(buf, version),
1723            ResponseKind::CreatePartitions(message) => message.write(buf, version),
1724            ResponseKind::CreateDelegationToken(message) => message.write(buf, version),
1725            ResponseKind::RenewDelegationToken(message) => message.write(buf, version),
1726            ResponseKind::ExpireDelegationToken(message) => message.write(buf, version),
1727            ResponseKind::DescribeDelegationToken(message) => message.write(buf, version),
1728            ResponseKind::DeleteGroups(message) => message.write(buf, version),
1729            ResponseKind::ElectLeaders(message) => message.write(buf, version),
1730            ResponseKind::IncrementalAlterConfigs(message) => message.write(buf, version),
1731            ResponseKind::AlterPartitionReassignments(message) => message.write(buf, version),
1732            ResponseKind::ListPartitionReassignments(message) => message.write(buf, version),
1733            ResponseKind::OffsetDelete(message) => message.write(buf, version),
1734            ResponseKind::DescribeClientQuotas(message) => message.write(buf, version),
1735            ResponseKind::AlterClientQuotas(message) => message.write(buf, version),
1736            ResponseKind::DescribeUserScramCredentials(message) => message.write(buf, version),
1737            ResponseKind::AlterUserScramCredentials(message) => message.write(buf, version),
1738            ResponseKind::Vote(message) => message.write(buf, version),
1739            ResponseKind::BeginQuorumEpoch(message) => message.write(buf, version),
1740            ResponseKind::EndQuorumEpoch(message) => message.write(buf, version),
1741            ResponseKind::DescribeQuorum(message) => message.write(buf, version),
1742            ResponseKind::AlterPartition(message) => message.write(buf, version),
1743            ResponseKind::UpdateFeatures(message) => message.write(buf, version),
1744            ResponseKind::Envelope(message) => message.write(buf, version),
1745            ResponseKind::FetchSnapshot(message) => message.write(buf, version),
1746            ResponseKind::DescribeCluster(message) => message.write(buf, version),
1747            ResponseKind::DescribeProducers(message) => message.write(buf, version),
1748            ResponseKind::BrokerRegistration(message) => message.write(buf, version),
1749            ResponseKind::BrokerHeartbeat(message) => message.write(buf, version),
1750            ResponseKind::UnregisterBroker(message) => message.write(buf, version),
1751            ResponseKind::DescribeTransactions(message) => message.write(buf, version),
1752            ResponseKind::ListTransactions(message) => message.write(buf, version),
1753            ResponseKind::AllocateProducerIds(message) => message.write(buf, version),
1754            ResponseKind::ConsumerGroupHeartbeat(message) => message.write(buf, version),
1755            ResponseKind::ConsumerGroupDescribe(message) => message.write(buf, version),
1756            ResponseKind::ControllerRegistration(message) => message.write(buf, version),
1757            ResponseKind::GetTelemetrySubscriptions(message) => message.write(buf, version),
1758            ResponseKind::PushTelemetry(message) => message.write(buf, version),
1759            ResponseKind::AssignReplicasToDirs(message) => message.write(buf, version),
1760            ResponseKind::ListConfigResources(message) => message.write(buf, version),
1761            ResponseKind::DescribeTopicPartitions(message) => message.write(buf, version),
1762            ResponseKind::ShareGroupHeartbeat(message) => message.write(buf, version),
1763            ResponseKind::ShareGroupDescribe(message) => message.write(buf, version),
1764            ResponseKind::ShareFetch(message) => message.write(buf, version),
1765            ResponseKind::ShareAcknowledge(message) => message.write(buf, version),
1766            ResponseKind::AddRaftVoter(message) => message.write(buf, version),
1767            ResponseKind::RemoveRaftVoter(message) => message.write(buf, version),
1768            ResponseKind::UpdateRaftVoter(message) => message.write(buf, version),
1769            ResponseKind::InitializeShareGroupState(message) => message.write(buf, version),
1770            ResponseKind::ReadShareGroupState(message) => message.write(buf, version),
1771            ResponseKind::WriteShareGroupState(message) => message.write(buf, version),
1772            ResponseKind::DeleteShareGroupState(message) => message.write(buf, version),
1773            ResponseKind::ReadShareGroupStateSummary(message) => message.write(buf, version),
1774            ResponseKind::StreamsGroupHeartbeat(message) => message.write(buf, version),
1775            ResponseKind::StreamsGroupDescribe(message) => message.write(buf, version),
1776            ResponseKind::DescribeShareGroupOffsets(message) => message.write(buf, version),
1777            ResponseKind::AlterShareGroupOffsets(message) => message.write(buf, version),
1778            ResponseKind::DeleteShareGroupOffsets(message) => message.write(buf, version),
1779        }
1780    }
1781    pub fn encoded_len(&self, version: i16) -> crate::Result<usize> {
1782        match self {
1783            ResponseKind::Produce(message) => message.encoded_len(version),
1784            ResponseKind::Fetch(message) => message.encoded_len(version),
1785            ResponseKind::ListOffsets(message) => message.encoded_len(version),
1786            ResponseKind::Metadata(message) => message.encoded_len(version),
1787            ResponseKind::LeaderAndIsr(message) => message.encoded_len(version),
1788            ResponseKind::StopReplica(message) => message.encoded_len(version),
1789            ResponseKind::UpdateMetadata(message) => message.encoded_len(version),
1790            ResponseKind::ControlledShutdown(message) => message.encoded_len(version),
1791            ResponseKind::OffsetCommit(message) => message.encoded_len(version),
1792            ResponseKind::OffsetFetch(message) => message.encoded_len(version),
1793            ResponseKind::FindCoordinator(message) => message.encoded_len(version),
1794            ResponseKind::JoinGroup(message) => message.encoded_len(version),
1795            ResponseKind::Heartbeat(message) => message.encoded_len(version),
1796            ResponseKind::LeaveGroup(message) => message.encoded_len(version),
1797            ResponseKind::SyncGroup(message) => message.encoded_len(version),
1798            ResponseKind::DescribeGroups(message) => message.encoded_len(version),
1799            ResponseKind::ListGroups(message) => message.encoded_len(version),
1800            ResponseKind::SaslHandshake(message) => message.encoded_len(version),
1801            ResponseKind::ApiVersions(message) => message.encoded_len(version),
1802            ResponseKind::CreateTopics(message) => message.encoded_len(version),
1803            ResponseKind::DeleteTopics(message) => message.encoded_len(version),
1804            ResponseKind::DeleteRecords(message) => message.encoded_len(version),
1805            ResponseKind::InitProducerId(message) => message.encoded_len(version),
1806            ResponseKind::OffsetForLeaderEpoch(message) => message.encoded_len(version),
1807            ResponseKind::AddPartitionsToTxn(message) => message.encoded_len(version),
1808            ResponseKind::AddOffsetsToTxn(message) => message.encoded_len(version),
1809            ResponseKind::EndTxn(message) => message.encoded_len(version),
1810            ResponseKind::WriteTxnMarkers(message) => message.encoded_len(version),
1811            ResponseKind::TxnOffsetCommit(message) => message.encoded_len(version),
1812            ResponseKind::DescribeAcls(message) => message.encoded_len(version),
1813            ResponseKind::CreateAcls(message) => message.encoded_len(version),
1814            ResponseKind::DeleteAcls(message) => message.encoded_len(version),
1815            ResponseKind::DescribeConfigs(message) => message.encoded_len(version),
1816            ResponseKind::AlterConfigs(message) => message.encoded_len(version),
1817            ResponseKind::AlterReplicaLogDirs(message) => message.encoded_len(version),
1818            ResponseKind::DescribeLogDirs(message) => message.encoded_len(version),
1819            ResponseKind::SaslAuthenticate(message) => message.encoded_len(version),
1820            ResponseKind::CreatePartitions(message) => message.encoded_len(version),
1821            ResponseKind::CreateDelegationToken(message) => message.encoded_len(version),
1822            ResponseKind::RenewDelegationToken(message) => message.encoded_len(version),
1823            ResponseKind::ExpireDelegationToken(message) => message.encoded_len(version),
1824            ResponseKind::DescribeDelegationToken(message) => message.encoded_len(version),
1825            ResponseKind::DeleteGroups(message) => message.encoded_len(version),
1826            ResponseKind::ElectLeaders(message) => message.encoded_len(version),
1827            ResponseKind::IncrementalAlterConfigs(message) => message.encoded_len(version),
1828            ResponseKind::AlterPartitionReassignments(message) => message.encoded_len(version),
1829            ResponseKind::ListPartitionReassignments(message) => message.encoded_len(version),
1830            ResponseKind::OffsetDelete(message) => message.encoded_len(version),
1831            ResponseKind::DescribeClientQuotas(message) => message.encoded_len(version),
1832            ResponseKind::AlterClientQuotas(message) => message.encoded_len(version),
1833            ResponseKind::DescribeUserScramCredentials(message) => message.encoded_len(version),
1834            ResponseKind::AlterUserScramCredentials(message) => message.encoded_len(version),
1835            ResponseKind::Vote(message) => message.encoded_len(version),
1836            ResponseKind::BeginQuorumEpoch(message) => message.encoded_len(version),
1837            ResponseKind::EndQuorumEpoch(message) => message.encoded_len(version),
1838            ResponseKind::DescribeQuorum(message) => message.encoded_len(version),
1839            ResponseKind::AlterPartition(message) => message.encoded_len(version),
1840            ResponseKind::UpdateFeatures(message) => message.encoded_len(version),
1841            ResponseKind::Envelope(message) => message.encoded_len(version),
1842            ResponseKind::FetchSnapshot(message) => message.encoded_len(version),
1843            ResponseKind::DescribeCluster(message) => message.encoded_len(version),
1844            ResponseKind::DescribeProducers(message) => message.encoded_len(version),
1845            ResponseKind::BrokerRegistration(message) => message.encoded_len(version),
1846            ResponseKind::BrokerHeartbeat(message) => message.encoded_len(version),
1847            ResponseKind::UnregisterBroker(message) => message.encoded_len(version),
1848            ResponseKind::DescribeTransactions(message) => message.encoded_len(version),
1849            ResponseKind::ListTransactions(message) => message.encoded_len(version),
1850            ResponseKind::AllocateProducerIds(message) => message.encoded_len(version),
1851            ResponseKind::ConsumerGroupHeartbeat(message) => message.encoded_len(version),
1852            ResponseKind::ConsumerGroupDescribe(message) => message.encoded_len(version),
1853            ResponseKind::ControllerRegistration(message) => message.encoded_len(version),
1854            ResponseKind::GetTelemetrySubscriptions(message) => message.encoded_len(version),
1855            ResponseKind::PushTelemetry(message) => message.encoded_len(version),
1856            ResponseKind::AssignReplicasToDirs(message) => message.encoded_len(version),
1857            ResponseKind::ListConfigResources(message) => message.encoded_len(version),
1858            ResponseKind::DescribeTopicPartitions(message) => message.encoded_len(version),
1859            ResponseKind::ShareGroupHeartbeat(message) => message.encoded_len(version),
1860            ResponseKind::ShareGroupDescribe(message) => message.encoded_len(version),
1861            ResponseKind::ShareFetch(message) => message.encoded_len(version),
1862            ResponseKind::ShareAcknowledge(message) => message.encoded_len(version),
1863            ResponseKind::AddRaftVoter(message) => message.encoded_len(version),
1864            ResponseKind::RemoveRaftVoter(message) => message.encoded_len(version),
1865            ResponseKind::UpdateRaftVoter(message) => message.encoded_len(version),
1866            ResponseKind::InitializeShareGroupState(message) => message.encoded_len(version),
1867            ResponseKind::ReadShareGroupState(message) => message.encoded_len(version),
1868            ResponseKind::WriteShareGroupState(message) => message.encoded_len(version),
1869            ResponseKind::DeleteShareGroupState(message) => message.encoded_len(version),
1870            ResponseKind::ReadShareGroupStateSummary(message) => message.encoded_len(version),
1871            ResponseKind::StreamsGroupHeartbeat(message) => message.encoded_len(version),
1872            ResponseKind::StreamsGroupDescribe(message) => message.encoded_len(version),
1873            ResponseKind::DescribeShareGroupOffsets(message) => message.encoded_len(version),
1874            ResponseKind::AlterShareGroupOffsets(message) => message.encoded_len(version),
1875            ResponseKind::DeleteShareGroupOffsets(message) => message.encoded_len(version),
1876        }
1877    }
1878}