# Admin
Client for administrative operations like creating/deleting topics and managing consumer groups.
The admin inherits from the [`Base`](./base.md) client.
## Constructor
Creates a new admin.
It supports all the constructor options of `Base`.
## Methods
### `listTopics([options[, callback]])`
List all topics available on the cluster.
The return value is a list of available topics.
Options:
| Property | Type | Description |
| ------------------ | --------- | -------------------------------------------------------------- |
| `includeInternals` | `boolean` | Whether to include internal Kafka topics in the returned list. |
### `createTopics(options[, callback])`
Creates one or more topics.
The return value is a list of created topics, each containing `id`, `name`, `partitions`, `replicas` and `configuration` properties.
Options:
| Property | Type | Description |
| ------------- | ---------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| `topics` | `string[]` | Topics to create. |
| `partitions` | `number` | Number of partitions for each topic. |
| `replicas` | `number` | Number of replicas for each topic. |
| `assignments` | `BrokerAssignment[]` | Assignments of partitions.
Each assignment is an object with `partition` and `brokers` properties. |
| `configs` | `CreateTopicsRequestTopicConfig[]` | Topic configurations.
Each configuration is an object with `name` and `value` properties. |
### `deleteTopics(options[, callback])`
Deletes one or more topics.
The return value is `void`.
Options:
| Property | Type | Description |
| -------- | ---------- | ----------------- |
| `topics` | `string[]` | Topics to delete. |
### `createPartitions(options[, callback])`
Creates additional partitions for existing topics.
The return value is `void`.
Options:
| Property | Type | Description |
| ------------- | -------------------------------- | ------------------------------------------------------------------------------------------------------ |
| `topics` | `CreatePartitionsRequestTopic[]` | Topics to create partitions for with information about partition count and assignments for each topic. |
| `validateOnly`| `boolean` | Whether to only validate the request without applying changes. Defaults to `false`. |
### `listGroups(options[, callback])`
Lists consumer groups.
The return value is a list of groups, each containing the `id`, `state`, `groupType` and `protocolType` properties.
Options:
| Property | Type | Description |
| -------- | ---------------------- | --------------------------------------------------------------------------------------------------------------- |
| states | `ConsumerGroupState[]` | States of the groups to return.
The valid values are defined in the `ConsumerGroupStates` enumeration. |
| types | `string[]` | Types of the groups to return.
Default is `['consumer']`. |
### `describeGroups(options[, callback])`
Gets detailed information about consumer groups.
The return value is a map where keys are group names and values are the detailed group information.
Options:
| Property | Type | Description |
| -------- | ----------------------------- | ------------------------------------------------------------------------------------------- |
| groups | `string[]` | Groups to describe. |
| types | `includeAuthorizedOperations` | Whether to include authorisation information in the response.
Default is `false`. |
### `deleteGroups(options[, callback])`
Deletes one or more consumer groups.
The return value is `void`.
Options:
| Property | Type | Description |
| -------- | ---------- | ----------------- |
| groups | `string[]` | Groups to delete. |
### `removeMembersFromConsumerGroup(options[, callback])`
Removes members from a consumer group.
The return value is `void`.
Options:
| Property | Type | Description |
| -------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| groupId | `string` | The consumer group ID. |
| members | `(string \| MemberRemoval)[] \| null` | Array of member IDs to remove (as strings), or an array of `MemberRemoval` objects with `memberId` and optional `reason`, or `null` to remove all members from the group. |
### `describeClientQuotas(options[, callback])`
Gets detailed information about client quotas.
The return value is an object specifying quotas for the requested user/client combination.
Options:
| Property | Type | Description |
| ---------- | ---------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| components | `DescribeClientQuotasRequestComponent[]` | Array of components specifying the entity types and match criteria for which to describe client quotas. |
| strict | `boolean` | Whether to use strict matching for components. Defaults to `false`. |
### `alterClientQuotas(options[, callback])`
Alters client quotas for specified entities.
The return value is a list of entities for which quotas have been changed.
Options:
| Property | Type | Description |
| ------------ | --------------------------------- | ----------------------------------------------------------------------------------- |
| entries | `AlterClientQuotasRequestEntry[]` | Array of entries specifying the entities and quotas to change. |
| validateOnly | `boolean` | Whether to only validate the request without applying changes. Defaults to `false`. |
### `createAcls(options[, callback])`
Creates Access Control List (ACL) entries to define permissions for Kafka resources.
The return value is `void`.
Options:
| Property | Type | Description |
| ---------- | ------- | ------------------------------- |
| creations | `Acl[]` | Array of ACL entries to create. |
### `describeAcls(options[, callback])`
Describes existing Access Control List (ACL) entries that match the specified filter criteria.
The return value is an array of resources with their associated ACL entries.
Options:
| Property | Type | Description |
| -------- | ----------- | ----------------------------------------- |
| filter | `AclFilter` | Filter criteria for matching ACL entries. |
The filter contains the same properties as ACL entries, but `resourceName`, `principal`, and `host` can be `null` to match any value.
### `deleteAcls(options[, callback])`
Deletes Access Control List (ACL) entries that match the specified filter criteria.
The return value is an array of deleted ACL entries.
Options:
| Property | Type | Description |
| -------- | ------------- | --------------------------------------------------- |
| filters | `AclFilter[]` | Array of filter criteria for ACL entries to delete. |
### `describeLogDirs(options[, callback])`
Describes log directories for specified topics across all brokers.
The return value is an array of broker log directory descriptions, each containing information one broker's log directories.
Options:
| Property | Type | Description |
| -------- | ------------------------------- | -------------------------------------------------------------------------------- |
| topics | `DescribeLogDirsRequestTopic[]` | Array of topics specifying the topics and partitions for which to describe logs. |
### `listConsumerGroupOffsets(options[, callback])`
Lists committed offsets for consumer groups.
The return value is an array of groups with information about committed offsets per partition per topic.
Options:
| Property | Type | Description |
| ------------- | --------------------------- | --------------------------------------------------------------------------- |
| groups | `OffsetFetchRequestGroup[]` | Array of groups specifying the groups and topics for which to list offsets. |
| requireStable | `boolean` | Whether to require stable offsets. |
### `alterConsumerGroupOffsets(options[, callback])`
Alters committed offsets for a consumer group. Note, that the consumer group must be empty to succeed.
The return value is `void`.
Options:
| Property | Type | Description |
| -------- | ---------------------------------- | ------------------------------------------------------------ |
| groupId | `string` | The consumer group ID for which to alter offsets. |
| topics | `AlterConsumerGroupOffsetsTopic[]` | Array of topics with partitions and their new offset values. |
### `deleteConsumerGroupOffsets(options[, callback])`
Deletes committed offsets for specific topics of a consumer group.
The return value is an array of topic partitions indicating which offsets were deleted.
Options:
| Property | Type | Description |
| -------- | ------------------------------------------------ | ----------------------------------------------------------- |
| groupId | `string` | The consumer group ID from which to delete offsets. |
| topics | `{ name: string, partitionIndexes: number[] }[]` | Array of topics and partitions for which to delete offsets. |
### `describeConfigs(options[, callback])`
Describes configuration parameters for specified resources.
The return value is an array of resource configurations, each containing the resource type, name, and configuration entries.
Options:
| Property | Type | Description |
| -------------------- | ---------------------------------- | ------------------------------------------------------------------------------------------ |
| resources | `DescribeConfigsRequestResource[]` | Array of resources specifying the resource type, name, and configuration keys to describe. |
| includeSynonyms | `boolean` | Whether to include configuration synonyms in the response. Defaults to `false`. |
| includeDocumentation | `boolean` | Whether to include configuration documentation in the response. Defaults to `false`. |
### `alterConfigs(options[, callback])`
Alters configuration parameters for specified resources.
The return value is `void`.
Options:
| Property | Type | Description |
| ------------ | ------------------------------- | ------------------------------------------------------------------------------------ |
| resources | `AlterConfigsRequestResource[]` | Array of resources specifying the resource type, name, and configurations to change. |
| validateOnly | `boolean` | Whether to only validate the request without applying changes. Defaults to `false`. |
### `incrementalAlterConfigs(options[, callback])`
Incrementally alters configuration parameters for specified resources using specific operations (Set, delete, append, subract).
The return value is `void`.
Options:
| Property | Type | Description |
| ------------ | ------------------------------------------ | -------------------------------------------------------------------------------------- |
| resources | `IncrementalAlterConfigsRequestResource[]` | Array of resources specifying the resource type, name, and incremental configurations. |
| validateOnly | `boolean` | Whether to only validate the request without applying changes. Defaults to `false`. |
### `listOffsets(options[, callback])`
Lists offsets for specified topic partitions.
The return value is an array of topics, each containing partition offset information including the offset, timestamp, partition index, and leader epoch.
Options:
| Property | Type | Description |
| -------------- | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| topics | `TopicOffsetRequest[]` | Array of topics with their partitions to query offsets for. Each topic has `name` and `partitions` (array of `{ partitionIndex, timestamp }`). |
| isolationLevel | `FetchIsolationLevel` \| `null` | Isolation level for reading offsets. Valid values are `FetchIsolationLevels.READ_UNCOMMITTED` (0) or `FetchIsolationLevels.READ_COMMITTED` (1). Defaults to `READ_UNCOMMITTED`. |
### `close([callback])`
Closes the admin and all its connections.
The return value is `void`.