kafka-python 3.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (373) hide show
  1. kafka/__init__.py +34 -0
  2. kafka/__main__.py +5 -0
  3. kafka/admin/__init__.py +29 -0
  4. kafka/admin/__main__.py +5 -0
  5. kafka/admin/_acls.py +355 -0
  6. kafka/admin/_cluster.py +359 -0
  7. kafka/admin/_configs.py +479 -0
  8. kafka/admin/_groups.py +754 -0
  9. kafka/admin/_partitions.py +595 -0
  10. kafka/admin/_topics.py +281 -0
  11. kafka/admin/_transactions.py +450 -0
  12. kafka/admin/_users.py +194 -0
  13. kafka/admin/client.py +373 -0
  14. kafka/benchmarks/__init__.py +0 -0
  15. kafka/benchmarks/consumer_performance.py +138 -0
  16. kafka/benchmarks/load_example.py +109 -0
  17. kafka/benchmarks/producer_encode_path.py +201 -0
  18. kafka/benchmarks/producer_performance.py +161 -0
  19. kafka/benchmarks/profile_protocol.py +138 -0
  20. kafka/benchmarks/protocol_old_vs_new.py +447 -0
  21. kafka/benchmarks/record_batch_compose.py +77 -0
  22. kafka/benchmarks/record_batch_read.py +82 -0
  23. kafka/benchmarks/varint_speed.py +426 -0
  24. kafka/cli/__init__.py +36 -0
  25. kafka/cli/admin/__init__.py +117 -0
  26. kafka/cli/admin/acls/__init__.py +9 -0
  27. kafka/cli/admin/acls/common.py +76 -0
  28. kafka/cli/admin/acls/create.py +19 -0
  29. kafka/cli/admin/acls/delete.py +23 -0
  30. kafka/cli/admin/acls/describe.py +16 -0
  31. kafka/cli/admin/cluster/__init__.py +14 -0
  32. kafka/cli/admin/cluster/describe.py +11 -0
  33. kafka/cli/admin/cluster/describe_quorum.py +11 -0
  34. kafka/cli/admin/cluster/features.py +52 -0
  35. kafka/cli/admin/cluster/log_dirs.py +43 -0
  36. kafka/cli/admin/cluster/versions.py +33 -0
  37. kafka/cli/admin/configs/__init__.py +10 -0
  38. kafka/cli/admin/configs/alter.py +43 -0
  39. kafka/cli/admin/configs/common.py +17 -0
  40. kafka/cli/admin/configs/describe.py +30 -0
  41. kafka/cli/admin/configs/list.py +16 -0
  42. kafka/cli/admin/configs/reset.py +20 -0
  43. kafka/cli/admin/groups/__init__.py +16 -0
  44. kafka/cli/admin/groups/alter_offsets.py +30 -0
  45. kafka/cli/admin/groups/delete.py +11 -0
  46. kafka/cli/admin/groups/delete_offsets.py +29 -0
  47. kafka/cli/admin/groups/describe.py +11 -0
  48. kafka/cli/admin/groups/list.py +28 -0
  49. kafka/cli/admin/groups/list_offsets.py +29 -0
  50. kafka/cli/admin/groups/remove_members.py +40 -0
  51. kafka/cli/admin/groups/reset_offsets.py +139 -0
  52. kafka/cli/admin/partitions/__init__.py +21 -0
  53. kafka/cli/admin/partitions/alter_reassignments.py +37 -0
  54. kafka/cli/admin/partitions/create.py +27 -0
  55. kafka/cli/admin/partitions/delete_records.py +31 -0
  56. kafka/cli/admin/partitions/describe.py +36 -0
  57. kafka/cli/admin/partitions/elect_leaders.py +53 -0
  58. kafka/cli/admin/partitions/list_offsets.py +88 -0
  59. kafka/cli/admin/partitions/list_reassignments.py +35 -0
  60. kafka/cli/admin/topics/__init__.py +10 -0
  61. kafka/cli/admin/topics/create.py +13 -0
  62. kafka/cli/admin/topics/delete.py +19 -0
  63. kafka/cli/admin/topics/describe.py +18 -0
  64. kafka/cli/admin/topics/list.py +11 -0
  65. kafka/cli/admin/transactions/__init__.py +17 -0
  66. kafka/cli/admin/transactions/abort.py +38 -0
  67. kafka/cli/admin/transactions/describe.py +24 -0
  68. kafka/cli/admin/transactions/describe_producers.py +29 -0
  69. kafka/cli/admin/transactions/find_hanging.py +26 -0
  70. kafka/cli/admin/transactions/list.py +37 -0
  71. kafka/cli/admin/users/__init__.py +8 -0
  72. kafka/cli/admin/users/alter_user_scram_credentials.py +34 -0
  73. kafka/cli/admin/users/describe_user_scram_credentials.py +15 -0
  74. kafka/cli/common.py +95 -0
  75. kafka/cli/consumer/__init__.py +63 -0
  76. kafka/cli/producer/__init__.py +57 -0
  77. kafka/cluster.py +824 -0
  78. kafka/codec.py +325 -0
  79. kafka/consumer/__init__.py +5 -0
  80. kafka/consumer/__main__.py +5 -0
  81. kafka/consumer/fetcher.py +2012 -0
  82. kafka/consumer/group.py +1347 -0
  83. kafka/consumer/subscription_state.py +897 -0
  84. kafka/coordinator/__init__.py +0 -0
  85. kafka/coordinator/assignors/__init__.py +0 -0
  86. kafka/coordinator/assignors/abstract.py +90 -0
  87. kafka/coordinator/assignors/cooperative_sticky.py +167 -0
  88. kafka/coordinator/assignors/range.py +81 -0
  89. kafka/coordinator/assignors/roundrobin.py +101 -0
  90. kafka/coordinator/assignors/sticky/StickyAssignorUserData.json +37 -0
  91. kafka/coordinator/assignors/sticky/__init__.py +0 -0
  92. kafka/coordinator/assignors/sticky/partition_movements.py +149 -0
  93. kafka/coordinator/assignors/sticky/sorted_set.py +63 -0
  94. kafka/coordinator/assignors/sticky/sticky_assignor.py +665 -0
  95. kafka/coordinator/assignors/sticky/user_data.py +8 -0
  96. kafka/coordinator/base.py +1215 -0
  97. kafka/coordinator/consumer.py +1224 -0
  98. kafka/coordinator/heartbeat.py +82 -0
  99. kafka/coordinator/subscription.py +34 -0
  100. kafka/errors.py +1004 -0
  101. kafka/future.py +166 -0
  102. kafka/metrics/__init__.py +13 -0
  103. kafka/metrics/compound_stat.py +33 -0
  104. kafka/metrics/dict_reporter.py +81 -0
  105. kafka/metrics/kafka_metric.py +36 -0
  106. kafka/metrics/measurable.py +27 -0
  107. kafka/metrics/measurable_stat.py +13 -0
  108. kafka/metrics/metric_config.py +33 -0
  109. kafka/metrics/metric_name.py +105 -0
  110. kafka/metrics/metrics.py +261 -0
  111. kafka/metrics/metrics_reporter.py +53 -0
  112. kafka/metrics/quota.py +41 -0
  113. kafka/metrics/stat.py +19 -0
  114. kafka/metrics/stats/__init__.py +15 -0
  115. kafka/metrics/stats/avg.py +24 -0
  116. kafka/metrics/stats/count.py +17 -0
  117. kafka/metrics/stats/histogram.py +99 -0
  118. kafka/metrics/stats/max_stat.py +17 -0
  119. kafka/metrics/stats/min_stat.py +19 -0
  120. kafka/metrics/stats/percentile.py +14 -0
  121. kafka/metrics/stats/percentiles.py +75 -0
  122. kafka/metrics/stats/rate.py +118 -0
  123. kafka/metrics/stats/sampled_stat.py +99 -0
  124. kafka/metrics/stats/sensor.py +136 -0
  125. kafka/metrics/stats/total.py +15 -0
  126. kafka/net/__init__.py +19 -0
  127. kafka/net/compat.py +165 -0
  128. kafka/net/connection.py +593 -0
  129. kafka/net/http_connect.py +144 -0
  130. kafka/net/inet.py +122 -0
  131. kafka/net/manager.py +451 -0
  132. kafka/net/metrics.py +149 -0
  133. kafka/net/sasl/__init__.py +32 -0
  134. kafka/net/sasl/abc.py +28 -0
  135. kafka/net/sasl/gssapi.py +95 -0
  136. kafka/net/sasl/msk.py +245 -0
  137. kafka/net/sasl/oauth.py +98 -0
  138. kafka/net/sasl/plain.py +42 -0
  139. kafka/net/sasl/scram.py +135 -0
  140. kafka/net/sasl/sspi.py +111 -0
  141. kafka/net/selector.py +644 -0
  142. kafka/net/socks5.py +262 -0
  143. kafka/net/transport.py +415 -0
  144. kafka/net/wakeup_notifier.py +72 -0
  145. kafka/partitioner/__init__.py +8 -0
  146. kafka/partitioner/abc.py +8 -0
  147. kafka/partitioner/default.py +89 -0
  148. kafka/partitioner/sticky.py +109 -0
  149. kafka/producer/__init__.py +5 -0
  150. kafka/producer/__main__.py +5 -0
  151. kafka/producer/future.py +101 -0
  152. kafka/producer/kafka.py +1123 -0
  153. kafka/producer/producer_batch.py +192 -0
  154. kafka/producer/record_accumulator.py +647 -0
  155. kafka/producer/sender.py +884 -0
  156. kafka/producer/transaction_manager.py +1326 -0
  157. kafka/protocol/__init__.py +0 -0
  158. kafka/protocol/admin/__init__.py +29 -0
  159. kafka/protocol/admin/acl.py +83 -0
  160. kafka/protocol/admin/acl.pyi +375 -0
  161. kafka/protocol/admin/client_quotas.py +14 -0
  162. kafka/protocol/admin/client_quotas.pyi +265 -0
  163. kafka/protocol/admin/cluster.py +31 -0
  164. kafka/protocol/admin/cluster.pyi +620 -0
  165. kafka/protocol/admin/configs.py +22 -0
  166. kafka/protocol/admin/configs.pyi +437 -0
  167. kafka/protocol/admin/groups.py +24 -0
  168. kafka/protocol/admin/groups.pyi +261 -0
  169. kafka/protocol/admin/topics.py +53 -0
  170. kafka/protocol/admin/topics.pyi +982 -0
  171. kafka/protocol/admin/transactions.py +18 -0
  172. kafka/protocol/admin/transactions.pyi +311 -0
  173. kafka/protocol/admin/users.py +14 -0
  174. kafka/protocol/admin/users.pyi +223 -0
  175. kafka/protocol/api_data.py +125 -0
  176. kafka/protocol/api_header.py +55 -0
  177. kafka/protocol/api_key.py +97 -0
  178. kafka/protocol/api_message.py +277 -0
  179. kafka/protocol/broker_version_data.py +246 -0
  180. kafka/protocol/consumer/__init__.py +13 -0
  181. kafka/protocol/consumer/fetch.py +16 -0
  182. kafka/protocol/consumer/fetch.pyi +298 -0
  183. kafka/protocol/consumer/group.py +38 -0
  184. kafka/protocol/consumer/group.pyi +824 -0
  185. kafka/protocol/consumer/metadata.py +30 -0
  186. kafka/protocol/consumer/metadata.pyi +89 -0
  187. kafka/protocol/consumer/offsets.py +75 -0
  188. kafka/protocol/consumer/offsets.pyi +288 -0
  189. kafka/protocol/data_container.py +166 -0
  190. kafka/protocol/frame.py +30 -0
  191. kafka/protocol/generate_stubs.py +468 -0
  192. kafka/protocol/metadata/__init__.py +10 -0
  193. kafka/protocol/metadata/api_versions.py +41 -0
  194. kafka/protocol/metadata/api_versions.pyi +128 -0
  195. kafka/protocol/metadata/find_coordinator.py +19 -0
  196. kafka/protocol/metadata/find_coordinator.pyi +105 -0
  197. kafka/protocol/metadata/metadata.py +34 -0
  198. kafka/protocol/metadata/metadata.pyi +160 -0
  199. kafka/protocol/old/__init__.py +0 -0
  200. kafka/protocol/old/abstract.py +17 -0
  201. kafka/protocol/old/add_offsets_to_txn.py +54 -0
  202. kafka/protocol/old/add_partitions_to_txn.py +71 -0
  203. kafka/protocol/old/admin.py +1086 -0
  204. kafka/protocol/old/api.py +205 -0
  205. kafka/protocol/old/api_versions.py +133 -0
  206. kafka/protocol/old/commit.py +355 -0
  207. kafka/protocol/old/consumer_protocol.py +36 -0
  208. kafka/protocol/old/end_txn.py +53 -0
  209. kafka/protocol/old/fetch.py +408 -0
  210. kafka/protocol/old/find_coordinator.py +72 -0
  211. kafka/protocol/old/group.py +451 -0
  212. kafka/protocol/old/init_producer_id.py +42 -0
  213. kafka/protocol/old/list_offsets.py +186 -0
  214. kafka/protocol/old/metadata.py +290 -0
  215. kafka/protocol/old/offset_for_leader_epoch.py +133 -0
  216. kafka/protocol/old/produce.py +247 -0
  217. kafka/protocol/old/sasl_authenticate.py +38 -0
  218. kafka/protocol/old/sasl_handshake.py +39 -0
  219. kafka/protocol/old/struct.py +87 -0
  220. kafka/protocol/old/txn_offset_commit.py +73 -0
  221. kafka/protocol/old/types.py +440 -0
  222. kafka/protocol/parser.py +191 -0
  223. kafka/protocol/producer/__init__.py +7 -0
  224. kafka/protocol/producer/produce.py +17 -0
  225. kafka/protocol/producer/produce.pyi +197 -0
  226. kafka/protocol/producer/transaction.py +30 -0
  227. kafka/protocol/producer/transaction.pyi +663 -0
  228. kafka/protocol/sasl.py +52 -0
  229. kafka/protocol/sasl.pyi +126 -0
  230. kafka/protocol/schemas/__init__.py +7 -0
  231. kafka/protocol/schemas/fields/__init__.py +7 -0
  232. kafka/protocol/schemas/fields/array.py +127 -0
  233. kafka/protocol/schemas/fields/base.py +156 -0
  234. kafka/protocol/schemas/fields/codecs/__init__.py +12 -0
  235. kafka/protocol/schemas/fields/codecs/encode_buffer.py +82 -0
  236. kafka/protocol/schemas/fields/codecs/tagged_fields.py +109 -0
  237. kafka/protocol/schemas/fields/codecs/types.py +505 -0
  238. kafka/protocol/schemas/fields/codegen.py +40 -0
  239. kafka/protocol/schemas/fields/simple.py +127 -0
  240. kafka/protocol/schemas/fields/struct.py +357 -0
  241. kafka/protocol/schemas/fields/struct_array.py +142 -0
  242. kafka/protocol/schemas/load_json.py +42 -0
  243. kafka/protocol/schemas/resources/AddOffsetsToTxnRequest.json +40 -0
  244. kafka/protocol/schemas/resources/AddOffsetsToTxnResponse.json +35 -0
  245. kafka/protocol/schemas/resources/AddPartitionsToTxnRequest.json +65 -0
  246. kafka/protocol/schemas/resources/AddPartitionsToTxnResponse.json +60 -0
  247. kafka/protocol/schemas/resources/AlterClientQuotasRequest.json +47 -0
  248. kafka/protocol/schemas/resources/AlterClientQuotasResponse.json +41 -0
  249. kafka/protocol/schemas/resources/AlterConfigsRequest.json +43 -0
  250. kafka/protocol/schemas/resources/AlterConfigsResponse.json +39 -0
  251. kafka/protocol/schemas/resources/AlterPartitionReassignmentsRequest.json +42 -0
  252. kafka/protocol/schemas/resources/AlterPartitionReassignmentsResponse.json +47 -0
  253. kafka/protocol/schemas/resources/AlterReplicaLogDirsRequest.json +41 -0
  254. kafka/protocol/schemas/resources/AlterReplicaLogDirsResponse.json +41 -0
  255. kafka/protocol/schemas/resources/AlterUserScramCredentialsRequest.json +45 -0
  256. kafka/protocol/schemas/resources/AlterUserScramCredentialsResponse.json +35 -0
  257. kafka/protocol/schemas/resources/ApiVersionsRequest.json +34 -0
  258. kafka/protocol/schemas/resources/ApiVersionsResponse.json +79 -0
  259. kafka/protocol/schemas/resources/ConsumerProtocolAssignment.json +42 -0
  260. kafka/protocol/schemas/resources/ConsumerProtocolSubscription.json +49 -0
  261. kafka/protocol/schemas/resources/CreateAclsRequest.json +46 -0
  262. kafka/protocol/schemas/resources/CreateAclsResponse.json +37 -0
  263. kafka/protocol/schemas/resources/CreatePartitionsRequest.json +47 -0
  264. kafka/protocol/schemas/resources/CreatePartitionsResponse.json +41 -0
  265. kafka/protocol/schemas/resources/CreateTopicsRequest.json +65 -0
  266. kafka/protocol/schemas/resources/CreateTopicsResponse.json +72 -0
  267. kafka/protocol/schemas/resources/DeleteAclsRequest.json +46 -0
  268. kafka/protocol/schemas/resources/DeleteAclsResponse.json +59 -0
  269. kafka/protocol/schemas/resources/DeleteGroupsRequest.json +30 -0
  270. kafka/protocol/schemas/resources/DeleteGroupsResponse.json +36 -0
  271. kafka/protocol/schemas/resources/DeleteRecordsRequest.json +42 -0
  272. kafka/protocol/schemas/resources/DeleteRecordsResponse.json +43 -0
  273. kafka/protocol/schemas/resources/DeleteTopicsRequest.json +43 -0
  274. kafka/protocol/schemas/resources/DeleteTopicsResponse.json +52 -0
  275. kafka/protocol/schemas/resources/DescribeAclsRequest.json +43 -0
  276. kafka/protocol/schemas/resources/DescribeAclsResponse.json +55 -0
  277. kafka/protocol/schemas/resources/DescribeClientQuotasRequest.json +37 -0
  278. kafka/protocol/schemas/resources/DescribeClientQuotasResponse.json +47 -0
  279. kafka/protocol/schemas/resources/DescribeClusterRequest.json +35 -0
  280. kafka/protocol/schemas/resources/DescribeClusterResponse.json +56 -0
  281. kafka/protocol/schemas/resources/DescribeConfigsRequest.json +42 -0
  282. kafka/protocol/schemas/resources/DescribeConfigsResponse.json +69 -0
  283. kafka/protocol/schemas/resources/DescribeGroupsRequest.json +38 -0
  284. kafka/protocol/schemas/resources/DescribeGroupsResponse.json +74 -0
  285. kafka/protocol/schemas/resources/DescribeLogDirsRequest.json +38 -0
  286. kafka/protocol/schemas/resources/DescribeLogDirsResponse.json +65 -0
  287. kafka/protocol/schemas/resources/DescribeProducersRequest.json +32 -0
  288. kafka/protocol/schemas/resources/DescribeProducersResponse.json +55 -0
  289. kafka/protocol/schemas/resources/DescribeQuorumRequest.json +39 -0
  290. kafka/protocol/schemas/resources/DescribeQuorumResponse.json +82 -0
  291. kafka/protocol/schemas/resources/DescribeTopicPartitionsRequest.json +40 -0
  292. kafka/protocol/schemas/resources/DescribeTopicPartitionsResponse.json +66 -0
  293. kafka/protocol/schemas/resources/DescribeTransactionsRequest.json +27 -0
  294. kafka/protocol/schemas/resources/DescribeTransactionsResponse.json +52 -0
  295. kafka/protocol/schemas/resources/DescribeUserScramCredentialsRequest.json +30 -0
  296. kafka/protocol/schemas/resources/DescribeUserScramCredentialsResponse.json +45 -0
  297. kafka/protocol/schemas/resources/ElectLeadersRequest.json +41 -0
  298. kafka/protocol/schemas/resources/ElectLeadersResponse.json +45 -0
  299. kafka/protocol/schemas/resources/EndTxnRequest.json +43 -0
  300. kafka/protocol/schemas/resources/EndTxnResponse.json +41 -0
  301. kafka/protocol/schemas/resources/FetchRequest.json +125 -0
  302. kafka/protocol/schemas/resources/FetchResponse.json +124 -0
  303. kafka/protocol/schemas/resources/FindCoordinatorRequest.json +43 -0
  304. kafka/protocol/schemas/resources/FindCoordinatorResponse.json +58 -0
  305. kafka/protocol/schemas/resources/HeartbeatRequest.json +39 -0
  306. kafka/protocol/schemas/resources/HeartbeatResponse.json +35 -0
  307. kafka/protocol/schemas/resources/IncrementalAlterConfigsRequest.json +44 -0
  308. kafka/protocol/schemas/resources/IncrementalAlterConfigsResponse.json +38 -0
  309. kafka/protocol/schemas/resources/InitProducerIdRequest.json +50 -0
  310. kafka/protocol/schemas/resources/InitProducerIdResponse.json +47 -0
  311. kafka/protocol/schemas/resources/JoinGroupRequest.json +63 -0
  312. kafka/protocol/schemas/resources/JoinGroupResponse.json +69 -0
  313. kafka/protocol/schemas/resources/LeaveGroupRequest.json +47 -0
  314. kafka/protocol/schemas/resources/LeaveGroupResponse.json +47 -0
  315. kafka/protocol/schemas/resources/ListConfigResourcesRequest.json +31 -0
  316. kafka/protocol/schemas/resources/ListConfigResourcesResponse.json +37 -0
  317. kafka/protocol/schemas/resources/ListGroupsRequest.json +36 -0
  318. kafka/protocol/schemas/resources/ListGroupsResponse.json +49 -0
  319. kafka/protocol/schemas/resources/ListOffsetsRequest.json +72 -0
  320. kafka/protocol/schemas/resources/ListOffsetsResponse.json +71 -0
  321. kafka/protocol/schemas/resources/ListPartitionReassignmentsRequest.json +34 -0
  322. kafka/protocol/schemas/resources/ListPartitionReassignmentsResponse.json +46 -0
  323. kafka/protocol/schemas/resources/ListTransactionsRequest.json +40 -0
  324. kafka/protocol/schemas/resources/ListTransactionsResponse.json +42 -0
  325. kafka/protocol/schemas/resources/MetadataRequest.json +56 -0
  326. kafka/protocol/schemas/resources/MetadataResponse.json +101 -0
  327. kafka/protocol/schemas/resources/OffsetCommitRequest.json +76 -0
  328. kafka/protocol/schemas/resources/OffsetCommitResponse.json +71 -0
  329. kafka/protocol/schemas/resources/OffsetDeleteRequest.json +39 -0
  330. kafka/protocol/schemas/resources/OffsetDeleteResponse.json +42 -0
  331. kafka/protocol/schemas/resources/OffsetFetchRequest.json +76 -0
  332. kafka/protocol/schemas/resources/OffsetFetchResponse.json +107 -0
  333. kafka/protocol/schemas/resources/OffsetForLeaderEpochRequest.json +52 -0
  334. kafka/protocol/schemas/resources/OffsetForLeaderEpochResponse.json +51 -0
  335. kafka/protocol/schemas/resources/ProduceRequest.json +73 -0
  336. kafka/protocol/schemas/resources/ProduceResponse.json +96 -0
  337. kafka/protocol/schemas/resources/RequestHeader.json +44 -0
  338. kafka/protocol/schemas/resources/ResponseHeader.json +26 -0
  339. kafka/protocol/schemas/resources/SaslAuthenticateRequest.json +29 -0
  340. kafka/protocol/schemas/resources/SaslAuthenticateResponse.json +34 -0
  341. kafka/protocol/schemas/resources/SaslHandshakeRequest.json +31 -0
  342. kafka/protocol/schemas/resources/SaslHandshakeResponse.json +32 -0
  343. kafka/protocol/schemas/resources/SyncGroupRequest.json +56 -0
  344. kafka/protocol/schemas/resources/SyncGroupResponse.json +46 -0
  345. kafka/protocol/schemas/resources/TxnOffsetCommitRequest.json +68 -0
  346. kafka/protocol/schemas/resources/TxnOffsetCommitResponse.json +47 -0
  347. kafka/protocol/schemas/resources/UpdateFeaturesRequest.json +43 -0
  348. kafka/protocol/schemas/resources/UpdateFeaturesResponse.json +39 -0
  349. kafka/protocol/schemas/resources/WriteTxnMarkersRequest.json +49 -0
  350. kafka/protocol/schemas/resources/WriteTxnMarkersResponse.json +45 -0
  351. kafka/protocol/schemas/resources/__init__.py +0 -0
  352. kafka/record/__init__.py +3 -0
  353. kafka/record/_crc32c.py +161 -0
  354. kafka/record/abc.py +144 -0
  355. kafka/record/default_records.py +782 -0
  356. kafka/record/legacy_records.py +587 -0
  357. kafka/record/memory_records.py +255 -0
  358. kafka/record/util.py +135 -0
  359. kafka/serializer/__init__.py +4 -0
  360. kafka/serializer/abstract.py +20 -0
  361. kafka/serializer/default.py +16 -0
  362. kafka/serializer/json.py +17 -0
  363. kafka/serializer/wrapper.py +21 -0
  364. kafka/structs.py +69 -0
  365. kafka/util.py +159 -0
  366. kafka/vendor/__init__.py +0 -0
  367. kafka/version.py +1 -0
  368. kafka_python-3.0.0.dist-info/METADATA +319 -0
  369. kafka_python-3.0.0.dist-info/RECORD +373 -0
  370. kafka_python-3.0.0.dist-info/WHEEL +5 -0
  371. kafka_python-3.0.0.dist-info/entry_points.txt +2 -0
  372. kafka_python-3.0.0.dist-info/licenses/LICENSE +202 -0
  373. kafka_python-3.0.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,44 @@
1
+ // Licensed to the Apache Software Foundation (ASF) under one or more
2
+ // contributor license agreements. See the NOTICE file distributed with
3
+ // this work for additional information regarding copyright ownership.
4
+ // The ASF licenses this file to You under the Apache License, Version 2.0
5
+ // (the "License"); you may not use this file except in compliance with
6
+ // the License. You may obtain a copy of the License at
7
+ //
8
+ // http://www.apache.org/licenses/LICENSE-2.0
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+
16
+ {
17
+ "type": "header",
18
+ "name": "RequestHeader",
19
+ // Version 0 was removed in Apache Kafka 4.0, Version 1 is the new baseline.
20
+ //
21
+ // Version 0 of the RequestHeader is only used by v0 of ControlledShutdownRequest.
22
+ //
23
+ // Version 1 is the first version with ClientId.
24
+ //
25
+ // Version 2 is the first flexible version.
26
+ "validVersions": "1-2",
27
+ "flexibleVersions": "2+",
28
+ "fields": [
29
+ { "name": "RequestApiKey", "type": "int16", "versions": "0+",
30
+ "about": "The API key of this request." },
31
+ { "name": "RequestApiVersion", "type": "int16", "versions": "0+",
32
+ "about": "The API version of this request." },
33
+ { "name": "CorrelationId", "type": "int32", "versions": "0+",
34
+ "about": "The correlation ID of this request." },
35
+
36
+ // The ClientId string must be serialized with the old-style two-byte length prefix.
37
+ // The reason is that older brokers must be able to read the request header for any
38
+ // ApiVersionsRequest, even if it is from a newer version.
39
+ // Since the client is sending the ApiVersionsRequest in order to discover what
40
+ // versions are supported, the client does not know the best version to use.
41
+ { "name": "ClientId", "type": "string", "versions": "1+", "nullableVersions": "1+", "flexibleVersions": "none",
42
+ "about": "The client ID string." }
43
+ ]
44
+ }
@@ -0,0 +1,26 @@
1
+ // Licensed to the Apache Software Foundation (ASF) under one or more
2
+ // contributor license agreements. See the NOTICE file distributed with
3
+ // this work for additional information regarding copyright ownership.
4
+ // The ASF licenses this file to You under the Apache License, Version 2.0
5
+ // (the "License"); you may not use this file except in compliance with
6
+ // the License. You may obtain a copy of the License at
7
+ //
8
+ // http://www.apache.org/licenses/LICENSE-2.0
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+
16
+ {
17
+ "type": "header",
18
+ "name": "ResponseHeader",
19
+ // Version 1 is the first flexible version.
20
+ "validVersions": "0-1",
21
+ "flexibleVersions": "1+",
22
+ "fields": [
23
+ { "name": "CorrelationId", "type": "int32", "versions": "0+",
24
+ "about": "The correlation ID of this response." }
25
+ ]
26
+ }
@@ -0,0 +1,29 @@
1
+ // Licensed to the Apache Software Foundation (ASF) under one or more
2
+ // contributor license agreements. See the NOTICE file distributed with
3
+ // this work for additional information regarding copyright ownership.
4
+ // The ASF licenses this file to You under the Apache License, Version 2.0
5
+ // (the "License"); you may not use this file except in compliance with
6
+ // the License. You may obtain a copy of the License at
7
+ //
8
+ // http://www.apache.org/licenses/LICENSE-2.0
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+
16
+ {
17
+ "apiKey": 36,
18
+ "type": "request",
19
+ "listeners": ["broker", "controller"],
20
+ "name": "SaslAuthenticateRequest",
21
+ // Version 1 is the same as version 0.
22
+ // Version 2 adds flexible version support
23
+ "validVersions": "0-2",
24
+ "flexibleVersions": "2+",
25
+ "fields": [
26
+ { "name": "AuthBytes", "type": "bytes", "versions": "0+",
27
+ "about": "The SASL authentication bytes from the client, as defined by the SASL mechanism." }
28
+ ]
29
+ }
@@ -0,0 +1,34 @@
1
+ // Licensed to the Apache Software Foundation (ASF) under one or more
2
+ // contributor license agreements. See the NOTICE file distributed with
3
+ // this work for additional information regarding copyright ownership.
4
+ // The ASF licenses this file to You under the Apache License, Version 2.0
5
+ // (the "License"); you may not use this file except in compliance with
6
+ // the License. You may obtain a copy of the License at
7
+ //
8
+ // http://www.apache.org/licenses/LICENSE-2.0
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+
16
+ {
17
+ "apiKey": 36,
18
+ "type": "response",
19
+ "name": "SaslAuthenticateResponse",
20
+ // Version 1 adds the session lifetime.
21
+ // Version 2 adds flexible version support
22
+ "validVersions": "0-2",
23
+ "flexibleVersions": "2+",
24
+ "fields": [
25
+ { "name": "ErrorCode", "type": "int16", "versions": "0+",
26
+ "about": "The error code, or 0 if there was no error." },
27
+ { "name": "ErrorMessage", "type": "string", "versions": "0+", "nullableVersions": "0+",
28
+ "about": "The error message, or null if there was no error." },
29
+ { "name": "AuthBytes", "type": "bytes", "versions": "0+",
30
+ "about": "The SASL authentication bytes from the server, as defined by the SASL mechanism." },
31
+ { "name": "SessionLifetimeMs", "type": "int64", "versions": "1+", "default": "0", "ignorable": true,
32
+ "about": "Number of milliseconds after which only re-authentication over the existing connection to create a new session can occur." }
33
+ ]
34
+ }
@@ -0,0 +1,31 @@
1
+ // Licensed to the Apache Software Foundation (ASF) under one or more
2
+ // contributor license agreements. See the NOTICE file distributed with
3
+ // this work for additional information regarding copyright ownership.
4
+ // The ASF licenses this file to You under the Apache License, Version 2.0
5
+ // (the "License"); you may not use this file except in compliance with
6
+ // the License. You may obtain a copy of the License at
7
+ //
8
+ // http://www.apache.org/licenses/LICENSE-2.0
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+
16
+ {
17
+ "apiKey": 17,
18
+ "type": "request",
19
+ "listeners": ["broker", "controller"],
20
+ "name": "SaslHandshakeRequest",
21
+ // Version 1 supports SASL_AUTHENTICATE.
22
+ // NOTE: Version cannot be easily bumped due to incorrect
23
+ // client negotiation for clients <= 2.4.
24
+ // See https://issues.apache.org/jira/browse/KAFKA-9577
25
+ "validVersions": "0-1",
26
+ "flexibleVersions": "none",
27
+ "fields": [
28
+ { "name": "Mechanism", "type": "string", "versions": "0+",
29
+ "about": "The SASL mechanism chosen by the client." }
30
+ ]
31
+ }
@@ -0,0 +1,32 @@
1
+ // Licensed to the Apache Software Foundation (ASF) under one or more
2
+ // contributor license agreements. See the NOTICE file distributed with
3
+ // this work for additional information regarding copyright ownership.
4
+ // The ASF licenses this file to You under the Apache License, Version 2.0
5
+ // (the "License"); you may not use this file except in compliance with
6
+ // the License. You may obtain a copy of the License at
7
+ //
8
+ // http://www.apache.org/licenses/LICENSE-2.0
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+
16
+ {
17
+ "apiKey": 17,
18
+ "type": "response",
19
+ "name": "SaslHandshakeResponse",
20
+ // Version 1 is the same as version 0.
21
+ // NOTE: Version cannot be easily bumped due to incorrect
22
+ // client negotiation for clients <= 2.4.
23
+ // See https://issues.apache.org/jira/browse/KAFKA-9577
24
+ "validVersions": "0-1",
25
+ "flexibleVersions": "none",
26
+ "fields": [
27
+ { "name": "ErrorCode", "type": "int16", "versions": "0+",
28
+ "about": "The error code, or 0 if there was no error." },
29
+ { "name": "Mechanisms", "type": "[]string", "versions": "0+",
30
+ "about": "The mechanisms enabled in the server." }
31
+ ]
32
+ }
@@ -0,0 +1,56 @@
1
+ // Licensed to the Apache Software Foundation (ASF) under one or more
2
+ // contributor license agreements. See the NOTICE file distributed with
3
+ // this work for additional information regarding copyright ownership.
4
+ // The ASF licenses this file to You under the Apache License, Version 2.0
5
+ // (the "License"); you may not use this file except in compliance with
6
+ // the License. You may obtain a copy of the License at
7
+ //
8
+ // http://www.apache.org/licenses/LICENSE-2.0
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+
16
+ {
17
+ "apiKey": 14,
18
+ "type": "request",
19
+ "listeners": ["broker"],
20
+ "name": "SyncGroupRequest",
21
+ // Versions 1 and 2 are the same as version 0.
22
+ //
23
+ // Starting from version 3, we add a new field called groupInstanceId to indicate member identity across restarts.
24
+ //
25
+ // Version 4 is the first flexible version.
26
+ //
27
+ // Starting from version 5, the client sends the Protocol Type and the Protocol Name
28
+ // to the broker (KIP-559). The broker will reject the request if they are inconsistent
29
+ // with the Type and Name known by the broker.
30
+ "validVersions": "0-5",
31
+ "flexibleVersions": "4+",
32
+ "fields": [
33
+ { "name": "GroupId", "type": "string", "versions": "0+", "entityType": "groupId",
34
+ "about": "The unique group identifier." },
35
+ { "name": "GenerationId", "type": "int32", "versions": "0+",
36
+ "about": "The generation of the group." },
37
+ { "name": "MemberId", "type": "string", "versions": "0+",
38
+ "about": "The member ID assigned by the group." },
39
+ { "name": "GroupInstanceId", "type": "string", "versions": "3+",
40
+ "nullableVersions": "3+", "default": "null",
41
+ "about": "The unique identifier of the consumer instance provided by end user." },
42
+ { "name": "ProtocolType", "type": "string", "versions": "5+",
43
+ "nullableVersions": "5+", "default": "null", "ignorable": true,
44
+ "about": "The group protocol type." },
45
+ { "name": "ProtocolName", "type": "string", "versions": "5+",
46
+ "nullableVersions": "5+", "default": "null", "ignorable": true,
47
+ "about": "The group protocol name." },
48
+ { "name": "Assignments", "type": "[]SyncGroupRequestAssignment", "versions": "0+",
49
+ "about": "Each assignment.", "fields": [
50
+ { "name": "MemberId", "type": "string", "versions": "0+",
51
+ "about": "The ID of the member to assign." },
52
+ { "name": "Assignment", "type": "bytes", "versions": "0+",
53
+ "about": "The member assignment." }
54
+ ]}
55
+ ]
56
+ }
@@ -0,0 +1,46 @@
1
+ // Licensed to the Apache Software Foundation (ASF) under one or more
2
+ // contributor license agreements. See the NOTICE file distributed with
3
+ // this work for additional information regarding copyright ownership.
4
+ // The ASF licenses this file to You under the Apache License, Version 2.0
5
+ // (the "License"); you may not use this file except in compliance with
6
+ // the License. You may obtain a copy of the License at
7
+ //
8
+ // http://www.apache.org/licenses/LICENSE-2.0
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+
16
+ {
17
+ "apiKey": 14,
18
+ "type": "response",
19
+ "name": "SyncGroupResponse",
20
+ // Version 1 adds throttle time.
21
+ //
22
+ // Starting in version 2, on quota violation, brokers send out responses before throttling.
23
+ //
24
+ // Starting from version 3, syncGroupRequest supports a new field called groupInstanceId to indicate member identity across restarts.
25
+ //
26
+ // Version 4 is the first flexible version.
27
+ //
28
+ // Starting from version 5, the broker sends back the Protocol Type and the Protocol Name
29
+ // to the client (KIP-559).
30
+ "validVersions": "0-5",
31
+ "flexibleVersions": "4+",
32
+ "fields": [
33
+ { "name": "ThrottleTimeMs", "type": "int32", "versions": "1+", "ignorable": true,
34
+ "about": "The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota." },
35
+ { "name": "ErrorCode", "type": "int16", "versions": "0+",
36
+ "about": "The error code, or 0 if there was no error." },
37
+ { "name": "ProtocolType", "type": "string", "versions": "5+",
38
+ "nullableVersions": "5+", "default": "null", "ignorable": true,
39
+ "about": "The group protocol type." },
40
+ { "name": "ProtocolName", "type": "string", "versions": "5+",
41
+ "nullableVersions": "5+", "default": "null", "ignorable": true,
42
+ "about": "The group protocol name." },
43
+ { "name": "Assignment", "type": "bytes", "versions": "0+",
44
+ "about": "The member assignment." }
45
+ ]
46
+ }
@@ -0,0 +1,68 @@
1
+ // Licensed to the Apache Software Foundation (ASF) under one or more
2
+ // contributor license agreements. See the NOTICE file distributed with
3
+ // this work for additional information regarding copyright ownership.
4
+ // The ASF licenses this file to You under the Apache License, Version 2.0
5
+ // (the "License"); you may not use this file except in compliance with
6
+ // the License. You may obtain a copy of the License at
7
+ //
8
+ // http://www.apache.org/licenses/LICENSE-2.0
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+
16
+ {
17
+ "apiKey": 28,
18
+ "type": "request",
19
+ "listeners": ["broker"],
20
+ "name": "TxnOffsetCommitRequest",
21
+ // Version 1 is the same as version 0.
22
+ //
23
+ // Version 2 adds the committed leader epoch.
24
+ //
25
+ // Version 3 adds the member.id, group.instance.id and generation.id.
26
+ //
27
+ // Version 4 adds support for new error code TRANSACTION_ABORTABLE (KIP-890).
28
+ //
29
+ // Version 5 is the same as version 4 (KIP-890). Note when TxnOffsetCommit requests are used in transaction, if
30
+ // transaction V2 (KIP_890 part 2) is enabled, the TxnOffsetCommit request will also include the function for a
31
+ // AddOffsetsToTxn call. If V2 is disabled, the client can't use TxnOffsetCommit request version higher than 4 within
32
+ // a transaction.
33
+ "validVersions": "0-5",
34
+ "flexibleVersions": "3+",
35
+ "fields": [
36
+ { "name": "TransactionalId", "type": "string", "versions": "0+", "entityType": "transactionalId",
37
+ "about": "The ID of the transaction." },
38
+ { "name": "GroupId", "type": "string", "versions": "0+", "entityType": "groupId",
39
+ "about": "The ID of the group." },
40
+ { "name": "ProducerId", "type": "int64", "versions": "0+", "entityType": "producerId",
41
+ "about": "The current producer ID in use by the transactional ID." },
42
+ { "name": "ProducerEpoch", "type": "int16", "versions": "0+",
43
+ "about": "The current epoch associated with the producer ID." },
44
+ { "name": "GenerationId", "type": "int32", "versions": "3+", "default": "-1",
45
+ "about": "The generation of the consumer." },
46
+ { "name": "MemberId", "type": "string", "versions": "3+", "default": "",
47
+ "about": "The member ID assigned by the group coordinator." },
48
+ { "name": "GroupInstanceId", "type": "string", "versions": "3+",
49
+ "nullableVersions": "3+", "default": "null",
50
+ "about": "The unique identifier of the consumer instance provided by end user." },
51
+ { "name": "Topics", "type" : "[]TxnOffsetCommitRequestTopic", "versions": "0+",
52
+ "about": "Each topic that we want to commit offsets for.", "fields": [
53
+ { "name": "Name", "type": "string", "versions": "0+", "entityType": "topicName",
54
+ "about": "The topic name." },
55
+ { "name": "Partitions", "type": "[]TxnOffsetCommitRequestPartition", "versions": "0+",
56
+ "about": "The partitions inside the topic that we want to commit offsets for.", "fields": [
57
+ { "name": "PartitionIndex", "type": "int32", "versions": "0+",
58
+ "about": "The index of the partition within the topic." },
59
+ { "name": "CommittedOffset", "type": "int64", "versions": "0+",
60
+ "about": "The message offset to be committed." },
61
+ { "name": "CommittedLeaderEpoch", "type": "int32", "versions": "2+", "default": "-1", "ignorable": true,
62
+ "about": "The leader epoch of the last consumed record." },
63
+ { "name": "CommittedMetadata", "type": "string", "versions": "0+", "nullableVersions": "0+",
64
+ "about": "Any associated metadata the client wants to keep." }
65
+ ]}
66
+ ]}
67
+ ]
68
+ }
@@ -0,0 +1,47 @@
1
+ // Licensed to the Apache Software Foundation (ASF) under one or more
2
+ // contributor license agreements. See the NOTICE file distributed with
3
+ // this work for additional information regarding copyright ownership.
4
+ // The ASF licenses this file to You under the Apache License, Version 2.0
5
+ // (the "License"); you may not use this file except in compliance with
6
+ // the License. You may obtain a copy of the License at
7
+ //
8
+ // http://www.apache.org/licenses/LICENSE-2.0
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+
16
+ {
17
+ "apiKey": 28,
18
+ "type": "response",
19
+ "name": "TxnOffsetCommitResponse",
20
+ // Starting in version 1, on quota violation, brokers send out responses before throttling.
21
+ //
22
+ // Version 2 is the same as version 1.
23
+ //
24
+ // Version 3 adds illegal generation, fenced instance id, and unknown member id errors.
25
+ //
26
+ // Version 4 adds support for new error code TRANSACTION_ABORTABLE (KIP-890).
27
+ //
28
+ // Version 5 is the same with version 3 (KIP-890).
29
+ "validVersions": "0-5",
30
+ "flexibleVersions": "3+",
31
+ "fields": [
32
+ { "name": "ThrottleTimeMs", "type": "int32", "versions": "0+",
33
+ "about": "The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota." },
34
+ { "name": "Topics", "type": "[]TxnOffsetCommitResponseTopic", "versions": "0+",
35
+ "about": "The responses for each topic.", "fields": [
36
+ { "name": "Name", "type": "string", "versions": "0+", "entityType": "topicName",
37
+ "about": "The topic name." },
38
+ { "name": "Partitions", "type": "[]TxnOffsetCommitResponsePartition", "versions": "0+",
39
+ "about": "The responses for each partition in the topic.", "fields": [
40
+ { "name": "PartitionIndex", "type": "int32", "versions": "0+",
41
+ "about": "The partition index." },
42
+ { "name": "ErrorCode", "type": "int16", "versions": "0+",
43
+ "about": "The error code, or 0 if there was no error." }
44
+ ]}
45
+ ]}
46
+ ]
47
+ }
@@ -0,0 +1,43 @@
1
+ // Licensed to the Apache Software Foundation (ASF) under one or more
2
+ // contributor license agreements. See the NOTICE file distributed with
3
+ // this work for additional information regarding copyright ownership.
4
+ // The ASF licenses this file to You under the Apache License, Version 2.0
5
+ // (the "License"); you may not use this file except in compliance with
6
+ // the License. You may obtain a copy of the License at
7
+ //
8
+ // http://www.apache.org/licenses/LICENSE-2.0
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+
16
+ {
17
+ "apiKey": 57,
18
+ "type": "request",
19
+ "listeners": ["broker", "controller"],
20
+ "name": "UpdateFeaturesRequest",
21
+ // Version 1 adds validate only field.
22
+ //
23
+ // Version 2 changes the response to not return feature level results.
24
+ "validVersions": "0-2",
25
+ "flexibleVersions": "0+",
26
+ "fields": [
27
+ { "name": "timeoutMs", "type": "int32", "versions": "0+", "default": "60000",
28
+ "about": "How long to wait in milliseconds before timing out the request." },
29
+ { "name": "FeatureUpdates", "type": "[]FeatureUpdateKey", "versions": "0+",
30
+ "about": "The list of updates to finalized features.", "fields": [
31
+ { "name": "Feature", "type": "string", "versions": "0+", "mapKey": true,
32
+ "about": "The name of the finalized feature to be updated."},
33
+ { "name": "MaxVersionLevel", "type": "int16", "versions": "0+",
34
+ "about": "The new maximum version level for the finalized feature. A value >= 1 is valid. A value < 1, is special, and can be used to request the deletion of the finalized feature."},
35
+ { "name": "AllowDowngrade", "type": "bool", "versions": "0",
36
+ "about": "DEPRECATED in version 1 (see DowngradeType). When set to true, the finalized feature version level is allowed to be downgraded/deleted. The downgrade request will fail if the new maximum version level is a value that's not lower than the existing maximum finalized version level."},
37
+ { "name": "UpgradeType", "type": "int8", "versions": "1+", "default": 1,
38
+ "about": "Determine which type of upgrade will be performed: 1 will perform an upgrade only (default), 2 is safe downgrades only (lossless), 3 is unsafe downgrades (lossy)."}
39
+ ]},
40
+ { "name": "ValidateOnly", "type": "bool", "versions": "1+", "default": false,
41
+ "about": "True if we should validate the request, but not perform the upgrade or downgrade."}
42
+ ]
43
+ }
@@ -0,0 +1,39 @@
1
+ // Licensed to the Apache Software Foundation (ASF) under one or more
2
+ // contributor license agreements. See the NOTICE file distributed with
3
+ // this work for additional information regarding copyright ownership.
4
+ // The ASF licenses this file to You under the Apache License, Version 2.0
5
+ // (the "License"); you may not use this file except in compliance with
6
+ // the License. You may obtain a copy of the License at
7
+ //
8
+ // http://www.apache.org/licenses/LICENSE-2.0
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+
16
+ {
17
+ "apiKey": 57,
18
+ "type": "response",
19
+ "name": "UpdateFeaturesResponse",
20
+ "validVersions": "0-2",
21
+ "flexibleVersions": "0+",
22
+ "fields": [
23
+ { "name": "ThrottleTimeMs", "type": "int32", "versions": "0+",
24
+ "about": "The duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota." },
25
+ { "name": "ErrorCode", "type": "int16", "versions": "0+",
26
+ "about": "The top-level error code, or `0` if there was no top-level error." },
27
+ { "name": "ErrorMessage", "type": "string", "versions": "0+", "nullableVersions": "0+",
28
+ "about": "The top-level error message, or `null` if there was no top-level error." },
29
+ { "name": "Results", "type": "[]UpdatableFeatureResult", "versions": "0-1", "ignorable": true,
30
+ "about": "Results for each feature update.", "fields": [
31
+ { "name": "Feature", "type": "string", "versions": "0+", "mapKey": true,
32
+ "about": "The name of the finalized feature."},
33
+ { "name": "ErrorCode", "type": "int16", "versions": "0+",
34
+ "about": "The feature update error code or `0` if the feature update succeeded." },
35
+ { "name": "ErrorMessage", "type": "string", "versions": "0+", "nullableVersions": "0+",
36
+ "about": "The feature update error, or `null` if the feature update succeeded." }
37
+ ]}
38
+ ]
39
+ }
@@ -0,0 +1,49 @@
1
+ // Licensed to the Apache Software Foundation (ASF) under one or more
2
+ // contributor license agreements. See the NOTICE file distributed with
3
+ // this work for additional information regarding copyright ownership.
4
+ // The ASF licenses this file to You under the Apache License, Version 2.0
5
+ // (the "License"); you may not use this file except in compliance with
6
+ // the License. You may obtain a copy of the License at
7
+ //
8
+ // http://www.apache.org/licenses/LICENSE-2.0
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+
16
+ {
17
+ "apiKey": 27,
18
+ "type": "request",
19
+ "listeners": ["broker"],
20
+ "name": "WriteTxnMarkersRequest",
21
+ // Version 0 was removed in Apache Kafka 4.0, Version 1 is the new baseline.
22
+ //
23
+ // Version 1 enables flexible versions.
24
+ // Version 2 adds TransactionVersion field to the WritableTxnMarker (KIP-1228).
25
+ "validVersions": "1-2",
26
+ "flexibleVersions": "1+",
27
+ "fields": [
28
+ { "name": "Markers", "type": "[]WritableTxnMarker", "versions": "0+",
29
+ "about": "The transaction markers to be written.", "fields": [
30
+ { "name": "ProducerId", "type": "int64", "versions": "0+", "entityType": "producerId",
31
+ "about": "The current producer ID."},
32
+ { "name": "ProducerEpoch", "type": "int16", "versions": "0+",
33
+ "about": "The current epoch associated with the producer ID." },
34
+ { "name": "TransactionResult", "type": "bool", "versions": "0+",
35
+ "about": "The result of the transaction to write to the partitions (false = ABORT, true = COMMIT)." },
36
+ { "name": "Topics", "type": "[]WritableTxnMarkerTopic", "versions": "0+",
37
+ "about": "Each topic that we want to write transaction marker(s) for.", "fields": [
38
+ { "name": "Name", "type": "string", "versions": "0+", "entityType": "topicName",
39
+ "about": "The topic name." },
40
+ { "name": "PartitionIndexes", "type": "[]int32", "versions": "0+",
41
+ "about": "The indexes of the partitions to write transaction markers for." }
42
+ ]},
43
+ { "name": "CoordinatorEpoch", "type": "int32", "versions": "0+",
44
+ "about": "Epoch associated with the transaction state partition hosted by this transaction coordinator." },
45
+ { "name": "TransactionVersion", "type": "int8", "versions": "2+", "ignorable": true,
46
+ "about": "Transaction version of the marker. Ex: 0/1 = legacy (TV0/TV1), 2 = TV2 etc.", "default": "0" }
47
+ ]}
48
+ ]
49
+ }
@@ -0,0 +1,45 @@
1
+ // Licensed to the Apache Software Foundation (ASF) under one or more
2
+ // contributor license agreements. See the NOTICE file distributed with
3
+ // this work for additional information regarding copyright ownership.
4
+ // The ASF licenses this file to You under the Apache License, Version 2.0
5
+ // (the "License"); you may not use this file except in compliance with
6
+ // the License. You may obtain a copy of the License at
7
+ //
8
+ // http://www.apache.org/licenses/LICENSE-2.0
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+
16
+ {
17
+ "apiKey": 27,
18
+ "type": "response",
19
+ "name": "WriteTxnMarkersResponse",
20
+ "validVersions": "1-2",
21
+ // Version 0 was removed in Apache Kafka 4.0, Version 1 is the new baseline.
22
+ //
23
+ // Version 1 enables flexible versions.
24
+ // Version 2 matches WriteTxnMarkersRequest version 2 (KIP-1228).
25
+ "flexibleVersions": "1+",
26
+ "fields": [
27
+ { "name": "Markers", "type": "[]WritableTxnMarkerResult", "versions": "0+",
28
+ "about": "The results for writing makers.", "fields": [
29
+ { "name": "ProducerId", "type": "int64", "versions": "0+", "entityType": "producerId",
30
+ "about": "The current producer ID in use by the transactional ID." },
31
+ { "name": "Topics", "type": "[]WritableTxnMarkerTopicResult", "versions": "0+",
32
+ "about": "The results by topic.", "fields": [
33
+ { "name": "Name", "type": "string", "versions": "0+", "entityType": "topicName",
34
+ "about": "The topic name." },
35
+ { "name": "Partitions", "type": "[]WritableTxnMarkerPartitionResult", "versions": "0+",
36
+ "about": "The results by partition.", "fields": [
37
+ { "name": "PartitionIndex", "type": "int32", "versions": "0+",
38
+ "about": "The partition index." },
39
+ { "name": "ErrorCode", "type": "int16", "versions": "0+",
40
+ "about": "The error code, or 0 if there was no error." }
41
+ ]}
42
+ ]}
43
+ ]}
44
+ ]
45
+ }
File without changes
@@ -0,0 +1,3 @@
1
+ from kafka.record.memory_records import MemoryRecords, MemoryRecordsBuilder
2
+
3
+ __all__ = ["MemoryRecords", "MemoryRecordsBuilder"]