# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#  http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

[groups]
admin_group = admin_all
subadmin_group1 = admin_host1
subadmin_group2 = admin_host1234
consumer_group0 = consumer_t1_all
consumer_group1 = consumer_t1_host1
consumer_group2 = consumer_t2_host2
producer_group0 = producer_t1_all
producer_group1 = producer_t1_host1
producer_group2 = producer_t2_host2
producer_group3 = producer_ti1_host1
producer_group4 = producer_ti2_host2
producer_group5 = producer_idempotentwrite_host1
config_admin_group1 = config_admin_host1
config_admin_group2 = config_admin_t1_host2
consumer_producer_group0 = consumer_producer_t1

[roles]
admin_all = host=*->action=all
admin_host1 = host=host1->action=all
admin_host1234 = host=1.2.3.4->action=all
consumer_t1_all = host=*->topic=t1->action=read
consumer_t1_host1 = host=host1->topic=t1->action=read
consumer_t2_host2 = host=host2->topic=t2->action=read
producer_t1_all = host=*->topic=t1->action=write
producer_t1_host1 = host=host1->topic=t1->action=write
producer_t2_host2 = host=host2->topic=t2->action=write
producer_ti1_host1 = host=host1->transactionalid=ti1->action=write
producer_ti2_host2 = host=host2->transactionalid=ti2->action=write
producer_idempotentwrite_host1 = host=host1->cluster=kafka-cluster->action=idempotentwrite
config_admin_host1 = host=host1->cluster=kafka-cluster->action=describeconfigs
config_admin_t1_host2 = host=host2->topic=t1->action=alterconfigs
consumer_producer_t1 = host=host1->topic=t1->action=all
