79 lines
2.2 KiB
Python
79 lines
2.2 KiB
Python
|
|
from __future__ import absolute_import
|
||
|
|
|
||
|
|
from kafka.protocol.api import Request, Response
|
||
|
|
from kafka.protocol.types import Array, Int16, Int32, Int64, Schema, String
|
||
|
|
|
||
|
|
|
||
|
|
class TxnOffsetCommitResponse_v0(Response):
|
||
|
|
API_KEY = 28
|
||
|
|
API_VERSION = 0
|
||
|
|
SCHEMA = Schema(
|
||
|
|
('throttle_time_ms', Int32),
|
||
|
|
('topics', Array(
|
||
|
|
('topic', String('utf-8')),
|
||
|
|
('partitions', Array(
|
||
|
|
('partition', Int32),
|
||
|
|
('error_code', Int16))))))
|
||
|
|
|
||
|
|
|
||
|
|
class TxnOffsetCommitResponse_v1(Response):
|
||
|
|
API_KEY = 28
|
||
|
|
API_VERSION = 1
|
||
|
|
SCHEMA = TxnOffsetCommitResponse_v0.SCHEMA
|
||
|
|
|
||
|
|
|
||
|
|
class TxnOffsetCommitResponse_v2(Response):
|
||
|
|
API_KEY = 28
|
||
|
|
API_VERSION = 2
|
||
|
|
SCHEMA = TxnOffsetCommitResponse_v1.SCHEMA
|
||
|
|
|
||
|
|
|
||
|
|
class TxnOffsetCommitRequest_v0(Request):
|
||
|
|
API_KEY = 28
|
||
|
|
API_VERSION = 0
|
||
|
|
RESPONSE_TYPE = TxnOffsetCommitResponse_v0
|
||
|
|
SCHEMA = Schema(
|
||
|
|
('transactional_id', String('utf-8')),
|
||
|
|
('group_id', String('utf-8')),
|
||
|
|
('producer_id', Int64),
|
||
|
|
('producer_epoch', Int16),
|
||
|
|
('topics', Array(
|
||
|
|
('topic', String('utf-8')),
|
||
|
|
('partitions', Array(
|
||
|
|
('partition', Int32),
|
||
|
|
('offset', Int64),
|
||
|
|
('metadata', String('utf-8')))))))
|
||
|
|
|
||
|
|
|
||
|
|
class TxnOffsetCommitRequest_v1(Request):
|
||
|
|
API_KEY = 28
|
||
|
|
API_VERSION = 1
|
||
|
|
RESPONSE_TYPE = TxnOffsetCommitResponse_v1
|
||
|
|
SCHEMA = TxnOffsetCommitRequest_v0.SCHEMA
|
||
|
|
|
||
|
|
|
||
|
|
class TxnOffsetCommitRequest_v2(Request):
|
||
|
|
API_KEY = 28
|
||
|
|
API_VERSION = 2
|
||
|
|
RESPONSE_TYPE = TxnOffsetCommitResponse_v2
|
||
|
|
SCHEMA = Schema(
|
||
|
|
('transactional_id', String('utf-8')),
|
||
|
|
('group_id', String('utf-8')),
|
||
|
|
('producer_id', Int64),
|
||
|
|
('producer_epoch', Int16),
|
||
|
|
('topics', Array(
|
||
|
|
('topic', String('utf-8')),
|
||
|
|
('partitions', Array(
|
||
|
|
('partition', Int32),
|
||
|
|
('offset', Int64),
|
||
|
|
('leader_epoch', Int32),
|
||
|
|
('metadata', String('utf-8')))))))
|
||
|
|
|
||
|
|
|
||
|
|
TxnOffsetCommitRequest = [
|
||
|
|
TxnOffsetCommitRequest_v0, TxnOffsetCommitRequest_v1, TxnOffsetCommitRequest_v2,
|
||
|
|
]
|
||
|
|
TxnOffsetCommitResponse = [
|
||
|
|
TxnOffsetCommitResponse_v0, TxnOffsetCommitResponse_v1, TxnOffsetCommitResponse_v2,
|
||
|
|
]
|