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,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": 12,
18
+ "type": "request",
19
+ "listeners": ["broker"],
20
+ "name": "HeartbeatRequest",
21
+ // Version 1 and version 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
+ "validVersions": "0-4",
27
+ "flexibleVersions": "4+",
28
+ "fields": [
29
+ { "name": "GroupId", "type": "string", "versions": "0+", "entityType": "groupId",
30
+ "about": "The group id." },
31
+ { "name": "GenerationId", "type": "int32", "versions": "0+",
32
+ "about": "The generation of the group." },
33
+ { "name": "MemberId", "type": "string", "versions": "0+",
34
+ "about": "The member ID." },
35
+ { "name": "GroupInstanceId", "type": "string", "versions": "3+",
36
+ "nullableVersions": "3+", "default": "null",
37
+ "about": "The unique identifier of the consumer instance provided by end user." }
38
+ ]
39
+ }
@@ -0,0 +1,35 @@
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": 12,
18
+ "type": "response",
19
+ "name": "HeartbeatResponse",
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, heartbeatRequest supports a new field called groupInstanceId to indicate member identity across restarts.
25
+ //
26
+ // Version 4 is the first flexible version.
27
+ "validVersions": "0-4",
28
+ "flexibleVersions": "4+",
29
+ "fields": [
30
+ { "name": "ThrottleTimeMs", "type": "int32", "versions": "1+", "ignorable": true,
31
+ "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." },
32
+ { "name": "ErrorCode", "type": "int16", "versions": "0+",
33
+ "about": "The error code, or 0 if there was no error." }
34
+ ]
35
+ }
@@ -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
+ "apiKey": 44,
18
+ "type": "request",
19
+ "listeners": ["broker", "controller"],
20
+ "name": "IncrementalAlterConfigsRequest",
21
+ // Version 1 is the first flexible version.
22
+ "validVersions": "0-1",
23
+ "flexibleVersions": "1+",
24
+ "fields": [
25
+ { "name": "Resources", "type": "[]AlterConfigsResource", "versions": "0+",
26
+ "about": "The incremental updates for each resource.", "fields": [
27
+ { "name": "ResourceType", "type": "int8", "versions": "0+", "mapKey": true,
28
+ "about": "The resource type." },
29
+ { "name": "ResourceName", "type": "string", "versions": "0+", "mapKey": true,
30
+ "about": "The resource name." },
31
+ { "name": "Configs", "type": "[]AlterableConfig", "versions": "0+",
32
+ "about": "The configurations.", "fields": [
33
+ { "name": "Name", "type": "string", "versions": "0+", "mapKey": true,
34
+ "about": "The configuration key name." },
35
+ { "name": "ConfigOperation", "type": "int8", "versions": "0+", "mapKey": true,
36
+ "about": "The type (Set, Delete, Append, Subtract) of operation." },
37
+ { "name": "Value", "type": "string", "versions": "0+", "nullableVersions": "0+",
38
+ "about": "The value to set for the configuration key."}
39
+ ]}
40
+ ]},
41
+ { "name": "ValidateOnly", "type": "bool", "versions": "0+",
42
+ "about": "True if we should validate the request, but not change the configurations."}
43
+ ]
44
+ }
@@ -0,0 +1,38 @@
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": 44,
18
+ "type": "response",
19
+ "name": "IncrementalAlterConfigsResponse",
20
+ // Version 1 is the first flexible version.
21
+ "validVersions": "0-1",
22
+ "flexibleVersions": "1+",
23
+ "fields": [
24
+ { "name": "ThrottleTimeMs", "type": "int32", "versions": "0+",
25
+ "about": "Duration in milliseconds for which the request was throttled due to a quota violation, or zero if the request did not violate any quota." },
26
+ { "name": "Responses", "type": "[]AlterConfigsResourceResponse", "versions": "0+",
27
+ "about": "The responses for each resource.", "fields": [
28
+ { "name": "ErrorCode", "type": "int16", "versions": "0+",
29
+ "about": "The resource error code." },
30
+ { "name": "ErrorMessage", "type": "string", "nullableVersions": "0+", "versions": "0+",
31
+ "about": "The resource error message, or null if there was no error." },
32
+ { "name": "ResourceType", "type": "int8", "versions": "0+",
33
+ "about": "The resource type." },
34
+ { "name": "ResourceName", "type": "string", "versions": "0+",
35
+ "about": "The resource name." }
36
+ ]}
37
+ ]
38
+ }
@@ -0,0 +1,50 @@
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": 22,
18
+ "type": "request",
19
+ "listeners": ["broker"],
20
+ "name": "InitProducerIdRequest",
21
+ // Version 1 is the same as version 0.
22
+ //
23
+ // Version 2 is the first flexible version.
24
+ //
25
+ // Version 3 adds ProducerId and ProducerEpoch, allowing producers to try to resume after an INVALID_PRODUCER_EPOCH error
26
+ //
27
+ // Version 4 adds the support for new error code PRODUCER_FENCED.
28
+ //
29
+ // Version 5 adds support for new error code TRANSACTION_ABORTABLE (KIP-890).
30
+ //
31
+ // Version 6 adds support for 2PC (KIP-939).
32
+ "latestVersionUnstable": true,
33
+ "validVersions": "0-6",
34
+ "flexibleVersions": "2+",
35
+ "fields": [
36
+ { "name": "TransactionalId", "type": "string", "versions": "0+", "nullableVersions": "0+", "entityType": "transactionalId",
37
+ "about": "The transactional id, or null if the producer is not transactional." },
38
+ { "name": "TransactionTimeoutMs", "type": "int32", "versions": "0+",
39
+ "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." },
40
+ { "name": "ProducerId", "type": "int64", "versions": "3+", "default": "-1", "entityType": "producerId",
41
+ "about": "The producer id. This is used to disambiguate requests if a transactional id is reused following its expiration." },
42
+ { "name": "ProducerEpoch", "type": "int16", "versions": "3+", "default": "-1",
43
+ "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." },
44
+ { "name": "Enable2Pc", "type": "bool", "versions": "6+", "default": "false",
45
+ "about": "True if the client wants to enable two-phase commit (2PC) protocol for transactions." },
46
+ { "name": "KeepPreparedTxn", "type": "bool", "versions": "6+", "default": "false",
47
+ "about": "True if the client wants to keep the currently ongoing transaction instead of aborting it." }
48
+
49
+ ]
50
+ }
@@ -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": 22,
18
+ "type": "response",
19
+ "name": "InitProducerIdResponse",
20
+ // Starting in version 1, on quota violation, brokers send out responses before throttling.
21
+ //
22
+ // Version 2 is the first flexible version.
23
+ //
24
+ // Version 3 is the same as version 2.
25
+ //
26
+ // Version 4 adds the support for new error code PRODUCER_FENCED.
27
+ //
28
+ // Version 5 adds support for new error code TRANSACTION_ABORTABLE (KIP-890).
29
+ //
30
+ // Version 6 adds support for 2PC (KIP-939).
31
+ "validVersions": "0-6",
32
+ "flexibleVersions": "2+",
33
+ "fields": [
34
+ { "name": "ThrottleTimeMs", "type": "int32", "versions": "0+", "ignorable": true,
35
+ "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." },
36
+ { "name": "ErrorCode", "type": "int16", "versions": "0+",
37
+ "about": "The error code, or 0 if there was no error." },
38
+ { "name": "ProducerId", "type": "int64", "versions": "0+", "entityType": "producerId",
39
+ "default": -1, "about": "The current producer id." },
40
+ { "name": "ProducerEpoch", "type": "int16", "versions": "0+",
41
+ "about": "The current epoch associated with the producer id." },
42
+ { "name": "OngoingTxnProducerId", "type": "int64", "versions": "6+", "entityType": "producerId",
43
+ "default": -1, "about": "The producer id for ongoing transaction when KeepPreparedTxn is used, -1 if there is no transaction ongoing." },
44
+ { "name": "OngoingTxnProducerEpoch", "type": "int16", "default": -1, "versions": "6+",
45
+ "about": "The epoch associated with the producer id for ongoing transaction when KeepPreparedTxn is used, -1 if there is no transaction ongoing." }
46
+ ]
47
+ }
@@ -0,0 +1,63 @@
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": 11,
18
+ "type": "request",
19
+ "listeners": ["broker"],
20
+ "name": "JoinGroupRequest",
21
+ // Version 1 adds RebalanceTimeoutMs. Version 2 and 3 are the same as version 1.
22
+ //
23
+ // Starting from version 4, the client needs to issue a second request to join group
24
+ //
25
+ // Starting from version 5, we add a new field called groupInstanceId to indicate member identity across restarts.
26
+ // with assigned id.
27
+ //
28
+ // Version 6 is the first flexible version.
29
+ //
30
+ // Version 7 is the same as version 6.
31
+ //
32
+ // Version 8 adds the Reason field (KIP-800).
33
+ //
34
+ // Version 9 is the same as version 8.
35
+ "validVersions": "0-9",
36
+ "flexibleVersions": "6+",
37
+ "fields": [
38
+ { "name": "GroupId", "type": "string", "versions": "0+", "entityType": "groupId",
39
+ "about": "The group identifier." },
40
+ { "name": "SessionTimeoutMs", "type": "int32", "versions": "0+",
41
+ "about": "The coordinator considers the consumer dead if it receives no heartbeat after this timeout in milliseconds." },
42
+ // Note: if RebalanceTimeoutMs is not present, SessionTimeoutMs should be
43
+ // used instead. The default of -1 here is just intended as a placeholder.
44
+ { "name": "RebalanceTimeoutMs", "type": "int32", "versions": "1+", "default": "-1", "ignorable": true,
45
+ "about": "The maximum time in milliseconds that the coordinator will wait for each member to rejoin when rebalancing the group." },
46
+ { "name": "MemberId", "type": "string", "versions": "0+",
47
+ "about": "The member id assigned by the group coordinator." },
48
+ { "name": "GroupInstanceId", "type": "string", "versions": "5+",
49
+ "nullableVersions": "5+", "default": "null",
50
+ "about": "The unique identifier of the consumer instance provided by end user." },
51
+ { "name": "ProtocolType", "type": "string", "versions": "0+",
52
+ "about": "The unique name the for class of protocols implemented by the group we want to join." },
53
+ { "name": "Protocols", "type": "[]JoinGroupRequestProtocol", "versions": "0+",
54
+ "about": "The list of protocols that the member supports.", "fields": [
55
+ { "name": "Name", "type": "string", "versions": "0+", "mapKey": true,
56
+ "about": "The protocol name." },
57
+ { "name": "Metadata", "type": "bytes", "versions": "0+",
58
+ "about": "The protocol metadata." }
59
+ ]},
60
+ { "name": "Reason", "type": "string", "versions": "8+", "nullableVersions": "8+", "default": "null", "ignorable": true,
61
+ "about": "The reason why the member (re-)joins the group." }
62
+ ]
63
+ }
@@ -0,0 +1,69 @@
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": 11,
18
+ "type": "response",
19
+ "name": "JoinGroupResponse",
20
+ // Version 1 is the same as version 0.
21
+ //
22
+ // Version 2 adds throttle time.
23
+ //
24
+ // Starting in version 3, on quota violation, brokers send out responses before throttling.
25
+ //
26
+ // Starting in version 4, the client needs to issue a second request to join group
27
+ // with assigned id.
28
+ //
29
+ // Version 5 is bumped to apply group.instance.id to identify member across restarts.
30
+ //
31
+ // Version 6 is the first flexible version.
32
+ //
33
+ // Starting from version 7, the broker sends back the Protocol Type to the client (KIP-559).
34
+ //
35
+ // Version 8 is the same as version 7.
36
+ //
37
+ // Version 9 adds the SkipAssignment field.
38
+ "validVersions": "0-9",
39
+ "flexibleVersions": "6+",
40
+ "fields": [
41
+ { "name": "ThrottleTimeMs", "type": "int32", "versions": "2+", "ignorable": true,
42
+ "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." },
43
+ { "name": "ErrorCode", "type": "int16", "versions": "0+",
44
+ "about": "The error code, or 0 if there was no error." },
45
+ { "name": "GenerationId", "type": "int32", "versions": "0+", "default": "-1",
46
+ "about": "The generation ID of the group." },
47
+ { "name": "ProtocolType", "type": "string", "versions": "7+",
48
+ "nullableVersions": "7+", "default": "null", "ignorable": true,
49
+ "about": "The group protocol name." },
50
+ { "name": "ProtocolName", "type": "string", "versions": "0+", "nullableVersions": "7+",
51
+ "about": "The group protocol selected by the coordinator." },
52
+ { "name": "Leader", "type": "string", "versions": "0+",
53
+ "about": "The leader of the group." },
54
+ { "name": "SkipAssignment", "type": "bool", "versions": "9+", "default": "false",
55
+ "about": "True if the leader must skip running the assignment." },
56
+ { "name": "MemberId", "type": "string", "versions": "0+",
57
+ "about": "The member ID assigned by the group coordinator." },
58
+ { "name": "Members", "type": "[]JoinGroupResponseMember", "versions": "0+",
59
+ "about": "The group members.", "fields": [
60
+ { "name": "MemberId", "type": "string", "versions": "0+",
61
+ "about": "The group member ID." },
62
+ { "name": "GroupInstanceId", "type": "string", "versions": "5+", "ignorable": true,
63
+ "nullableVersions": "5+", "default": "null",
64
+ "about": "The unique identifier of the consumer instance provided by end user." },
65
+ { "name": "Metadata", "type": "bytes", "versions": "0+",
66
+ "about": "The group member metadata." }]
67
+ }
68
+ ]
69
+ }
@@ -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": 13,
18
+ "type": "request",
19
+ "listeners": ["broker"],
20
+ "name": "LeaveGroupRequest",
21
+ // Version 1 and 2 are the same as version 0.
22
+ //
23
+ // Version 3 defines batch processing scheme with group.instance.id + member.id for identity
24
+ //
25
+ // Version 4 is the first flexible version.
26
+ //
27
+ // Version 5 adds the Reason field (KIP-800).
28
+ "validVersions": "0-5",
29
+ "flexibleVersions": "4+",
30
+ "fields": [
31
+ { "name": "GroupId", "type": "string", "versions": "0+", "entityType": "groupId",
32
+ "about": "The ID of the group to leave." },
33
+ { "name": "MemberId", "type": "string", "versions": "0-2",
34
+ "about": "The member ID to remove from the group." },
35
+ { "name": "Members", "type": "[]MemberIdentity", "versions": "3+",
36
+ "about": "List of leaving member identities.", "fields": [
37
+ { "name": "MemberId", "type": "string", "versions": "3+",
38
+ "about": "The member ID to remove from the group." },
39
+ { "name": "GroupInstanceId", "type": "string",
40
+ "versions": "3+", "nullableVersions": "3+", "default": "null",
41
+ "about": "The group instance ID to remove from the group." },
42
+ { "name": "Reason", "type": "string",
43
+ "versions": "5+", "nullableVersions": "5+", "default": "null", "ignorable": true,
44
+ "about": "The reason why the member left the group." }
45
+ ]}
46
+ ]
47
+ }
@@ -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": 13,
18
+ "type": "response",
19
+ "name": "LeaveGroupResponse",
20
+ // Version 1 adds the throttle time.
21
+ //
22
+ // Starting in version 2, on quota violation, brokers send out responses before throttling.
23
+ //
24
+ // Starting in version 3, we will make leave group request into batch mode and add group.instance.id.
25
+ //
26
+ // Version 4 is the first flexible version.
27
+ //
28
+ // Version 5 is the same as version 4.
29
+ "validVersions": "0-5",
30
+ "flexibleVersions": "4+",
31
+ "fields": [
32
+ { "name": "ThrottleTimeMs", "type": "int32", "versions": "1+", "ignorable": true,
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": "ErrorCode", "type": "int16", "versions": "0+",
35
+ "about": "The error code, or 0 if there was no error." },
36
+
37
+ { "name": "Members", "type": "[]MemberResponse", "versions": "3+",
38
+ "about": "List of leaving member responses.", "fields": [
39
+ { "name": "MemberId", "type": "string", "versions": "3+",
40
+ "about": "The member ID to remove from the group." },
41
+ { "name": "GroupInstanceId", "type": "string", "versions": "3+", "nullableVersions": "3+",
42
+ "about": "The group instance ID to remove from the group." },
43
+ { "name": "ErrorCode", "type": "int16", "versions": "3+",
44
+ "about": "The error code, or 0 if there was no error." }
45
+ ]}
46
+ ]
47
+ }
@@ -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": 74,
18
+ "type": "request",
19
+ "listeners": ["broker"],
20
+ "name": "ListConfigResourcesRequest",
21
+ // Version 0 is used as ListClientMetricsResourcesRequest which only lists client metrics resources.
22
+ // Version 1 adds ResourceTypes field (KIP-1142). If there is no specified ResourceTypes, it should return all configuration resources.
23
+ "validVersions": "0-1",
24
+ "flexibleVersions": "0+",
25
+ "fields": [
26
+ { "name": "ResourceTypes", "type": "[]int8", "versions": "1+",
27
+ "about": "The list of resource type. If the list is empty, it uses default supported config resource types."
28
+ }
29
+ ]
30
+ }
31
+
@@ -0,0 +1,37 @@
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": 74,
18
+ "type": "response",
19
+ "name": "ListConfigResourcesResponse",
20
+ // Version 0 is used as ListClientMetricsResourcesResponse which returns all client metrics resources.
21
+ // Version 1 adds ResourceType to ConfigResources (KIP-1142).
22
+ "validVersions": "0-1",
23
+ "flexibleVersions": "0+",
24
+ "fields": [
25
+ { "name": "ThrottleTimeMs", "type": "int32", "versions": "0+",
26
+ "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." },
27
+ { "name": "ErrorCode", "type": "int16", "versions": "0+",
28
+ "about": "The error code, or 0 if there was no error." },
29
+ { "name": "ConfigResources", "type": "[]ConfigResource", "versions": "0+",
30
+ "about": "Each config resource in the response.", "fields": [
31
+ { "name": "ResourceName", "type": "string", "versions": "0+",
32
+ "about": "The resource name." },
33
+ { "name": "ResourceType", "type": "int8", "versions": "1+", "ignorable": true, "default": 16,
34
+ "about": "The resource type." }
35
+ ]}
36
+ ]
37
+ }
@@ -0,0 +1,36 @@
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": 16,
18
+ "type": "request",
19
+ "listeners": ["broker"],
20
+ "name": "ListGroupsRequest",
21
+ // Version 1 and 2 are the same as version 0.
22
+ //
23
+ // Version 3 is the first flexible version.
24
+ //
25
+ // Version 4 adds the StatesFilter field (KIP-518).
26
+ //
27
+ // Version 5 adds the TypesFilter field (KIP-848).
28
+ "validVersions": "0-5",
29
+ "flexibleVersions": "3+",
30
+ "fields": [
31
+ { "name": "StatesFilter", "type": "[]string", "versions": "4+",
32
+ "about": "The states of the groups we want to list. If empty, all groups are returned with their state." },
33
+ { "name": "TypesFilter", "type": "[]string", "versions": "5+",
34
+ "about": "The types of the groups we want to list. If empty, all groups are returned with their type." }
35
+ ]
36
+ }