Skip to content

Commit 245c4fe

Browse files
committed
OffsetForLeaderEpoch request/response protocol def
1 parent 269b953 commit 245c4fe

File tree

1 file changed

+140
-0
lines changed

1 file changed

+140
-0
lines changed
Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
from __future__ import absolute_import
2+
3+
from kafka.protocol.api import Request, Response
4+
from kafka.protocol.types import Array, CompactArray, CompactString, Int16, Int32, Int64, Schema, String, TaggedFields
5+
6+
7+
class OffsetForLeaderEpochResponse_v0(Request):
8+
API_KEY = 23
9+
API_VERSION = 0
10+
SCHEMA = Schema(
11+
('topics', Array(
12+
('topic', String('utf-8')),
13+
('partitions', Array(
14+
('error_code', Int16),
15+
('partition', Int32),
16+
('end_offset', Int64))))))
17+
18+
19+
class OffsetForLeaderEpochResponse_v1(Request):
20+
API_KEY = 23
21+
API_VERSION = 1
22+
SCHEMA = Schema(
23+
('topics', Array(
24+
('topic', String('utf-8')),
25+
('partitions', Array(
26+
('error_code', Int16),
27+
('partition', Int32),
28+
('leader_epoch', Int32),
29+
('end_offset', Int64))))))
30+
31+
32+
class OffsetForLeaderEpochResponse_v2(Request):
33+
API_KEY = 23
34+
API_VERSION = 2
35+
SCHEMA = Schema(
36+
('throttle_time_ms', Int32),
37+
('topics', Array(
38+
('topic', String('utf-8')),
39+
('partitions', Array(
40+
('error_code', Int16),
41+
('partition', Int32),
42+
('leader_epoch', Int32),
43+
('end_offset', Int64))))))
44+
45+
46+
class OffsetForLeaderEpochResponse_v3(Request):
47+
API_KEY = 23
48+
API_VERSION = 3
49+
SCHEMA = OffsetForLeaderEpochResponse_v2.SCHEMA
50+
51+
52+
class OffsetForLeaderEpochResponse_v4(Request):
53+
API_KEY = 23
54+
API_VERSION = 4
55+
SCHEMA = Schema(
56+
('throttle_time_ms', Int32),
57+
('topics', CompactArray(
58+
('topic', CompactString('utf-8')),
59+
('partitions', CompactArray(
60+
('error_code', Int16),
61+
('partition', Int32),
62+
('leader_epoch', Int32),
63+
('end_offset', Int64),
64+
('tags', TaggedFields))),
65+
('tags', TaggedFields))),
66+
('tags', TaggedFields))
67+
68+
69+
class OffsetForLeaderEpochRequest_v0(Request):
70+
API_KEY = 23
71+
API_VERSION = 0
72+
RESPONSE_TYPE = OffsetForLeaderEpochResponse_v0
73+
SCHEMA = Schema(
74+
('topics', Array(
75+
('topic', String('utf-8')),
76+
('partitions', Array(
77+
('partition', Int32),
78+
('leader_epoch', Int32))))))
79+
80+
81+
class OffsetForLeaderEpochRequest_v1(Request):
82+
API_KEY = 23
83+
API_VERSION = 1
84+
RESPONSE_TYPE = OffsetForLeaderEpochResponse_v1
85+
SCHEMA = OffsetForLeaderEpochRequest_v0.SCHEMA
86+
87+
88+
class OffsetForLeaderEpochRequest_v2(Request):
89+
API_KEY = 23
90+
API_VERSION = 2
91+
RESPONSE_TYPE = OffsetForLeaderEpochResponse_v2
92+
SCHEMA = Schema(
93+
('topics', Array(
94+
('topic', String('utf-8')),
95+
('partitions', Array(
96+
('partition', Int32),
97+
('current_leader_epoch', Int32),
98+
('leader_epoch', Int32))))))
99+
100+
101+
class OffsetForLeaderEpochRequest_v3(Request):
102+
API_KEY = 23
103+
API_VERSION = 3
104+
RESPONSE_TYPE = OffsetForLeaderEpochResponse_v3
105+
SCHEMA = Schema(
106+
('replica_id', Int32),
107+
('topics', Array(
108+
('topic', String('utf-8')),
109+
('partitions', Array(
110+
('partition', Int32),
111+
('current_leader_epoch', Int32),
112+
('leader_epoch', Int32))))))
113+
114+
115+
class OffsetForLeaderEpochRequest_v4(Request):
116+
API_KEY = 23
117+
API_VERSION = 4
118+
RESPONSE_TYPE = OffsetForLeaderEpochResponse_v4
119+
SCHEMA = Schema(
120+
('replica_id', Int32),
121+
('topics', CompactArray(
122+
('topic', CompactString('utf-8')),
123+
('partitions', CompactArray(
124+
('partition', Int32),
125+
('current_leader_epoch', Int32),
126+
('leader_epoch', Int32),
127+
('tags', TaggedFields))),
128+
('tags', TaggedFields))),
129+
('tags', TaggedFields))
130+
131+
OffsetForLeaderEpochRequest = [
132+
OffsetForLeaderEpochRequest_v0, OffsetForLeaderEpochRequest_v1,
133+
OffsetForLeaderEpochRequest_v2, OffsetForLeaderEpochRequest_v3,
134+
OffsetForLeaderEpochRequest_v4,
135+
]
136+
OffsetForLeaderEpochResponse = [
137+
OffsetForLeaderEpochResponse_v0, OffsetForLeaderEpochResponse_v1,
138+
OffsetForLeaderEpochResponse_v2, OffsetForLeaderEpochResponse_v3,
139+
OffsetForLeaderEpochResponse_v4,
140+
]

0 commit comments

Comments
 (0)