#
# 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.
#

configs:
- name: zookeeperServers
  default: ''
  description: The quorum connection string for local ZooKeeper
- name: configurationStoreServers
  default: ''
  description: Configuration store connection string
- name: brokerServicePort
  default: '6650'
  description: The port on which the standalone broker listens for connections
- name: webServicePort
  default: '8080'
  description: THe port used by the standalone broker for HTTP requests
- name: bindAddress
  default: 0.0.0.0
  description: The hostname or IP address on which the standalone service binds
- name: advertisedAddress
  default: ''
  description: The hostname or IP address that the standalone service advertises to the outside world. If not set, the value of `InetAddress.getLocalHost().getHostName()` is used.
- name: clusterName
  default: standalone
  description: The name of the cluster that this broker belongs to.
- name: zooKeeperSessionTimeoutMillis
  default: '30000'
  description: The ZooKeeper session timeout, in milliseconds.
- name: brokerShutdownTimeoutMs
  default: '3000'
  description: The time to wait for graceful broker shutdown. After this time elapses, the process will be killed.
- name: backlogQuotaCheckEnabled
  default: 'true'
  description: Enable the backlog quota check, which enforces a specified action when the quota is reached.
- name: backlogQuotaCheckIntervalInSeconds
  default: '60'
  description: How often to check for topics that have reached the backlog quota.
- name: backlogQuotaDefaultLimitGB
  default: '10'
  description: The default per-topic backlog quota limit.
- name: brokerDeleteInactiveTopicsEnabled
  default: 'true'
  description: Enable the deletion of inactive topics.
- name: brokerDeleteInactiveTopicsFrequencySeconds
  default: '60'
  description: How often to check for inactive topics, in seconds.
- name: messageExpiryCheckIntervalInMinutes
  default: '5'
  description: How often to proactively check and purged expired messages.
- name: activeConsumerFailoverDelayTimeMillis
  default: '1000'
  description: How long to delay rewinding cursor and dispatching messages when active consumer is changed.
- name: clientLibraryVersionCheckEnabled
  default: 'false'
  description: Enable checks for minimum allowed client library version.
- name: clientLibraryVersionCheckAllowUnversioned
  default: 'true'
  description: Allow client libraries with no version information
- name: statusFilePath
  default: "/usr/local/apache/htdocs"
  description: The path for the file used to determine the rotation status for the broker when responding to service discovery health checks
- name: maxUnackedMessagesPerConsumer
  default: '50000'
  description: The maximum number of unacknowledged messages allowed to be received by consumers on a shared subscription. The broker will stop sending messages to a consumer once this limit is reached or until the consumer begins acknowledging messages. A value of 0 disables the unacked message limit check and thus allows consumers to receive messages without any restrictions.
- name: maxUnackedMessagesPerSubscription
  default: '200000'
  description: The same as above, except per subscription rather than per consumer.
- name: authenticationEnabled
  default: 'false'
  description: Enable authentication for the broker.
- name: authenticationProviders
  default: 'false'
  description: A comma-separated list of class names for authentication providers.
- name: authorizationEnabled
  default: 'false'
  description: Enforce authorization in brokers.
- name: superUserRoles
  default: ''
  description: Role names that are treated as "superusers." Superusers are authorized to perform all admin tasks.
- name: brokerClientAuthenticationPlugin
  default: ''
  description: The authentication settings of the broker itself. Used when the broker connects to other brokers either in the same cluster or from other clusters.
- name: brokerClientAuthenticationParameters
  default: ''
  description: The parameters that go along with the plugin specified using [`brokerClientAuthenticationPlugin`](#standalone-brokerClientAuthenticationPlugin).
- name: athenzDomainNames
  default: ''
  description: Supported Athenz authentication provider domain names as a comma-separated list.
- name: bookkeeperClientAuthenticationPlugin
  default: ''
  description: Authentication plugin to be used when connecting to bookies (BookKeeper servers).
- name: bookkeeperClientAuthenticationParametersName
  default: ''
  description: BookKeeper authentication plugin implementation parameters and values.
- name: bookkeeperClientAuthenticationParameters
  default: ''
  description: Parameters associated with the [`bookkeeperClientAuthenticationParametersName`](#standalone-bookkeeperClientAuthenticationParametersName)
- name: bookkeeperClientTimeoutInSeconds
  default: '30'
  description: Timeout for BookKeeper add and read operations.
- name: bookkeeperClientSpeculativeReadTimeoutInMillis
  default: '0'
  description: Speculative reads are initiated if a read request doesn't complete within a certain time. A value of 0 disables speculative reads.
- name: bookkeeperClientHealthCheckEnabled
  default: 'true'
  description: Enable bookie health checks.
- name: bookkeeperClientHealthCheckIntervalSeconds
  default: '60'
  description: The time interval, in seconds, at which health checks are performed. New ledgers are not created during health checks.
- name: bookkeeperClientHealthCheckErrorThresholdPerInterval
  default: '5'
  description: Error threshold for health checks.
- name: bookkeeperClientHealthCheckQuarantineTimeInSeconds
  default: '1800'
  description: If bookies have more than the allowed number of failures within the time interval specified by [`bookkeeperClientHealthCheckIntervalSeconds`](#)
- name: bookkeeperClientRackawarePolicyEnabled
  default: 'true'
- name: bookkeeperClientRegionawarePolicyEnabled
  default: 'false'
  description: Enable region-aware bookie selection policy. BK will chose bookies from different regions and racks when forming a new bookie ensemble. If enabled, the value of bookkeeperClientRackawarePolicyEnabled is ignored
- name: bookkeeperClientReorderReadSequenceEnabled
  default: 'false'
  description: Enable/disable reordering read sequence on reading entries.
- name: bookkeeperClientIsolationGroups
  default: ''
- name: managedLedgerDefaultEnsembleSize
  default: '1'
- name: managedLedgerDefaultWriteQuorum
  default: '1'
- name: managedLedgerDefaultAckQuorum
  default: '1'
- name: managedLedgerCacheSizeMB
  default: '1024'
- name: managedLedgerCacheEvictionWatermark
  default: '0.9'
- name: managedLedgerDefaultMarkDeleteRateLimit
  default: '0.1'
- name: managedLedgerMaxEntriesPerLedger
  default: '50000'
- name: managedLedgerMinLedgerRolloverTimeMinutes
  default: '10'
- name: managedLedgerMaxLedgerRolloverTimeMinutes
  default: '240'
- name: managedLedgerCursorMaxEntriesPerLedger
  default: '50000'
- name: managedLedgerCursorRolloverTimeInSeconds
  default: '14400'
- name: autoSkipNonRecoverableData
  default: 'false'
- name: managedLedgerMetadataOperationsTimeoutSeconds
  default: '60'
- name: managedLedgerReadEntryTimeoutSeconds
  default: '120'
- name: loadBalancerEnabled
  default: 'false'
- name: loadBalancerPlacementStrategy
  default: weightedRandomSelection
- name: loadBalancerReportUpdateThresholdPercentage
  default: '10'
- name: loadBalancerReportUpdateMaxIntervalMinutes
  default: '15'
- name: loadBalancerHostUsageCheckIntervalMinutes
  default: '1'
- name: loadBalancerSheddingIntervalMinutes
  default: '30'
- name: loadBalancerSheddingGracePeriodMinutes
  default: '30'
- name: loadBalancerBrokerMaxTopics
  default: '50000'
- name: loadBalancerBrokerUnderloadedThresholdPercentage
  default: '1'
- name: loadBalancerBrokerOverloadedThresholdPercentage
  default: '85'
- name: loadBalancerResourceQuotaUpdateIntervalMinutes
  default: '15'
- name: loadBalancerBrokerComfortLoadLevelPercentage
  default: '65'
- name: loadBalancerAutoBundleSplitEnabled
  default: 'false'
- name: loadBalancerNamespaceBundleMaxTopics
  default: '1000'
- name: loadBalancerNamespaceBundleMaxSessions
  default: '1000'
- name: loadBalancerNamespaceBundleMaxMsgRate
  default: '1000'
- name: loadBalancerNamespaceBundleMaxBandwidthMbytes
  default: '100'
- name: loadBalancerNamespaceMaximumBundles
  default: '128'
- name: replicationMetricsEnabled
  default: 'true'
- name: replicationConnectionsPerBroker
  default: '16'
- name: replicationProducerQueueSize
  default: '1000'
- name: defaultRetentionTimeInMinutes
  default: '0'
- name: defaultRetentionSizeInMB
  default: '0'
- name: keepAliveIntervalSeconds
  default: '30'
- name: brokerServicePurgeInactiveFrequencyInSeconds
  default: '60'
