import { type AlterClientQuotasRequestEntry } from '../../apis/admin/alter-client-quotas-v1.ts'; import { type AlterConfigsRequestResource } from '../../apis/admin/alter-configs-v2.ts'; import { type CreatePartitionsRequestTopic } from '../../apis/admin/create-partitions-v3.ts'; import { type CreateTopicsRequestTopicConfig } from '../../apis/admin/create-topics-v7.ts'; import { type DescribeClientQuotasRequestComponent } from '../../apis/admin/describe-client-quotas-v0.ts'; import { type DescribeConfigsRequestResource, type DescribeConfigsResponseConfig } from '../../apis/admin/describe-configs-v4.ts'; import { type DescribeLogDirsRequestTopic, type DescribeLogDirsResponse, type DescribeLogDirsResponseResult } from '../../apis/admin/describe-log-dirs-v4.ts'; import { type IncrementalAlterConfigsRequestResource } from '../../apis/admin/incremental-alter-configs-v1.ts'; import { type ConfigResourceTypeValue, type ConsumerGroupStateValue, type FetchIsolationLevelValue, type FindCoordinatorKeyTypeValue } from '../../apis/enumerations.ts'; import { type Acl, type AclFilter } from '../../apis/types.ts'; import { type Nullable, type NullableString } from '../../protocol/definitions.ts'; import { type BaseOptions } from '../base/types.ts'; import { type ExtendedGroupProtocolSubscription, type GroupAssignment } from '../consumer/types.ts'; export interface BrokerAssignment { partition: number; brokers: number[]; } export interface CreatedTopic { id: string; name: string; partitions: number; replicas: number; configuration: Record; } export interface GroupMember { id: string; groupInstanceId: NullableString; clientId: string; clientHost: string; metadata?: Omit; assignments?: Map; } export interface GroupBase { id: string; state: ConsumerGroupStateValue; groupType: string; protocolType: string; } export interface Group extends Omit { protocol: string; members: Map; authorizedOperations: number; } export interface AdminOptions extends BaseOptions { } export interface CreateTopicsOptions { topics: string[]; partitions?: number; replicas?: number; assignments?: BrokerAssignment[]; configs?: CreateTopicsRequestTopicConfig[]; } export interface ListTopicsOptions { includeInternals?: boolean; } export interface DeleteTopicsOptions { topics: string[]; } export interface CreatePartitionsOptions { topics: CreatePartitionsRequestTopic[]; validateOnly?: boolean; } export interface ListGroupsOptions { states?: ConsumerGroupStateValue[]; types?: string[]; } export interface DescribeGroupsOptions { groups: string[]; includeAuthorizedOperations?: boolean; } export interface FindCoordinatorOptions { keyType: FindCoordinatorKeyTypeValue; keys: string[]; } export interface FindCoordinatorResult { key: string; nodeId: number; host: string; port: number; } export interface DeleteGroupsOptions { groups: string[]; } interface MemberRemoval { memberId: string; reason?: string; } export interface RemoveMembersFromConsumerGroupOptions { groupId: string; members?: Nullable; } export interface DescribeClientQuotasOptions { components: DescribeClientQuotasRequestComponent[]; strict?: boolean; } export interface AlterClientQuotasOptions { entries: AlterClientQuotasRequestEntry[]; validateOnly?: boolean; } export interface DescribeLogDirsOptions { topics: DescribeLogDirsRequestTopic[]; } export interface BrokerLogDirDescription { broker: number; throttleTimeMs: DescribeLogDirsResponse['throttleTimeMs']; results: Omit[]; } interface GroupWithTopicPartitions { groupId: string; topics?: Nullable<{ name: string; partitionIndexes: number[]; }[]>; } export interface ListConsumerGroupOffsetsOptions { groups: (string | GroupWithTopicPartitions)[]; requireStable?: boolean; } interface ListConsumerGroupOffsetsPartition { partitionIndex: number; committedOffset: bigint; committedLeaderEpoch: number; metadata: NullableString; } interface ListConsumerGroupOffsetsTopic { name: string; partitions: ListConsumerGroupOffsetsPartition[]; } export interface ListConsumerGroupOffsetsGroup { groupId: string; topics: ListConsumerGroupOffsetsTopic[]; } interface PartitionOffset { partition: number; offset: bigint; } interface AlterConsumerGroupOffsetsTopic { name: string; partitionOffsets: PartitionOffset[]; } export interface AlterConsumerGroupOffsetsOptions { groupId: string; topics: AlterConsumerGroupOffsetsTopic[]; } export interface DeleteConsumerGroupOffsetsOptions { groupId: string; topics: { name: string; partitionIndexes: number[]; }[]; } export interface DeleteRecordsPartitionOffset { partition: number; offset: bigint; } export interface DeleteRecordsTopic { name: string; partitions: DeleteRecordsPartitionOffset[]; } export interface DeleteRecordsOptions { topics: DeleteRecordsTopic[]; } export interface DeletedRecordsPartition { partition: number; lowWatermark: bigint; } export interface DeletedRecordsTopic { name: string; partitions: DeletedRecordsPartition[]; } export interface DescribeConfigsOptions { resources: DescribeConfigsRequestResource[]; includeSynonyms?: boolean; includeDocumentation?: boolean; } export interface ConfigDescription { resourceType: ConfigResourceTypeValue; resourceName: string; configs: DescribeConfigsResponseConfig[]; } export interface AlterConfigsOptions { resources: AlterConfigsRequestResource[]; validateOnly?: boolean; } export interface IncrementalAlterConfigsOptions { resources: IncrementalAlterConfigsRequestResource[]; validateOnly?: boolean; } export interface CreateAclsOptions { creations: Acl[]; } export interface DescribeAclsOptions { filter: AclFilter; } export interface DeleteAclsOptions { filters: AclFilter[]; } export interface PartitionTimestamp { partitionIndex: number; timestamp: bigint; } export interface TopicOffsetRequest { name: string; partitions: PartitionTimestamp[]; } export interface AdminListOffsetsOptions { topics: TopicOffsetRequest[]; isolationLevel?: Nullable; } export interface ListedOffsetsPartition { partitionIndex: number; timestamp: bigint; offset: bigint; leaderEpoch: number; } export interface ListedOffsetsTopic { name: string; partitions: ListedOffsetsPartition[]; } export {};