krabka-protocol 0.8.0

Apache Kafka wire-protocol codec (4.3.0), with typed RecordBatch and zero-copy borrowed decode
Documentation
// AUTO-GENERATED by krabka-protocol-codegen against a9ce3221537b8653448750697915607dc7936cf3. Do not edit.
// To regenerate: ./tools/regenerate.sh

/// Kafka API key registry generated from the vendored schemas.
///
/// Each variant corresponds to a request/response pair defined in the schemas.
/// Variants with `validVersions = "none"` are omitted (reserved keys with no
/// currently-valid wire version).
///
/// The enum is `#[non_exhaustive]` so that adding variants for new Kafka API
/// keys in future schema updates is non-breaking.
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, strum::IntoStaticStr)]
#[repr(i16)]
#[non_exhaustive]
pub enum ApiKey {
    /// `ProduceRequest` (versions 3–13).
    Produce = 0,
    /// `FetchRequest` (versions 4–18).
    Fetch = 1,
    /// `ListOffsetsRequest` (versions 1–11).
    ListOffsets = 2,
    /// `MetadataRequest` (versions 0–13).
    Metadata = 3,
    /// `OffsetCommitRequest` (versions 2–10).
    OffsetCommit = 8,
    /// `OffsetFetchRequest` (versions 1–10).
    OffsetFetch = 9,
    /// `FindCoordinatorRequest` (versions 0–6).
    FindCoordinator = 10,
    /// `JoinGroupRequest` (versions 0–9).
    JoinGroup = 11,
    /// `HeartbeatRequest` (versions 0–4).
    Heartbeat = 12,
    /// `LeaveGroupRequest` (versions 0–5).
    LeaveGroup = 13,
    /// `SyncGroupRequest` (versions 0–5).
    SyncGroup = 14,
    /// `DescribeGroupsRequest` (versions 0–6).
    DescribeGroups = 15,
    /// `ListGroupsRequest` (versions 0–5).
    ListGroups = 16,
    /// `SaslHandshakeRequest` (versions 0–1).
    SaslHandshake = 17,
    /// `ApiVersionsRequest` (versions 0–5).
    ApiVersions = 18,
    /// `CreateTopicsRequest` (versions 2–7).
    CreateTopics = 19,
    /// `DeleteTopicsRequest` (versions 1–6).
    DeleteTopics = 20,
    /// `DeleteRecordsRequest` (versions 0–2).
    DeleteRecords = 21,
    /// `InitProducerIdRequest` (versions 0–6).
    InitProducerId = 22,
    /// `OffsetForLeaderEpochRequest` (versions 2–4).
    OffsetForLeaderEpoch = 23,
    /// `AddPartitionsToTxnRequest` (versions 0–5).
    AddPartitionsToTxn = 24,
    /// `AddOffsetsToTxnRequest` (versions 0–4).
    AddOffsetsToTxn = 25,
    /// `EndTxnRequest` (versions 0–5).
    EndTxn = 26,
    /// `WriteTxnMarkersRequest` (versions 1–2).
    WriteTxnMarkers = 27,
    /// `TxnOffsetCommitRequest` (versions 0–6).
    TxnOffsetCommit = 28,
    /// `DescribeAclsRequest` (versions 1–3).
    DescribeAcls = 29,
    /// `CreateAclsRequest` (versions 1–3).
    CreateAcls = 30,
    /// `DeleteAclsRequest` (versions 1–3).
    DeleteAcls = 31,
    /// `DescribeConfigsRequest` (versions 1–4).
    DescribeConfigs = 32,
    /// `AlterConfigsRequest` (versions 0–2).
    AlterConfigs = 33,
    /// `AlterReplicaLogDirsRequest` (versions 1–2).
    AlterReplicaLogDirs = 34,
    /// `DescribeLogDirsRequest` (versions 1–5).
    DescribeLogDirs = 35,
    /// `SaslAuthenticateRequest` (versions 0–2).
    SaslAuthenticate = 36,
    /// `CreatePartitionsRequest` (versions 0–3).
    CreatePartitions = 37,
    /// `CreateDelegationTokenRequest` (versions 1–3).
    CreateDelegationToken = 38,
    /// `RenewDelegationTokenRequest` (versions 1–2).
    RenewDelegationToken = 39,
    /// `ExpireDelegationTokenRequest` (versions 1–2).
    ExpireDelegationToken = 40,
    /// `DescribeDelegationTokenRequest` (versions 1–3).
    DescribeDelegationToken = 41,
    /// `DeleteGroupsRequest` (versions 0–3).
    DeleteGroups = 42,
    /// `ElectLeadersRequest` (versions 0–2).
    ElectLeaders = 43,
    /// `IncrementalAlterConfigsRequest` (versions 0–1).
    IncrementalAlterConfigs = 44,
    /// `AlterPartitionReassignmentsRequest` (versions 0–1).
    AlterPartitionReassignments = 45,
    /// `ListPartitionReassignmentsRequest` (versions 0–0).
    ListPartitionReassignments = 46,
    /// `OffsetDeleteRequest` (versions 0–0).
    OffsetDelete = 47,
    /// `DescribeClientQuotasRequest` (versions 0–1).
    DescribeClientQuotas = 48,
    /// `AlterClientQuotasRequest` (versions 0–1).
    AlterClientQuotas = 49,
    /// `DescribeUserScramCredentialsRequest` (versions 0–0).
    DescribeUserScramCredentials = 50,
    /// `AlterUserScramCredentialsRequest` (versions 0–0).
    AlterUserScramCredentials = 51,
    /// `VoteRequest` (versions 0–2).
    Vote = 52,
    /// `BeginQuorumEpochRequest` (versions 0–1).
    BeginQuorumEpoch = 53,
    /// `EndQuorumEpochRequest` (versions 0–1).
    EndQuorumEpoch = 54,
    /// `DescribeQuorumRequest` (versions 0–2).
    DescribeQuorum = 55,
    /// `AlterPartitionRequest` (versions 2–3).
    AlterPartition = 56,
    /// `UpdateFeaturesRequest` (versions 0–2).
    UpdateFeatures = 57,
    /// `EnvelopeRequest` (versions 0–0).
    Envelope = 58,
    /// `FetchSnapshotRequest` (versions 0–1).
    FetchSnapshot = 59,
    /// `DescribeClusterRequest` (versions 0–2).
    DescribeCluster = 60,
    /// `DescribeProducersRequest` (versions 0–0).
    DescribeProducers = 61,
    /// `BrokerRegistrationRequest` (versions 0–4).
    BrokerRegistration = 62,
    /// `BrokerHeartbeatRequest` (versions 0–2).
    BrokerHeartbeat = 63,
    /// `UnregisterBrokerRequest` (versions 0–0).
    UnregisterBroker = 64,
    /// `DescribeTransactionsRequest` (versions 0–0).
    DescribeTransactions = 65,
    /// `ListTransactionsRequest` (versions 0–2).
    ListTransactions = 66,
    /// `AllocateProducerIdsRequest` (versions 0–0).
    AllocateProducerIds = 67,
    /// `ConsumerGroupHeartbeatRequest` (versions 0–1).
    ConsumerGroupHeartbeat = 68,
    /// `ConsumerGroupDescribeRequest` (versions 0–1).
    ConsumerGroupDescribe = 69,
    /// `ControllerRegistrationRequest` (versions 0–0).
    ControllerRegistration = 70,
    /// `GetTelemetrySubscriptionsRequest` (versions 0–0).
    GetTelemetrySubscriptions = 71,
    /// `PushTelemetryRequest` (versions 0–0).
    PushTelemetry = 72,
    /// `AssignReplicasToDirsRequest` (versions 0–0).
    AssignReplicasToDirs = 73,
    /// `ListConfigResourcesRequest` (versions 0–1).
    ListConfigResources = 74,
    /// `DescribeTopicPartitionsRequest` (versions 0–0).
    DescribeTopicPartitions = 75,
    /// `ShareGroupHeartbeatRequest` (versions 1–1).
    ShareGroupHeartbeat = 76,
    /// `ShareGroupDescribeRequest` (versions 1–1).
    ShareGroupDescribe = 77,
    /// `ShareFetchRequest` (versions 1–2).
    ShareFetch = 78,
    /// `ShareAcknowledgeRequest` (versions 1–2).
    ShareAcknowledge = 79,
    /// `AddRaftVoterRequest` (versions 0–1).
    AddRaftVoter = 80,
    /// `RemoveRaftVoterRequest` (versions 0–0).
    RemoveRaftVoter = 81,
    /// `UpdateRaftVoterRequest` (versions 0–0).
    UpdateRaftVoter = 82,
    /// `InitializeShareGroupStateRequest` (versions 0–0).
    InitializeShareGroupState = 83,
    /// `ReadShareGroupStateRequest` (versions 0–0).
    ReadShareGroupState = 84,
    /// `WriteShareGroupStateRequest` (versions 0–1).
    WriteShareGroupState = 85,
    /// `DeleteShareGroupStateRequest` (versions 0–0).
    DeleteShareGroupState = 86,
    /// `ReadShareGroupStateSummaryRequest` (versions 0–1).
    ReadShareGroupStateSummary = 87,
    /// `StreamsGroupHeartbeatRequest` (versions 0–1).
    StreamsGroupHeartbeat = 88,
    /// `StreamsGroupDescribeRequest` (versions 0–1).
    StreamsGroupDescribe = 89,
    /// `DescribeShareGroupOffsetsRequest` (versions 0–1).
    DescribeShareGroupOffsets = 90,
    /// `AlterShareGroupOffsetsRequest` (versions 0–0).
    AlterShareGroupOffsets = 91,
    /// `DeleteShareGroupOffsetsRequest` (versions 0–0).
    DeleteShareGroupOffsets = 92,
    /// `StreamsGroupTopologyDescriptionUpdateRequest` (versions 0–0).
    StreamsGroupTopologyDescriptionUpdate = 93,
    /// `UnregisterControllerRequest` (versions 0–0).
    UnregisterController = 94,
    /// `GetReplicaLogInfoRequest` (versions 0–0).
    GetReplicaLogInfo = 1020,
}
impl ApiKey {
    /// All known API keys, in ascending numeric order.
    pub const ALL: &'static [Self] = &[
        Self::Produce,
        Self::Fetch,
        Self::ListOffsets,
        Self::Metadata,
        Self::OffsetCommit,
        Self::OffsetFetch,
        Self::FindCoordinator,
        Self::JoinGroup,
        Self::Heartbeat,
        Self::LeaveGroup,
        Self::SyncGroup,
        Self::DescribeGroups,
        Self::ListGroups,
        Self::SaslHandshake,
        Self::ApiVersions,
        Self::CreateTopics,
        Self::DeleteTopics,
        Self::DeleteRecords,
        Self::InitProducerId,
        Self::OffsetForLeaderEpoch,
        Self::AddPartitionsToTxn,
        Self::AddOffsetsToTxn,
        Self::EndTxn,
        Self::WriteTxnMarkers,
        Self::TxnOffsetCommit,
        Self::DescribeAcls,
        Self::CreateAcls,
        Self::DeleteAcls,
        Self::DescribeConfigs,
        Self::AlterConfigs,
        Self::AlterReplicaLogDirs,
        Self::DescribeLogDirs,
        Self::SaslAuthenticate,
        Self::CreatePartitions,
        Self::CreateDelegationToken,
        Self::RenewDelegationToken,
        Self::ExpireDelegationToken,
        Self::DescribeDelegationToken,
        Self::DeleteGroups,
        Self::ElectLeaders,
        Self::IncrementalAlterConfigs,
        Self::AlterPartitionReassignments,
        Self::ListPartitionReassignments,
        Self::OffsetDelete,
        Self::DescribeClientQuotas,
        Self::AlterClientQuotas,
        Self::DescribeUserScramCredentials,
        Self::AlterUserScramCredentials,
        Self::Vote,
        Self::BeginQuorumEpoch,
        Self::EndQuorumEpoch,
        Self::DescribeQuorum,
        Self::AlterPartition,
        Self::UpdateFeatures,
        Self::Envelope,
        Self::FetchSnapshot,
        Self::DescribeCluster,
        Self::DescribeProducers,
        Self::BrokerRegistration,
        Self::BrokerHeartbeat,
        Self::UnregisterBroker,
        Self::DescribeTransactions,
        Self::ListTransactions,
        Self::AllocateProducerIds,
        Self::ConsumerGroupHeartbeat,
        Self::ConsumerGroupDescribe,
        Self::ControllerRegistration,
        Self::GetTelemetrySubscriptions,
        Self::PushTelemetry,
        Self::AssignReplicasToDirs,
        Self::ListConfigResources,
        Self::DescribeTopicPartitions,
        Self::ShareGroupHeartbeat,
        Self::ShareGroupDescribe,
        Self::ShareFetch,
        Self::ShareAcknowledge,
        Self::AddRaftVoter,
        Self::RemoveRaftVoter,
        Self::UpdateRaftVoter,
        Self::InitializeShareGroupState,
        Self::ReadShareGroupState,
        Self::WriteShareGroupState,
        Self::DeleteShareGroupState,
        Self::ReadShareGroupStateSummary,
        Self::StreamsGroupHeartbeat,
        Self::StreamsGroupDescribe,
        Self::DescribeShareGroupOffsets,
        Self::AlterShareGroupOffsets,
        Self::DeleteShareGroupOffsets,
        Self::StreamsGroupTopologyDescriptionUpdate,
        Self::UnregisterController,
        Self::GetReplicaLogInfo,
    ];
    /// Resolve from numeric key; returns `None` for unknown keys.
    #[must_use]
    pub fn from_i16(k: i16) -> Option<Self> {
        match k {
            0 => Some(Self::Produce),
            1 => Some(Self::Fetch),
            2 => Some(Self::ListOffsets),
            3 => Some(Self::Metadata),
            8 => Some(Self::OffsetCommit),
            9 => Some(Self::OffsetFetch),
            10 => Some(Self::FindCoordinator),
            11 => Some(Self::JoinGroup),
            12 => Some(Self::Heartbeat),
            13 => Some(Self::LeaveGroup),
            14 => Some(Self::SyncGroup),
            15 => Some(Self::DescribeGroups),
            16 => Some(Self::ListGroups),
            17 => Some(Self::SaslHandshake),
            18 => Some(Self::ApiVersions),
            19 => Some(Self::CreateTopics),
            20 => Some(Self::DeleteTopics),
            21 => Some(Self::DeleteRecords),
            22 => Some(Self::InitProducerId),
            23 => Some(Self::OffsetForLeaderEpoch),
            24 => Some(Self::AddPartitionsToTxn),
            25 => Some(Self::AddOffsetsToTxn),
            26 => Some(Self::EndTxn),
            27 => Some(Self::WriteTxnMarkers),
            28 => Some(Self::TxnOffsetCommit),
            29 => Some(Self::DescribeAcls),
            30 => Some(Self::CreateAcls),
            31 => Some(Self::DeleteAcls),
            32 => Some(Self::DescribeConfigs),
            33 => Some(Self::AlterConfigs),
            34 => Some(Self::AlterReplicaLogDirs),
            35 => Some(Self::DescribeLogDirs),
            36 => Some(Self::SaslAuthenticate),
            37 => Some(Self::CreatePartitions),
            38 => Some(Self::CreateDelegationToken),
            39 => Some(Self::RenewDelegationToken),
            40 => Some(Self::ExpireDelegationToken),
            41 => Some(Self::DescribeDelegationToken),
            42 => Some(Self::DeleteGroups),
            43 => Some(Self::ElectLeaders),
            44 => Some(Self::IncrementalAlterConfigs),
            45 => Some(Self::AlterPartitionReassignments),
            46 => Some(Self::ListPartitionReassignments),
            47 => Some(Self::OffsetDelete),
            48 => Some(Self::DescribeClientQuotas),
            49 => Some(Self::AlterClientQuotas),
            50 => Some(Self::DescribeUserScramCredentials),
            51 => Some(Self::AlterUserScramCredentials),
            52 => Some(Self::Vote),
            53 => Some(Self::BeginQuorumEpoch),
            54 => Some(Self::EndQuorumEpoch),
            55 => Some(Self::DescribeQuorum),
            56 => Some(Self::AlterPartition),
            57 => Some(Self::UpdateFeatures),
            58 => Some(Self::Envelope),
            59 => Some(Self::FetchSnapshot),
            60 => Some(Self::DescribeCluster),
            61 => Some(Self::DescribeProducers),
            62 => Some(Self::BrokerRegistration),
            63 => Some(Self::BrokerHeartbeat),
            64 => Some(Self::UnregisterBroker),
            65 => Some(Self::DescribeTransactions),
            66 => Some(Self::ListTransactions),
            67 => Some(Self::AllocateProducerIds),
            68 => Some(Self::ConsumerGroupHeartbeat),
            69 => Some(Self::ConsumerGroupDescribe),
            70 => Some(Self::ControllerRegistration),
            71 => Some(Self::GetTelemetrySubscriptions),
            72 => Some(Self::PushTelemetry),
            73 => Some(Self::AssignReplicasToDirs),
            74 => Some(Self::ListConfigResources),
            75 => Some(Self::DescribeTopicPartitions),
            76 => Some(Self::ShareGroupHeartbeat),
            77 => Some(Self::ShareGroupDescribe),
            78 => Some(Self::ShareFetch),
            79 => Some(Self::ShareAcknowledge),
            80 => Some(Self::AddRaftVoter),
            81 => Some(Self::RemoveRaftVoter),
            82 => Some(Self::UpdateRaftVoter),
            83 => Some(Self::InitializeShareGroupState),
            84 => Some(Self::ReadShareGroupState),
            85 => Some(Self::WriteShareGroupState),
            86 => Some(Self::DeleteShareGroupState),
            87 => Some(Self::ReadShareGroupStateSummary),
            88 => Some(Self::StreamsGroupHeartbeat),
            89 => Some(Self::StreamsGroupDescribe),
            90 => Some(Self::DescribeShareGroupOffsets),
            91 => Some(Self::AlterShareGroupOffsets),
            92 => Some(Self::DeleteShareGroupOffsets),
            93 => Some(Self::StreamsGroupTopologyDescriptionUpdate),
            94 => Some(Self::UnregisterController),
            1020 => Some(Self::GetReplicaLogInfo),
            _ => None,
        }
    }
}