diff --git a/kafka/admin/acl_resource.py b/kafka/admin/acl_resource.py
index 7a012d2..fd997a1 100644
--- a/kafka/admin/acl_resource.py
+++ b/kafka/admin/acl_resource.py
@@ -112,6 +112,24 @@ class ACLFilter(object):
             resource=self.resource_pattern
         )
 
+    def __eq__(self, other):
+        return all((
+            self.principal == other.principal,
+            self.host == other.host,
+            self.operation == other.operation,
+            self.permission_type == other.permission_type,
+            self.resource_pattern == other.resource_pattern
+        ))
+
+    def __hash__(self):
+        return hash((
+            self.principal,
+            self.host,
+            self.operation,
+            self.permission_type,
+            self.resource_pattern,
+        ))
+
 
 class ACL(ACLFilter):
     """Represents a concrete ACL for a specific ResourcePattern
@@ -181,6 +199,20 @@ class ResourcePatternFilter(object):
             self.pattern_type.name
         )
 
+    def __eq__(self, other):
+        return all((
+            self.resource_type == other.resource_type,
+            self.resource_name == other.resource_name,
+            self.pattern_type == other.pattern_type,
+        ))
+
+    def __hash__(self):
+        return hash((
+            self.resource_type,
+            self.resource_name,
+            self.pattern_type
+        ))
+
 
 class ResourcePattern(ResourcePatternFilter):
     """A resource pattern to apply the ACL to
@@ -209,4 +241,4 @@ class ResourcePattern(ResourcePatternFilter):
         if self.pattern_type in [ACLResourcePatternType.ANY, ACLResourcePatternType.MATCH]:
             raise IllegalArgumentError(
                 "pattern_type cannot be {} on a concrete ResourcePattern".format(self.pattern_type.name)
-            )
\ No newline at end of file
+            )
diff --git a/kafka/admin/client.py b/kafka/admin/client.py
index 8afe95b..e9be1d8 100644
--- a/kafka/admin/client.py
+++ b/kafka/admin/client.py
@@ -204,6 +204,7 @@ class KafkaAdminClient(object):
         self._client = KafkaClient(metrics=self._metrics,
                                    metric_group_prefix='admin',
                                    **self.config)
+        self._client.check_version()
 
         # Get auto-discovered version from client if necessary
         if self.config['api_version'] is None:
@@ -435,7 +436,7 @@ class KafkaAdminClient(object):
                 create_topic_requests=[self._convert_new_topic_request(new_topic) for new_topic in new_topics],
                 timeout=timeout_ms
             )
-        elif version <= 2:
+        elif version <= 3:
             request = CreateTopicsRequest[version](
                 create_topic_requests=[self._convert_new_topic_request(new_topic) for new_topic in new_topics],
                 timeout=timeout_ms,
@@ -459,7 +460,7 @@ class KafkaAdminClient(object):
         """
         version = self._matching_api_version(DeleteTopicsRequest)
         timeout_ms = self._validate_timeout(timeout_ms)
-        if version <= 1:
+        if version <= 3:
             request = DeleteTopicsRequest[version](
                 topics=topics,
                 timeout=timeout_ms
@@ -803,7 +804,7 @@ class KafkaAdminClient(object):
                     DescribeConfigsRequest[version](resources=topic_resources)
                 ))
 
-        elif version == 1:
+        elif version <= 2:
             if len(broker_resources) > 0:
                 for broker_resource in broker_resources:
                     try:
@@ -853,7 +854,7 @@ class KafkaAdminClient(object):
         :return: Appropriate version of AlterConfigsResponse class.
         """
         version = self._matching_api_version(AlterConfigsRequest)
-        if version == 0:
+        if version <= 1:
             request = AlterConfigsRequest[version](
                 resources=[self._convert_alter_config_resource_request(config_resource) for config_resource in config_resources]
             )
@@ -901,7 +902,7 @@ class KafkaAdminClient(object):
         """
         version = self._matching_api_version(CreatePartitionsRequest)
         timeout_ms = self._validate_timeout(timeout_ms)
-        if version == 0:
+        if version <= 1:
             request = CreatePartitionsRequest[version](
                 topic_partitions=[self._convert_create_partitions_request(topic_name, new_partitions) for topic_name, new_partitions in topic_partitions.items()],
                 timeout=timeout_ms,
@@ -928,7 +929,7 @@ class KafkaAdminClient(object):
     # describe delegation_token protocol not yet implemented
     # Note: send the request to the least_loaded_node()
 
-    def _describe_consumer_groups_send_request(self, group_id, group_coordinator_id):
+    def _describe_consumer_groups_send_request(self, group_id, group_coordinator_id, include_authorized_operations=False):
         """Send a DescribeGroupsRequest to the group's coordinator.
 
         :param group_id: The group name as a string
@@ -937,13 +938,24 @@ class KafkaAdminClient(object):
         :return: A message future.
         """
         version = self._matching_api_version(DescribeGroupsRequest)
-        if version <= 1:
+        if version <= 2:
+            if include_authorized_operations:
+                raise IncompatibleBrokerVersion(
+                    "include_authorized_operations requests "
+                    "DescribeGroupsRequest >= v3, which is not "
+                    "supported by Kafka {}".format(version)
+                )
             # Note: KAFKA-6788 A potential optimization is to group the
             # request per coordinator and send one request with a list of
             # all consumer groups. Java still hasn't implemented this
             # because the error checking is hard to get right when some
             # groups error and others don't.
             request = DescribeGroupsRequest[version](groups=(group_id,))
+        elif version <= 3:
+            request = DescribeGroupsRequest[version](
+                groups=(group_id,),
+                include_authorized_operations=include_authorized_operations
+            )
         else:
             raise NotImplementedError(
                 "Support for DescribeGroupsRequest_v{} has not yet been added to KafkaAdminClient."
@@ -952,7 +964,7 @@ class KafkaAdminClient(object):
 
     def _describe_consumer_groups_process_response(self, response):
         """Process a DescribeGroupsResponse into a group description."""
-        if response.API_VERSION <= 1:
+        if response.API_VERSION <= 3:
             assert len(response.groups) == 1
             # TODO need to implement converting the response tuple into
             # a more accessible interface like a namedtuple and then stop
@@ -976,7 +988,7 @@ class KafkaAdminClient(object):
                 .format(response.API_VERSION))
         return group_description
 
-    def describe_consumer_groups(self, group_ids, group_coordinator_id=None):
+    def describe_consumer_groups(self, group_ids, group_coordinator_id=None, include_authorized_operations=False):
         """Describe a set of consumer groups.
 
         Any errors are immediately raised.
@@ -989,6 +1001,9 @@ class KafkaAdminClient(object):
             useful for avoiding extra network round trips if you already know
             the group coordinator. This is only useful when all the group_ids
             have the same coordinator, otherwise it will error. Default: None.
+        :param include_authorized_operations: Whether or not to include
+            information about the operations a group is allowed to perform.
+            Only supported on API version >= v3. Default: False.
         :return: A list of group descriptions. For now the group descriptions
             are the raw results from the DescribeGroupsResponse. Long-term, we
             plan to change this to return namedtuples as well as decoding the
@@ -1001,7 +1016,10 @@ class KafkaAdminClient(object):
                 this_groups_coordinator_id = group_coordinator_id
             else:
                 this_groups_coordinator_id = self._find_coordinator_id(group_id)
-            f = self._describe_consumer_groups_send_request(group_id, this_groups_coordinator_id)
+            f = self._describe_consumer_groups_send_request(
+                group_id,
+                this_groups_coordinator_id,
+                include_authorized_operations)
             futures.append(f)
 
         self._wait_for_futures(futures)
diff --git a/kafka/coordinator/base.py b/kafka/coordinator/base.py
index d91f3ea..b0e236a 100644
--- a/kafka/coordinator/base.py
+++ b/kafka/coordinator/base.py
@@ -489,13 +489,16 @@ class BaseCoordinator(object):
         return future
 
     def _failed_request(self, node_id, request, future, error):
-        log.error('Error sending %s to node %s [%s]',
-                  request.__class__.__name__, node_id, error)
         # Marking coordinator dead
         # unless the error is caused by internal client pipelining
         if not isinstance(error, (Errors.NodeNotReadyError,
                                   Errors.TooManyInFlightRequests)):
+            log.error('Error sending %s to node %s [%s]',
+                      request.__class__.__name__, node_id, error)
             self.coordinator_dead(error)
+        else:
+            log.debug('Error sending %s to node %s [%s]',
+                      request.__class__.__name__, node_id, error)
         future.failure(error)
 
     def _handle_join_group_response(self, future, send_time, response):
diff --git a/kafka/protocol/admin.py b/kafka/protocol/admin.py
index e6efad7..b2694dc 100644
--- a/kafka/protocol/admin.py
+++ b/kafka/protocol/admin.py
@@ -1,7 +1,7 @@
 from __future__ import absolute_import
 
 from kafka.protocol.api import Request, Response
-from kafka.protocol.types import Array, Boolean, Bytes, Int8, Int16, Int32, Schema, String
+from kafka.protocol.types import Array, Boolean, Bytes, Int8, Int16, Int32, Int64, Schema, String
 
 
 class ApiVersionResponse_v0(Response):
@@ -29,6 +29,12 @@ class ApiVersionResponse_v1(Response):
     )
 
 
+class ApiVersionResponse_v2(Response):
+    API_KEY = 18
+    API_VERSION = 2
+    SCHEMA = ApiVersionResponse_v1.SCHEMA
+
+
 class ApiVersionRequest_v0(Request):
     API_KEY = 18
     API_VERSION = 0
@@ -43,8 +49,19 @@ class ApiVersionRequest_v1(Request):
     SCHEMA = ApiVersionRequest_v0.SCHEMA
 
 
-ApiVersionRequest = [ApiVersionRequest_v0, ApiVersionRequest_v1]
-ApiVersionResponse = [ApiVersionResponse_v0, ApiVersionResponse_v1]
+class ApiVersionRequest_v2(Request):
+    API_KEY = 18
+    API_VERSION = 2
+    RESPONSE_TYPE = ApiVersionResponse_v1
+    SCHEMA = ApiVersionRequest_v0.SCHEMA
+
+
+ApiVersionRequest = [
+    ApiVersionRequest_v0, ApiVersionRequest_v1, ApiVersionRequest_v2,
+]
+ApiVersionResponse = [
+    ApiVersionResponse_v0, ApiVersionResponse_v1, ApiVersionResponse_v2,
+]
 
 
 class CreateTopicsResponse_v0(Response):
@@ -79,6 +96,11 @@ class CreateTopicsResponse_v2(Response):
             ('error_message', String('utf-8'))))
     )
 
+class CreateTopicsResponse_v3(Response):
+    API_KEY = 19
+    API_VERSION = 3
+    SCHEMA = CreateTopicsResponse_v2.SCHEMA
+
 
 class CreateTopicsRequest_v0(Request):
     API_KEY = 19
@@ -126,11 +148,20 @@ class CreateTopicsRequest_v2(Request):
     SCHEMA = CreateTopicsRequest_v1.SCHEMA
 
 
+class CreateTopicsRequest_v3(Request):
+    API_KEY = 19
+    API_VERSION = 3
+    RESPONSE_TYPE = CreateTopicsResponse_v3
+    SCHEMA = CreateTopicsRequest_v1.SCHEMA
+
+
 CreateTopicsRequest = [
-    CreateTopicsRequest_v0, CreateTopicsRequest_v1, CreateTopicsRequest_v2
+    CreateTopicsRequest_v0, CreateTopicsRequest_v1,
+    CreateTopicsRequest_v2, CreateTopicsRequest_v3,
 ]
 CreateTopicsResponse = [
-    CreateTopicsResponse_v0, CreateTopicsResponse_v1, CreateTopicsResponse_v2
+    CreateTopicsResponse_v0, CreateTopicsResponse_v1,
+    CreateTopicsResponse_v2, CreateTopicsResponse_v3,
 ]
 
 
@@ -155,6 +186,18 @@ class DeleteTopicsResponse_v1(Response):
     )
 
 
+class DeleteTopicsResponse_v2(Response):
+    API_KEY = 20
+    API_VERSION = 2
+    SCHEMA = DeleteTopicsResponse_v1.SCHEMA
+
+
+class DeleteTopicsResponse_v3(Response):
+    API_KEY = 20
+    API_VERSION = 3
+    SCHEMA = DeleteTopicsResponse_v1.SCHEMA
+
+
 class DeleteTopicsRequest_v0(Request):
     API_KEY = 20
     API_VERSION = 0
@@ -172,8 +215,28 @@ class DeleteTopicsRequest_v1(Request):
     SCHEMA = DeleteTopicsRequest_v0.SCHEMA
 
 
-DeleteTopicsRequest = [DeleteTopicsRequest_v0, DeleteTopicsRequest_v1]
-DeleteTopicsResponse = [DeleteTopicsResponse_v0, DeleteTopicsResponse_v1]
+class DeleteTopicsRequest_v2(Request):
+    API_KEY = 20
+    API_VERSION = 2
+    RESPONSE_TYPE = DeleteTopicsResponse_v2
+    SCHEMA = DeleteTopicsRequest_v0.SCHEMA
+
+
+class DeleteTopicsRequest_v3(Request):
+    API_KEY = 20
+    API_VERSION = 3
+    RESPONSE_TYPE = DeleteTopicsResponse_v3
+    SCHEMA = DeleteTopicsRequest_v0.SCHEMA
+
+
+DeleteTopicsRequest = [
+    DeleteTopicsRequest_v0, DeleteTopicsRequest_v1,
+    DeleteTopicsRequest_v2, DeleteTopicsRequest_v3,
+]
+DeleteTopicsResponse = [
+    DeleteTopicsResponse_v0, DeleteTopicsResponse_v1,
+    DeleteTopicsResponse_v2, DeleteTopicsResponse_v3,
+]
 
 
 class ListGroupsResponse_v0(Response):
@@ -198,6 +261,11 @@ class ListGroupsResponse_v1(Response):
             ('protocol_type', String('utf-8'))))
     )
 
+class ListGroupsResponse_v2(Response):
+    API_KEY = 16
+    API_VERSION = 2
+    SCHEMA = ListGroupsResponse_v1.SCHEMA
+
 
 class ListGroupsRequest_v0(Request):
     API_KEY = 16
@@ -212,9 +280,21 @@ class ListGroupsRequest_v1(Request):
     RESPONSE_TYPE = ListGroupsResponse_v1
     SCHEMA = ListGroupsRequest_v0.SCHEMA
 
+class ListGroupsRequest_v2(Request):
+    API_KEY = 16
+    API_VERSION = 1
+    RESPONSE_TYPE = ListGroupsResponse_v2
+    SCHEMA = ListGroupsRequest_v0.SCHEMA
 
-ListGroupsRequest = [ListGroupsRequest_v0, ListGroupsRequest_v1]
-ListGroupsResponse = [ListGroupsResponse_v0, ListGroupsResponse_v1]
+
+ListGroupsRequest = [
+    ListGroupsRequest_v0, ListGroupsRequest_v1,
+    ListGroupsRequest_v2,
+]
+ListGroupsResponse = [
+    ListGroupsResponse_v0, ListGroupsResponse_v1,
+    ListGroupsResponse_v2,
+]
 
 
 class DescribeGroupsResponse_v0(Response):
@@ -256,6 +336,33 @@ class DescribeGroupsResponse_v1(Response):
     )
 
 
+class DescribeGroupsResponse_v2(Response):
+    API_KEY = 15
+    API_VERSION = 2
+    SCHEMA = DescribeGroupsResponse_v1.SCHEMA
+
+
+class DescribeGroupsResponse_v3(Response):
+    API_KEY = 15
+    API_VERSION = 3
+    SCHEMA = Schema(
+        ('throttle_time_ms', Int32),
+        ('groups', Array(
+            ('error_code', Int16),
+            ('group', String('utf-8')),
+            ('state', String('utf-8')),
+            ('protocol_type', String('utf-8')),
+            ('protocol', String('utf-8')),
+            ('members', Array(
+                ('member_id', String('utf-8')),
+                ('client_id', String('utf-8')),
+                ('client_host', String('utf-8')),
+                ('member_metadata', Bytes),
+                ('member_assignment', Bytes)))),
+            ('authorized_operations', Int32))
+    )
+
+
 class DescribeGroupsRequest_v0(Request):
     API_KEY = 15
     API_VERSION = 0
@@ -272,8 +379,31 @@ class DescribeGroupsRequest_v1(Request):
     SCHEMA = DescribeGroupsRequest_v0.SCHEMA
 
 
-DescribeGroupsRequest = [DescribeGroupsRequest_v0, DescribeGroupsRequest_v1]
-DescribeGroupsResponse = [DescribeGroupsResponse_v0, DescribeGroupsResponse_v1]
+class DescribeGroupsRequest_v2(Request):
+    API_KEY = 15
+    API_VERSION = 2
+    RESPONSE_TYPE = DescribeGroupsResponse_v2
+    SCHEMA = DescribeGroupsRequest_v0.SCHEMA
+
+
+class DescribeGroupsRequest_v3(Request):
+    API_KEY = 15
+    API_VERSION = 3
+    RESPONSE_TYPE = DescribeGroupsResponse_v2
+    SCHEMA = Schema(
+        ('groups', Array(String('utf-8'))),
+        ('include_authorized_operations', Boolean)
+    )
+
+
+DescribeGroupsRequest = [
+    DescribeGroupsRequest_v0, DescribeGroupsRequest_v1,
+    DescribeGroupsRequest_v2, DescribeGroupsRequest_v3,
+]
+DescribeGroupsResponse = [
+    DescribeGroupsResponse_v0, DescribeGroupsResponse_v1,
+    DescribeGroupsResponse_v2, DescribeGroupsResponse_v3,
+]
 
 
 class SaslHandShakeResponse_v0(Response):
@@ -507,6 +637,13 @@ class AlterConfigsResponse_v0(Response):
             ('resource_name', String('utf-8'))))
     )
 
+
+class AlterConfigsResponse_v1(Response):
+    API_KEY = 33
+    API_VERSION = 1
+    SCHEMA = AlterConfigsResponse_v0.SCHEMA
+
+
 class AlterConfigsRequest_v0(Request):
     API_KEY = 33
     API_VERSION = 0
@@ -521,8 +658,14 @@ class AlterConfigsRequest_v0(Request):
         ('validate_only', Boolean)
     )
 
-AlterConfigsRequest = [AlterConfigsRequest_v0]
-AlterConfigsResponse = [AlterConfigsResponse_v0]
+class AlterConfigsRequest_v1(Request):
+    API_KEY = 33
+    API_VERSION = 1
+    RESPONSE_TYPE = AlterConfigsResponse_v1
+    SCHEMA = AlterConfigsRequest_v0.SCHEMA
+
+AlterConfigsRequest = [AlterConfigsRequest_v0, AlterConfigsRequest_v1]
+AlterConfigsResponse = [AlterConfigsResponse_v0, AlterConfigsRequest_v1]
 
 
 class DescribeConfigsResponse_v0(Response):
@@ -565,6 +708,28 @@ class DescribeConfigsResponse_v1(Response):
                     ('config_source', Int8)))))))
     )
 
+class DescribeConfigsResponse_v2(Response):
+    API_KEY = 32
+    API_VERSION = 2
+    SCHEMA = Schema(
+        ('throttle_time_ms', Int32),
+        ('resources', Array(
+            ('error_code', Int16),
+            ('error_message', String('utf-8')),
+            ('resource_type', Int8),
+            ('resource_name', String('utf-8')),
+            ('config_entries', Array(
+                ('config_names', String('utf-8')),
+                ('config_value', String('utf-8')),
+                ('read_only', Boolean),
+                ('config_source', Int8),
+                ('is_sensitive', Boolean),
+                ('config_synonyms', Array(
+                    ('config_name', String('utf-8')),
+                    ('config_value', String('utf-8')),
+                    ('config_source', Int8)))))))
+    )
+
 class DescribeConfigsRequest_v0(Request):
     API_KEY = 32
     API_VERSION = 0
@@ -588,10 +753,25 @@ class DescribeConfigsRequest_v1(Request):
         ('include_synonyms', Boolean)
     )
 
-DescribeConfigsRequest = [DescribeConfigsRequest_v0, DescribeConfigsRequest_v1]
-DescribeConfigsResponse = [DescribeConfigsResponse_v0, DescribeConfigsResponse_v1]
 
-class SaslAuthenticateResponse_v0(Request):
+class DescribeConfigsRequest_v2(Request):
+    API_KEY = 32
+    API_VERSION = 2
+    RESPONSE_TYPE = DescribeConfigsResponse_v2
+    SCHEMA = DescribeConfigsRequest_v1.SCHEMA
+
+
+DescribeConfigsRequest = [
+    DescribeConfigsRequest_v0, DescribeConfigsRequest_v1,
+    DescribeConfigsRequest_v2,
+]
+DescribeConfigsResponse = [
+    DescribeConfigsResponse_v0, DescribeConfigsResponse_v1,
+    DescribeConfigsResponse_v2,
+]
+
+
+class SaslAuthenticateResponse_v0(Response):
     API_KEY = 36
     API_VERSION = 0
     SCHEMA = Schema(
@@ -601,6 +781,17 @@ class SaslAuthenticateResponse_v0(Request):
     )
 
 
+class SaslAuthenticateResponse_v1(Response):
+    API_KEY = 36
+    API_VERSION = 1
+    SCHEMA = Schema(
+        ('error_code', Int16),
+        ('error_message', String('utf-8')),
+        ('sasl_auth_bytes', Bytes),
+        ('session_lifetime_ms', Int64)
+    )
+
+
 class SaslAuthenticateRequest_v0(Request):
     API_KEY = 36
     API_VERSION = 0
@@ -610,8 +801,19 @@ class SaslAuthenticateRequest_v0(Request):
     )
 
 
-SaslAuthenticateRequest = [SaslAuthenticateRequest_v0]
-SaslAuthenticateResponse = [SaslAuthenticateResponse_v0]
+class SaslAuthenticateRequest_v1(Request):
+    API_KEY = 36
+    API_VERSION = 1
+    RESPONSE_TYPE = SaslAuthenticateResponse_v1
+    SCHEMA = SaslAuthenticateRequest_v0.SCHEMA
+
+
+SaslAuthenticateRequest = [
+    SaslAuthenticateRequest_v0, SaslAuthenticateRequest_v1,
+]
+SaslAuthenticateResponse = [
+    SaslAuthenticateResponse_v0, SaslAuthenticateResponse_v1,
+]
 
 
 class CreatePartitionsResponse_v0(Response):
@@ -626,6 +828,12 @@ class CreatePartitionsResponse_v0(Response):
     )
 
 
+class CreatePartitionsResponse_v1(Response):
+    API_KEY = 37
+    API_VERSION = 1
+    SCHEMA = CreatePartitionsResponse_v0.SCHEMA
+
+
 class CreatePartitionsRequest_v0(Request):
     API_KEY = 37
     API_VERSION = 0
@@ -641,5 +849,16 @@ class CreatePartitionsRequest_v0(Request):
     )
 
 
-CreatePartitionsRequest = [CreatePartitionsRequest_v0]
-CreatePartitionsResponse = [CreatePartitionsResponse_v0]
+class CreatePartitionsRequest_v1(Request):
+    API_KEY = 37
+    API_VERSION = 1
+    SCHEMA = CreatePartitionsRequest_v0.SCHEMA
+    RESPONSE_TYPE = CreatePartitionsResponse_v1
+
+
+CreatePartitionsRequest = [
+    CreatePartitionsRequest_v0, CreatePartitionsRequest_v1,
+]
+CreatePartitionsResponse = [
+    CreatePartitionsResponse_v0, CreatePartitionsResponse_v1,
+]

NodeNotReadyError with manual commits
Simple Kafka consumer where I manually commit records (`enable_auto_commit=False`):
```
for record in consumer:
    ...
    consumer.commit()
```
I often encounter `Error sending OffsetCommitRequest_v2 to node coordinator-1 [NodeNotReadyError: coordinator-1]`. It seemingly does not have any functionality consequences but it does pollute the logs. Any idea why this may be happening and/or could this be a raised exception so that I may handle it myself?

Using latest version. Related issues: https://github.com/dpkp/kafka-python/issues/1354, https://github.com/dpkp/kafka-python/issues/1572

Full debug log of the event: 
```
2019-11-04 12:07:46,605 INFO 8/MainThread: Consuming record 1571 from topic TOPIC
2019-11-04 12:07:46,607 DEBUG 8/MainThread: Sending offset-commit request with {TopicPartition(topic='TOPIC', partition=0): OffsetAndMetadata(offset=1572, metadata='')} for group SERVICE to coordinator-1
2019-11-04 12:07:46,607 ERROR 8/MainThread: Error sending OffsetCommitRequest_v2 to node coordinator-1 [NodeNotReadyError: coordinator-1]
2019-11-04 12:07:46,608 DEBUG 8/MainThread: Initiating connection to node coordinator-1 at kafka1:9092
2019-11-04 12:07:46,614 DEBUG 8/MainThread: <BrokerConnection node_id=coordinator-1 host=kafka1:9092 <disconnected> [unspecified None]>: creating new socket
2019-11-04 12:07:46,615 DEBUG 8/MainThread: <BrokerConnection node_id=coordinator-1 host=kafka1:9092 <disconnected> [IPv4 ('10.0.9.173', 9092)]>: setting socket option (6, 1, 1)
2019-11-04 12:07:46,615 INFO 8/MainThread: <BrokerConnection node_id=coordinator-1 host=kafka1:9092 <connecting> [IPv4 ('10.0.9.173', 9092)]>: connecting to kafka1:9092 [('10.0.9.173', 9092) IPv4]
2019-11-04 12:07:46,716 DEBUG 8/MainThread: Sending offset-commit request with {TopicPartition(topic='TOPIC', partition=0): OffsetAndMetadata(offset=1572, metadata='')} for group SERVICE  to coordinator-1
2019-11-04 12:07:46,716 ERROR 8/MainThread: Error sending OffsetCommitRequest_v2 to node coordinator-1 [NodeNotReadyError: coordinator-1]
2019-11-04 12:07:46,716 DEBUG 8/MainThread: <BrokerConnection node_id=coordinator-1 host=kafka1:9092 <connecting> [IPv4 ('10.0.9.173', 9092)]>: established TCP connection
2019-11-04 12:07:46,716 INFO 8/MainThread: <BrokerConnection node_id=coordinator-1 host=kafka1:9092 <connecting> [IPv4 ('10.0.9.173', 9092)]>: Connection complete.
2019-11-04 12:07:46,716 DEBUG 8/MainThread: Node coordinator-1 connected
```
diff --git a/test/test_acl_comparisons.py b/test/test_acl_comparisons.py
new file mode 100644
index 0000000..291bf0e
--- /dev/null
+++ b/test/test_acl_comparisons.py
@@ -0,0 +1,92 @@
+from kafka.admin.acl_resource import ACL
+from kafka.admin.acl_resource import ACLOperation
+from kafka.admin.acl_resource import ACLPermissionType
+from kafka.admin.acl_resource import ResourcePattern
+from kafka.admin.acl_resource import ResourceType
+from kafka.admin.acl_resource import ACLResourcePatternType
+
+
+def test_different_acls_are_different():
+    one = ACL(
+        principal='User:A',
+        host='*',
+        operation=ACLOperation.ALL,
+        permission_type=ACLPermissionType.ALLOW,
+        resource_pattern=ResourcePattern(
+            resource_type=ResourceType.TOPIC,
+            resource_name='some-topic',
+            pattern_type=ACLResourcePatternType.LITERAL
+        )
+    )
+
+    two = ACL(
+        principal='User:B',  # Different principal
+        host='*',
+        operation=ACLOperation.ALL,
+        permission_type=ACLPermissionType.ALLOW,
+        resource_pattern=ResourcePattern(
+            resource_type=ResourceType.TOPIC,
+            resource_name='some-topic',
+            pattern_type=ACLResourcePatternType.LITERAL
+        )
+    )
+
+    assert one != two
+    assert hash(one) != hash(two)
+
+def test_different_acls_are_different_with_glob_topics():
+    one = ACL(
+        principal='User:A',
+        host='*',
+        operation=ACLOperation.ALL,
+        permission_type=ACLPermissionType.ALLOW,
+        resource_pattern=ResourcePattern(
+            resource_type=ResourceType.TOPIC,
+            resource_name='*',
+            pattern_type=ACLResourcePatternType.LITERAL
+        )
+    )
+
+    two = ACL(
+        principal='User:B',  # Different principal
+        host='*',
+        operation=ACLOperation.ALL,
+        permission_type=ACLPermissionType.ALLOW,
+        resource_pattern=ResourcePattern(
+            resource_type=ResourceType.TOPIC,
+            resource_name='*',
+            pattern_type=ACLResourcePatternType.LITERAL
+        )
+    )
+
+    assert one != two
+    assert hash(one) != hash(two)
+
+def test_same_acls_are_same():
+    one = ACL(
+        principal='User:A',
+        host='*',
+        operation=ACLOperation.ALL,
+        permission_type=ACLPermissionType.ALLOW,
+        resource_pattern=ResourcePattern(
+            resource_type=ResourceType.TOPIC,
+            resource_name='some-topic',
+            pattern_type=ACLResourcePatternType.LITERAL
+        )
+    )
+
+    two = ACL(
+        principal='User:A',
+        host='*',
+        operation=ACLOperation.ALL,
+        permission_type=ACLPermissionType.ALLOW,
+        resource_pattern=ResourcePattern(
+            resource_type=ResourceType.TOPIC,
+            resource_name='some-topic',
+            pattern_type=ACLResourcePatternType.LITERAL
+        )
+    )
+
+    assert one == two
+    assert hash(one) == hash(two)
+    assert len(set((one, two))) == 1
diff --git a/test/test_api_object_implementation.py b/test/test_api_object_implementation.py
new file mode 100644
index 0000000..da80f14
--- /dev/null
+++ b/test/test_api_object_implementation.py
@@ -0,0 +1,18 @@
+import abc
+import pytest
+
+from kafka.protocol.api import Request
+from kafka.protocol.api import Response
+
+
+attr_names = [n for n in dir(Request) if isinstance(getattr(Request, n), abc.abstractproperty)]
+@pytest.mark.parametrize('klass', Request.__subclasses__())
+@pytest.mark.parametrize('attr_name', attr_names)
+def test_request_type_conformance(klass, attr_name):
+    assert hasattr(klass, attr_name)
+
+attr_names = [n for n in dir(Response) if isinstance(getattr(Response, n), abc.abstractproperty)]
+@pytest.mark.parametrize('klass', Response.__subclasses__())
+@pytest.mark.parametrize('attr_name', attr_names)
+def test_response_type_conformance(klass, attr_name):
+    assert hasattr(klass, attr_name)

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest pytest-cov pytest-pylint pytest-mock mock python-snappy lz4 xxhash crc32c pytest
apt-get update apt-get install -y gcc libsnappy-dev
3.7
requirements/base.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
astroid==2.15.8
certifi @ file:///croot/certifi_1671487769961/work/certifi
coverage==7.2.7
cramjam==2.8.3
crc32c==2.7.1
dill==0.3.7
exceptiongroup==1.2.2
importlib-metadata==6.7.0
iniconfig==2.0.0
isort==5.11.5
-e git+https://github.com/dpkp/kafka-python.git@e3362aca8c12a07ebe88575b073c91475585f21d#egg=kafka_python
lazy-object-proxy==1.9.0
lz4==4.3.2
mccabe==0.7.0
mock==5.2.0
packaging==24.0
platformdirs==4.0.0
pluggy==1.2.0
pylint==2.17.7
pytest==7.4.4
pytest-cov==4.1.0
pytest-mock==3.11.1
pytest-pylint==0.21.0
python-snappy==0.7.3
tomli==2.0.1
tomlkit==0.12.5
typed-ast==1.5.5
typing_extensions==4.7.1
wrapt==1.16.0
xxhash==3.5.0
zipp==3.15.0

name: kafka-python
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2022.12.7=py37h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=22.3.1=py37h06a4308_0
  - python=3.7.16=h7a1cb2a_0
  - readline=8.2=h5eee18b_0
  - setuptools=65.6.3=py37h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.38.4=py37h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - astroid==2.15.8
      - coverage==7.2.7
      - cramjam==2.8.3
      - crc32c==2.7.1
      - dill==0.3.7
      - exceptiongroup==1.2.2
      - importlib-metadata==6.7.0
      - iniconfig==2.0.0
      - isort==5.11.5
      - lazy-object-proxy==1.9.0
      - lz4==4.3.2
      - mccabe==0.7.0
      - mock==5.2.0
      - packaging==24.0
      - platformdirs==4.0.0
      - pluggy==1.2.0
      - pylint==2.17.7
      - pytest==7.4.4
      - pytest-cov==4.1.0
      - pytest-mock==3.11.1
      - pytest-pylint==0.21.0
      - python-snappy==0.7.3
      - tomli==2.0.1
      - tomlkit==0.12.5
      - typed-ast==1.5.5
      - typing-extensions==4.7.1
      - wrapt==1.16.0
      - xxhash==3.5.0
      - zipp==3.15.0
prefix: /opt/conda/envs/kafka-python

test/test_acl_comparisons.py::test_same_acls_are_same test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-ApiVersionRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-CreateTopicsRequest_v3] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-DeleteTopicsRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-DeleteTopicsRequest_v3] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-ListGroupsRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-DescribeGroupsRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-DescribeGroupsRequest_v3] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-AlterConfigsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-DescribeConfigsRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-SaslAuthenticateRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-CreatePartitionsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-ApiVersionRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-CreateTopicsRequest_v3] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-DeleteTopicsRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-DeleteTopicsRequest_v3] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-ListGroupsRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-DescribeGroupsRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-DescribeGroupsRequest_v3] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-AlterConfigsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-DescribeConfigsRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-SaslAuthenticateRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-CreatePartitionsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-ApiVersionRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-CreateTopicsRequest_v3] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-DeleteTopicsRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-DeleteTopicsRequest_v3] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-ListGroupsRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-DescribeGroupsRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-DescribeGroupsRequest_v3] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-AlterConfigsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-DescribeConfigsRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-SaslAuthenticateRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-CreatePartitionsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-ApiVersionRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-CreateTopicsRequest_v3] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-DeleteTopicsRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-DeleteTopicsRequest_v3] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-ListGroupsRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-DescribeGroupsRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-DescribeGroupsRequest_v3] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-AlterConfigsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-DescribeConfigsRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-SaslAuthenticateRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-CreatePartitionsRequest_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-ApiVersionResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-CreateTopicsResponse_v3] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-DeleteTopicsResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-DeleteTopicsResponse_v3] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-ListGroupsResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-DescribeGroupsResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-DescribeGroupsResponse_v3] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-AlterConfigsResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-DescribeConfigsResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-SaslAuthenticateResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-SaslAuthenticateResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-CreatePartitionsResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-ApiVersionResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-CreateTopicsResponse_v3] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-DeleteTopicsResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-DeleteTopicsResponse_v3] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-ListGroupsResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-DescribeGroupsResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-DescribeGroupsResponse_v3] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-AlterConfigsResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-DescribeConfigsResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-SaslAuthenticateResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-SaslAuthenticateResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-CreatePartitionsResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-ApiVersionResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-CreateTopicsResponse_v3] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-DeleteTopicsResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-DeleteTopicsResponse_v3] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-ListGroupsResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-DescribeGroupsResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-DescribeGroupsResponse_v3] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-AlterConfigsResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-DescribeConfigsResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-SaslAuthenticateResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-SaslAuthenticateResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-CreatePartitionsResponse_v1]
test/test_acl_comparisons.py::test_different_acls_are_different test/test_acl_comparisons.py::test_different_acls_are_different_with_glob_topics test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-ApiVersionRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-ApiVersionRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-CreateTopicsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-CreateTopicsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-CreateTopicsRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-DeleteTopicsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-DeleteTopicsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-ListGroupsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-ListGroupsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-DescribeGroupsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-DescribeGroupsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-SaslHandShakeRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-SaslHandShakeRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-DescribeAclsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-DescribeAclsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-CreateAclsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-CreateAclsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-DeleteAclsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-DeleteAclsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-AlterConfigsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-DescribeConfigsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-DescribeConfigsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-SaslAuthenticateRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-CreatePartitionsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-OffsetCommitRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-OffsetCommitRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-OffsetCommitRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-OffsetCommitRequest_v3] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-OffsetFetchRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-OffsetFetchRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-OffsetFetchRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-OffsetFetchRequest_v3] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-GroupCoordinatorRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-GroupCoordinatorRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-MetadataRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-MetadataRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-MetadataRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-MetadataRequest_v3] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-MetadataRequest_v4] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-MetadataRequest_v5] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-FetchRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-FetchRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-FetchRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-FetchRequest_v3] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-FetchRequest_v4] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-FetchRequest_v5] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-FetchRequest_v6] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-OffsetRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-OffsetRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-OffsetRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-JoinGroupRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-JoinGroupRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-JoinGroupRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-SyncGroupRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-SyncGroupRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-HeartbeatRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-HeartbeatRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-LeaveGroupRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-LeaveGroupRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_KEY-ProduceRequest] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-ApiVersionRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-ApiVersionRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-CreateTopicsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-CreateTopicsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-CreateTopicsRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-DeleteTopicsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-DeleteTopicsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-ListGroupsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-ListGroupsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-DescribeGroupsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-DescribeGroupsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-SaslHandShakeRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-SaslHandShakeRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-DescribeAclsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-DescribeAclsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-CreateAclsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-CreateAclsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-DeleteAclsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-DeleteAclsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-AlterConfigsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-DescribeConfigsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-DescribeConfigsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-SaslAuthenticateRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-CreatePartitionsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-OffsetCommitRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-OffsetCommitRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-OffsetCommitRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-OffsetCommitRequest_v3] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-OffsetFetchRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-OffsetFetchRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-OffsetFetchRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-OffsetFetchRequest_v3] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-GroupCoordinatorRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-GroupCoordinatorRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-MetadataRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-MetadataRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-MetadataRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-MetadataRequest_v3] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-MetadataRequest_v4] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-MetadataRequest_v5] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-FetchRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-FetchRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-FetchRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-FetchRequest_v3] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-FetchRequest_v4] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-FetchRequest_v5] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-FetchRequest_v6] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-OffsetRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-OffsetRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-OffsetRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-JoinGroupRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-JoinGroupRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-JoinGroupRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-SyncGroupRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-SyncGroupRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-HeartbeatRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-HeartbeatRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-LeaveGroupRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-LeaveGroupRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[API_VERSION-ProduceRequest] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-ApiVersionRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-ApiVersionRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-CreateTopicsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-CreateTopicsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-CreateTopicsRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-DeleteTopicsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-DeleteTopicsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-ListGroupsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-ListGroupsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-DescribeGroupsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-DescribeGroupsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-SaslHandShakeRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-SaslHandShakeRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-DescribeAclsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-DescribeAclsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-CreateAclsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-CreateAclsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-DeleteAclsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-DeleteAclsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-AlterConfigsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-DescribeConfigsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-DescribeConfigsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-SaslAuthenticateRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-CreatePartitionsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-OffsetCommitRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-OffsetCommitRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-OffsetCommitRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-OffsetCommitRequest_v3] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-OffsetFetchRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-OffsetFetchRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-OffsetFetchRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-OffsetFetchRequest_v3] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-GroupCoordinatorRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-GroupCoordinatorRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-MetadataRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-MetadataRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-MetadataRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-MetadataRequest_v3] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-MetadataRequest_v4] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-MetadataRequest_v5] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-FetchRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-FetchRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-FetchRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-FetchRequest_v3] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-FetchRequest_v4] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-FetchRequest_v5] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-FetchRequest_v6] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-OffsetRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-OffsetRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-OffsetRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-JoinGroupRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-JoinGroupRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-JoinGroupRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-SyncGroupRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-SyncGroupRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-HeartbeatRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-HeartbeatRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-LeaveGroupRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-LeaveGroupRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[RESPONSE_TYPE-ProduceRequest] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-ApiVersionRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-ApiVersionRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-CreateTopicsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-CreateTopicsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-CreateTopicsRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-DeleteTopicsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-DeleteTopicsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-ListGroupsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-ListGroupsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-DescribeGroupsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-DescribeGroupsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-SaslHandShakeRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-SaslHandShakeRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-DescribeAclsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-DescribeAclsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-CreateAclsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-CreateAclsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-DeleteAclsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-DeleteAclsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-AlterConfigsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-DescribeConfigsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-DescribeConfigsRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-SaslAuthenticateRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-CreatePartitionsRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-OffsetCommitRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-OffsetCommitRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-OffsetCommitRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-OffsetCommitRequest_v3] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-OffsetFetchRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-OffsetFetchRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-OffsetFetchRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-OffsetFetchRequest_v3] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-GroupCoordinatorRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-GroupCoordinatorRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-MetadataRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-MetadataRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-MetadataRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-MetadataRequest_v3] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-MetadataRequest_v4] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-MetadataRequest_v5] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-FetchRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-FetchRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-FetchRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-FetchRequest_v3] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-FetchRequest_v4] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-FetchRequest_v5] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-FetchRequest_v6] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-OffsetRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-OffsetRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-OffsetRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-JoinGroupRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-JoinGroupRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-JoinGroupRequest_v2] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-SyncGroupRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-SyncGroupRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-HeartbeatRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-HeartbeatRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-LeaveGroupRequest_v0] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-LeaveGroupRequest_v1] test/test_api_object_implementation.py::test_request_type_conformance[SCHEMA-ProduceRequest] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-ApiVersionResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-ApiVersionResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-CreateTopicsResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-CreateTopicsResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-CreateTopicsResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-DeleteTopicsResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-DeleteTopicsResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-ListGroupsResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-ListGroupsResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-DescribeGroupsResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-DescribeGroupsResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-SaslHandShakeResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-SaslHandShakeResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-DescribeAclsResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-DescribeAclsResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-CreateAclsResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-CreateAclsResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-DeleteAclsResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-DeleteAclsResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-AlterConfigsResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-DescribeConfigsResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-DescribeConfigsResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-CreatePartitionsResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-OffsetCommitResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-OffsetCommitResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-OffsetCommitResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-OffsetCommitResponse_v3] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-OffsetFetchResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-OffsetFetchResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-OffsetFetchResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-OffsetFetchResponse_v3] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-GroupCoordinatorResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-GroupCoordinatorResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-MetadataResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-MetadataResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-MetadataResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-MetadataResponse_v3] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-MetadataResponse_v4] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-MetadataResponse_v5] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-FetchResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-FetchResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-FetchResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-FetchResponse_v3] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-FetchResponse_v4] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-FetchResponse_v5] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-FetchResponse_v6] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-OffsetResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-OffsetResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-OffsetResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-JoinGroupResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-JoinGroupResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-JoinGroupResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-SyncGroupResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-SyncGroupResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-HeartbeatResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-HeartbeatResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-LeaveGroupResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-LeaveGroupResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-ProduceResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-ProduceResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-ProduceResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-ProduceResponse_v3] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-ProduceResponse_v4] test/test_api_object_implementation.py::test_response_type_conformance[API_KEY-ProduceResponse_v5] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-ApiVersionResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-ApiVersionResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-CreateTopicsResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-CreateTopicsResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-CreateTopicsResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-DeleteTopicsResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-DeleteTopicsResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-ListGroupsResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-ListGroupsResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-DescribeGroupsResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-DescribeGroupsResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-SaslHandShakeResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-SaslHandShakeResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-DescribeAclsResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-DescribeAclsResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-CreateAclsResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-CreateAclsResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-DeleteAclsResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-DeleteAclsResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-AlterConfigsResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-DescribeConfigsResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-DescribeConfigsResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-CreatePartitionsResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-OffsetCommitResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-OffsetCommitResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-OffsetCommitResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-OffsetCommitResponse_v3] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-OffsetFetchResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-OffsetFetchResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-OffsetFetchResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-OffsetFetchResponse_v3] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-GroupCoordinatorResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-GroupCoordinatorResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-MetadataResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-MetadataResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-MetadataResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-MetadataResponse_v3] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-MetadataResponse_v4] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-MetadataResponse_v5] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-FetchResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-FetchResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-FetchResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-FetchResponse_v3] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-FetchResponse_v4] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-FetchResponse_v5] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-FetchResponse_v6] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-OffsetResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-OffsetResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-OffsetResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-JoinGroupResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-JoinGroupResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-JoinGroupResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-SyncGroupResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-SyncGroupResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-HeartbeatResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-HeartbeatResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-LeaveGroupResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-LeaveGroupResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-ProduceResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-ProduceResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-ProduceResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-ProduceResponse_v3] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-ProduceResponse_v4] test/test_api_object_implementation.py::test_response_type_conformance[API_VERSION-ProduceResponse_v5] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-ApiVersionResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-ApiVersionResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-CreateTopicsResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-CreateTopicsResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-CreateTopicsResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-DeleteTopicsResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-DeleteTopicsResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-ListGroupsResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-ListGroupsResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-DescribeGroupsResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-DescribeGroupsResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-SaslHandShakeResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-SaslHandShakeResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-DescribeAclsResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-DescribeAclsResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-CreateAclsResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-CreateAclsResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-DeleteAclsResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-DeleteAclsResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-AlterConfigsResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-DescribeConfigsResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-DescribeConfigsResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-CreatePartitionsResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-OffsetCommitResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-OffsetCommitResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-OffsetCommitResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-OffsetCommitResponse_v3] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-OffsetFetchResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-OffsetFetchResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-OffsetFetchResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-OffsetFetchResponse_v3] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-GroupCoordinatorResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-GroupCoordinatorResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-MetadataResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-MetadataResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-MetadataResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-MetadataResponse_v3] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-MetadataResponse_v4] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-MetadataResponse_v5] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-FetchResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-FetchResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-FetchResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-FetchResponse_v3] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-FetchResponse_v4] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-FetchResponse_v5] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-FetchResponse_v6] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-OffsetResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-OffsetResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-OffsetResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-JoinGroupResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-JoinGroupResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-JoinGroupResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-SyncGroupResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-SyncGroupResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-HeartbeatResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-HeartbeatResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-LeaveGroupResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-LeaveGroupResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-ProduceResponse_v0] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-ProduceResponse_v1] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-ProduceResponse_v2] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-ProduceResponse_v3] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-ProduceResponse_v4] test/test_api_object_implementation.py::test_response_type_conformance[SCHEMA-ProduceResponse_v5]
kafka/coordinator/base.py kafka/protocol/admin.py kafka/admin/client.py kafka/admin/acl_resource.py
kafka/coordinator/base.py kafka/protocol/admin.py kafka/admin/client.py kafka/admin/acl_resource.py