Skip to content

Commit

Permalink
kip-848 more definitions
Browse files Browse the repository at this point in the history
Added in Kafka 3.8:
* ListGroups.TypesFilter
* ConsumerGroupDescribe request
  • Loading branch information
twmb committed Oct 11, 2024
1 parent 88ce9e9 commit 6014a97
Show file tree
Hide file tree
Showing 3 changed files with 1,248 additions and 4 deletions.
7 changes: 6 additions & 1 deletion generate/definitions/16_list_groups
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
// ListGroupsRequest issues a request to list all groups.
//
// To list all groups in a cluster, this must be issued to every broker.
ListGroupsRequest => key 16, max version 4, flexible v3+
ListGroupsRequest => key 16, max version 5, flexible v3+
// StatesFilter, proposed in KIP-518 and introduced in Kafka 2.6.0,
// allows filtering groups by state, where a state is any of
// "Preparing", "PreparingRebalance", "CompletingRebalance", "Stable",
// "Dead", or "Empty". If empty, all groups are returned.
StatesFilter: [string] // v4+
// TypesFilter, part of KIP-848, filters the types of groups we want
// to list. If empty, all groups are returned.
TypesFilter: [string] // v5+

// ListGroupsResponse is returned from a ListGroupsRequest.
ListGroupsResponse =>
Expand All @@ -25,3 +28,5 @@ ListGroupsResponse =>
ProtocolType: string
// The group state.
GroupState: string // v4+
// The group type.
GroupType: string // v5+
67 changes: 67 additions & 0 deletions generate/definitions/69_consumer_group_describe
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
// Assignment contains consumer group assignments.
Assignment => not top level, no encoding, flexible v0+
// The topics & partitions assigned to the member.
TopicPartitions: [=>]
TopicID: uuid
Topic: string
Partitions: [int32]

// ConsumerGroupDescribe is a part of KIP-848; this is the
// "next generation" equivalent of DescribeGroups.
ConsumerGroupDescribeRequest => key 69, max version 0, flexible v0+
// The IDs of the groups to describe.
Groups: [string]
// Whether to include authorized operations.
IncludeAuthorizedOperations: bool

// ConsumerGroupDescribeResponse is returned from a ConsumerGroupDescribeRequest.
ConsumerGroupDescribeResponse =>
ThrottleMillis
Groups: [=>]
// ErrorCode is the error for this response.
//
// Supported errors:
// - GROUP_AUTHORIZATION_FAILED (version 0+)
// - NOT_COORDINATOR (version 0+)
// - COORDINATOR_NOT_AVAILABLE (version 0+)
// - COORDINATOR_LOAD_IN_PROGRESS (version 0+)
// - INVALID_REQUEST (version 0+)
// - INVALID_GROUP_ID (version 0+)
// - GROUP_ID_NOT_FOUND (version 0+)
ErrorCode: int16
// A supplementary message if this errored.
ErrorMessage: nullable-string
// The group ID.
Group: string
// The group state.
State: string
// The group epoch.
Epoch: int32
// The assignment epoch.
AssignmentEpoch: int32
// The selected assignor.
AssignorName: string
// Members of the group.
Members: [=>]
// The member ID.
MemberID: string
// The member instance ID, if any.
InstanceID: nullable-string
// The member rack ID, if any.
RackID: nullable-string
// The current member epoch.
MemberEpoch: int32
// The client ID.
ClientID: string
// The client host.
ClientHost: string
// The subscribed topic names.
SubscribedTopics: [string]
// The subscribed topic regex, if any.
SubscribedTopicRegex: nullable-string
// The current assignment.
Assignment: Assignment
// The target assignment.
TargetAssignment: Assignment
// 32 bit bitfield representing authorized operations for the group.
AuthorizedOperations: int32(-2147483648)
Loading

0 comments on commit 6014a97

Please sign in to comment.