{
"apiKey": 22,
"type": "request",
"listeners": ["broker"],
"name": "InitProducerIdRequest",
"latestVersionUnstable": true,
"validVersions": "0-6",
"flexibleVersions": "2+",
"fields": [
{ "name": "TransactionalId", "type": "string", "versions": "0+", "nullableVersions": "0+", "entityType": "transactionalId",
"about": "The transactional id, or null if the producer is not transactional." },
{ "name": "TransactionTimeoutMs", "type": "int32", "versions": "0+",
"about": "The time in ms to wait before aborting idle transactions sent by this producer. This is only relevant if a TransactionalId has been defined." },
{ "name": "ProducerId", "type": "int64", "versions": "3+", "default": "-1", "entityType": "producerId",
"about": "The producer id. This is used to disambiguate requests if a transactional id is reused following its expiration." },
{ "name": "ProducerEpoch", "type": "int16", "versions": "3+", "default": "-1",
"about": "The producer's current epoch. This will be checked against the producer epoch on the broker, and the request will return an error if they do not match." },
{ "name": "Enable2Pc", "type": "bool", "versions": "6+", "default": "false",
"about": "True if the client wants to enable two-phase commit (2PC) protocol for transactions." },
{ "name": "KeepPreparedTxn", "type": "bool", "versions": "6+", "default": "false",
"about": "True if the client wants to keep the currently ongoing transaction instead of aborting it." }
]
}