summaryrefslogtreecommitdiffstats
path: root/fluent-bit/lib/librdkafka-2.1.0/src/rdkafka_admin.h
diff options
context:
space:
mode:
Diffstat (limited to 'fluent-bit/lib/librdkafka-2.1.0/src/rdkafka_admin.h')
-rw-r--r--fluent-bit/lib/librdkafka-2.1.0/src/rdkafka_admin.h482
1 files changed, 482 insertions, 0 deletions
diff --git a/fluent-bit/lib/librdkafka-2.1.0/src/rdkafka_admin.h b/fluent-bit/lib/librdkafka-2.1.0/src/rdkafka_admin.h
new file mode 100644
index 000000000..62fe9e87a
--- /dev/null
+++ b/fluent-bit/lib/librdkafka-2.1.0/src/rdkafka_admin.h
@@ -0,0 +1,482 @@
+/*
+ * librdkafka - Apache Kafka C library
+ *
+ * Copyright (c) 2018 Magnus Edenhill
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RDKAFKA_ADMIN_H_
+#define _RDKAFKA_ADMIN_H_
+
+
+#include "rdstring.h"
+#include "rdkafka_error.h"
+#include "rdkafka_confval.h"
+
+
+
+/**
+ * @brief Common AdminOptions type used for all admin APIs.
+ *
+ * @remark Visit AdminOptions_use() when you change this struct
+ * to make sure it is copied properly.
+ */
+struct rd_kafka_AdminOptions_s {
+ rd_kafka_admin_op_t for_api; /**< Limit allowed options to
+ * this API (optional) */
+
+ /* Generic */
+ rd_kafka_confval_t request_timeout; /**< I32: Full request timeout,
+ * includes looking up leader
+ * broker,
+ * waiting for req/response,
+ * etc. */
+ rd_ts_t abs_timeout; /**< Absolute timeout calculated
+ * from .timeout */
+
+ /* Specific for one or more APIs */
+ rd_kafka_confval_t operation_timeout; /**< I32: Timeout on broker.
+ * Valid for:
+ * CreateParititons
+ * CreateTopics
+ * DeleteRecords
+ * DeleteTopics
+ */
+ rd_kafka_confval_t validate_only; /**< BOOL: Only validate (on broker),
+ * but don't perform action.
+ * Valid for:
+ * CreateTopics
+ * CreatePartitions
+ * AlterConfigs
+ */
+
+ rd_kafka_confval_t incremental; /**< BOOL: Incremental rather than
+ * absolute application
+ * of config.
+ * Valid for:
+ * AlterConfigs
+ */
+
+ rd_kafka_confval_t broker; /**< INT: Explicitly override
+ * broker id to send
+ * requests to.
+ * Valid for:
+ * all
+ */
+
+ rd_kafka_confval_t
+ require_stable_offsets; /**< BOOL: Whether broker should return
+ * stable offsets (transaction-committed).
+ * Valid for:
+ * ListConsumerGroupOffsets
+ */
+
+ rd_kafka_confval_t
+ match_consumer_group_states; /**< PTR: list of consumer group states
+ * to query for.
+ * Valid for: ListConsumerGroups.
+ */
+
+ rd_kafka_confval_t opaque; /**< PTR: Application opaque.
+ * Valid for all. */
+};
+
+
+/**
+ * @name CreateTopics
+ * @{
+ */
+
+/**
+ * @brief NewTopic type, used with CreateTopics.
+ */
+struct rd_kafka_NewTopic_s {
+ /* Required */
+ char *topic; /**< Topic to be created */
+ int num_partitions; /**< Number of partitions to create */
+ int replication_factor; /**< Replication factor */
+
+ /* Optional */
+ rd_list_t replicas; /**< Type (rd_list_t (int32_t)):
+ * Array of replica lists indexed by
+ * partition, size num_partitions. */
+ rd_list_t config; /**< Type (rd_kafka_ConfigEntry_t *):
+ * List of configuration entries */
+};
+
+/**@}*/
+
+
+/**
+ * @name DeleteTopics
+ * @{
+ */
+
+/**
+ * @brief DeleteTopics result
+ */
+struct rd_kafka_DeleteTopics_result_s {
+ rd_list_t topics; /**< Type (rd_kafka_topic_result_t *) */
+};
+
+struct rd_kafka_DeleteTopic_s {
+ char *topic; /**< Points to data */
+ char data[1]; /**< The topic name is allocated along with
+ * the struct here. */
+};
+
+/**@}*/
+
+
+
+/**
+ * @name CreatePartitions
+ * @{
+ */
+
+
+/**
+ * @brief CreatePartitions result
+ */
+struct rd_kafka_CreatePartitions_result_s {
+ rd_list_t topics; /**< Type (rd_kafka_topic_result_t *) */
+};
+
+struct rd_kafka_NewPartitions_s {
+ char *topic; /**< Points to data */
+ size_t total_cnt; /**< New total partition count */
+
+ /* Optional */
+ rd_list_t replicas; /**< Type (rd_list_t (int32_t)):
+ * Array of replica lists indexed by
+ * new partition relative index.
+ * Size is dynamic since we don't
+ * know how many partitions are actually
+ * being added by total_cnt */
+
+ char data[1]; /**< The topic name is allocated along with
+ * the struct here. */
+};
+
+/**@}*/
+
+
+
+/**
+ * @name ConfigEntry
+ * @{
+ */
+
+/* KIP-248 */
+typedef enum rd_kafka_AlterOperation_t {
+ RD_KAFKA_ALTER_OP_ADD = 0,
+ RD_KAFKA_ALTER_OP_SET = 1,
+ RD_KAFKA_ALTER_OP_DELETE = 2,
+} rd_kafka_AlterOperation_t;
+
+struct rd_kafka_ConfigEntry_s {
+ rd_strtup_t *kv; /**< Name/Value pair */
+
+ /* Response */
+
+ /* Attributes: this is a struct for easy copying */
+ struct {
+ rd_kafka_AlterOperation_t operation; /**< Operation */
+ rd_kafka_ConfigSource_t source; /**< Config source */
+ rd_bool_t is_readonly; /**< Value is read-only (on broker) */
+ rd_bool_t is_default; /**< Value is at its default */
+ rd_bool_t is_sensitive; /**< Value is sensitive */
+ rd_bool_t is_synonym; /**< Value is synonym */
+ } a;
+
+ rd_list_t synonyms; /**< Type (rd_kafka_configEntry *) */
+};
+
+/**
+ * @brief A cluster ConfigResource constisting of:
+ * - resource type (BROKER, TOPIC)
+ * - configuration property name
+ * - configuration property value
+ *
+ * https://cwiki.apache.org/confluence/display/KAFKA/KIP-133%3A+Describe+and+Alter+Configs+Admin+APIs
+ */
+struct rd_kafka_ConfigResource_s {
+ rd_kafka_ResourceType_t restype; /**< Resource type */
+ char *name; /**< Resource name, points to .data*/
+ rd_list_t config; /**< Type (rd_kafka_ConfigEntry_t *):
+ * List of config props */
+
+ /* Response */
+ rd_kafka_resp_err_t err; /**< Response error code */
+ char *errstr; /**< Response error string */
+
+ char data[1]; /**< The name is allocated along with
+ * the struct here. */
+};
+
+
+
+/**@}*/
+
+/**
+ * @name AlterConfigs
+ * @{
+ */
+
+
+
+struct rd_kafka_AlterConfigs_result_s {
+ rd_list_t resources; /**< Type (rd_kafka_ConfigResource_t *) */
+};
+
+struct rd_kafka_ConfigResource_result_s {
+ rd_list_t resources; /**< Type (struct rd_kafka_ConfigResource *):
+ * List of config resources, sans config
+ * but with response error values. */
+};
+
+/**@}*/
+
+
+
+/**
+ * @name DescribeConfigs
+ * @{
+ */
+
+struct rd_kafka_DescribeConfigs_result_s {
+ rd_list_t configs; /**< Type (rd_kafka_ConfigResource_t *) */
+};
+
+/**@}*/
+
+
+/**
+ * @name DeleteGroups
+ * @{
+ */
+
+
+struct rd_kafka_DeleteGroup_s {
+ char *group; /**< Points to data */
+ char data[1]; /**< The group name is allocated along with
+ * the struct here. */
+};
+
+/**@}*/
+
+
+/**
+ * @name DeleteRecords
+ * @{
+ */
+
+struct rd_kafka_DeleteRecords_s {
+ rd_kafka_topic_partition_list_t *offsets;
+};
+
+/**@}*/
+
+
+/**
+ * @name DeleteConsumerGroupOffsets
+ * @{
+ */
+
+/**
+ * @brief DeleteConsumerGroupOffsets result
+ */
+struct rd_kafka_DeleteConsumerGroupOffsets_result_s {
+ rd_list_t groups; /**< Type (rd_kafka_group_result_t *) */
+};
+
+struct rd_kafka_DeleteConsumerGroupOffsets_s {
+ char *group; /**< Points to data */
+ rd_kafka_topic_partition_list_t *partitions;
+ char data[1]; /**< The group name is allocated along with
+ * the struct here. */
+};
+
+/**@}*/
+
+/**
+ * @name CreateAcls
+ * @{
+ */
+
+/**
+ * @brief AclBinding type, used with CreateAcls.
+ */
+struct rd_kafka_AclBinding_s {
+ rd_kafka_ResourceType_t restype; /**< Resource type */
+ char *name; /**< Resource name, points to .data */
+ rd_kafka_ResourcePatternType_t
+ resource_pattern_type; /**< Resource pattern type */
+ char *principal; /**< Access Control Entry principal */
+ char *host; /**< Access Control Entry host */
+ rd_kafka_AclOperation_t operation; /**< AclOperation enumeration */
+ rd_kafka_AclPermissionType_t
+ permission_type; /**< AclPermissionType enumeration */
+ rd_kafka_error_t *error; /**< Response error, or NULL on success. */
+};
+/**@}*/
+
+/**
+ * @name DeleteAcls
+ * @{
+ */
+
+/**
+ * @brief DeleteAcls_result type, used with DeleteAcls.
+ */
+struct rd_kafka_DeleteAcls_result_response_s {
+ rd_kafka_error_t *error; /**< Response error object, or NULL */
+ rd_list_t matching_acls; /**< Type (rd_kafka_AclBinding_t *) */
+};
+
+/**@}*/
+
+
+/**
+ * @name AlterConsumerGroupOffsets
+ * @{
+ */
+
+/**
+ * @brief AlterConsumerGroupOffsets result
+ */
+struct rd_kafka_AlterConsumerGroupOffsets_result_s {
+ rd_list_t groups; /**< Type (rd_kafka_group_result_t *) */
+};
+
+struct rd_kafka_AlterConsumerGroupOffsets_s {
+ char *group_id; /**< Points to data */
+ rd_kafka_topic_partition_list_t *partitions;
+ char data[1]; /**< The group id is allocated along with
+ * the struct here. */
+};
+
+/**@}*/
+
+
+/**
+ * @name ListConsumerGroupOffsets
+ * @{
+ */
+
+/**
+ * @brief ListConsumerGroupOffsets result
+ */
+struct rd_kafka_ListConsumerGroupOffsets_result_s {
+ rd_list_t groups; /**< Type (rd_kafka_group_result_t *) */
+};
+
+struct rd_kafka_ListConsumerGroupOffsets_s {
+ char *group_id; /**< Points to data */
+ rd_kafka_topic_partition_list_t *partitions;
+ char data[1]; /**< The group id is allocated along with
+ * the struct here. */
+};
+
+/**@}*/
+
+/**
+ * @name ListConsumerGroups
+ * @{
+ */
+
+/**
+ * @struct ListConsumerGroups result for a single group
+ */
+struct rd_kafka_ConsumerGroupListing_s {
+ char *group_id; /**< Group id */
+ /** Is it a simple consumer group? That means empty protocol_type. */
+ rd_bool_t is_simple_consumer_group;
+ rd_kafka_consumer_group_state_t state; /**< Consumer group state. */
+};
+
+
+/**
+ * @struct ListConsumerGroups results and errors
+ */
+struct rd_kafka_ListConsumerGroupsResult_s {
+ rd_list_t valid; /**< List of valid ConsumerGroupListing
+ (rd_kafka_ConsumerGroupListing_t *) */
+ rd_list_t errors; /**< List of errors (rd_kafka_error_t *) */
+};
+
+/**@}*/
+
+/**
+ * @name DescribeConsumerGroups
+ * @{
+ */
+
+/**
+ * @struct Assignment of a consumer group member.
+ *
+ */
+struct rd_kafka_MemberAssignment_s {
+ /** Partitions assigned to current member. */
+ rd_kafka_topic_partition_list_t *partitions;
+};
+
+/**
+ * @struct Description of a consumer group member.
+ *
+ */
+struct rd_kafka_MemberDescription_s {
+ char *client_id; /**< Client id */
+ char *consumer_id; /**< Consumer id */
+ char *group_instance_id; /**< Group instance id */
+ char *host; /**< Group member host */
+ rd_kafka_MemberAssignment_t assignment; /**< Member assignment */
+};
+
+/**
+ * @struct DescribeConsumerGroups result
+ */
+struct rd_kafka_ConsumerGroupDescription_s {
+ /** Group id */
+ char *group_id;
+ /** Is it a simple consumer group? That means empty protocol_type. */
+ rd_bool_t is_simple_consumer_group;
+ /** List of members.
+ * Type (rd_kafka_MemberDescription_t *): members list */
+ rd_list_t members;
+ /** Protocol type */
+ char *protocol_type;
+ /** Partition assignor identifier. */
+ char *partition_assignor;
+ /** Consumer group state. */
+ rd_kafka_consumer_group_state_t state;
+ /** Consumer group coordinator. */
+ rd_kafka_Node_t *coordinator;
+ /** Group specific error. */
+ rd_kafka_error_t *error;
+};
+
+/**@}*/
+
+#endif /* _RDKAFKA_ADMIN_H_ */