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

cluster.name=${org.apache.unomi.elasticsearch.cluster.name:-contextElasticSearch}
# The elasticSearchAddresses may be a comma seperated list of host names and ports such as
# hostA:9200,hostB:9200
# Note: the port number must be repeated for each host.
elasticSearchAddresses=${org.apache.unomi.elasticsearch.addresses:-localhost:9200}
fatalIllegalStateErrors=${org.apache.unomi.elasticsearch.fatalIllegalStateErrors:-}
index.prefix=${org.apache.unomi.elasticsearch.index.prefix:-context}
monthlyIndex.numberOfShards=${org.apache.unomi.elasticsearch.monthlyIndex.nbShards:-5}
monthlyIndex.numberOfReplicas=${org.apache.unomi.elasticsearch.monthlyIndex.nbReplicas:-0}
monthlyIndex.indexMappingTotalFieldsLimit=${org.apache.unomi.elasticsearch.monthlyIndex.indexMappingTotalFieldsLimit:-1000}
monthlyIndex.indexMaxDocValueFieldsSearch=${org.apache.unomi.elasticsearch.monthlyIndex.indexMaxDocValueFieldsSearch:-1000}
monthlyIndex.itemsMonthlyIndexedOverride=${org.apache.unomi.elasticsearch.monthlyIndex.itemsMonthlyIndexedOverride:-event,session}
numberOfShards=${org.apache.unomi.elasticsearch.defaultIndex.nbShards:-5}
numberOfReplicas=${org.apache.unomi.elasticsearch.defaultIndex.nbReplicas:-0}
indexMappingTotalFieldsLimit=${org.apache.unomi.elasticsearch.defaultIndex.indexMappingTotalFieldsLimit:-1000}
indexMaxDocValueFieldsSearch=${org.apache.unomi.elasticsearch.defaultIndex.indexMaxDocValueFieldsSearch:-1000}
defaultQueryLimit=${org.apache.unomi.elasticsearch.defaultQueryLimit:-10}

# The following settings control the behavior of the BulkProcessor API. You can find more information about these
# settings and their behavior here : https://www.elastic.co/guide/en/elasticsearch/client/java-api/2.4/java-docs-bulk-processor.html
# The values used here are the default values of the API
bulkProcessor.concurrentRequests=${org.apache.unomi.elasticsearch.bulkProcessor.concurrentRequests:-1}
bulkProcessor.bulkActions=${org.apache.unomi.elasticsearch.bulkProcessor.bulkActions:-1000}
bulkProcessor.bulkSize=${org.apache.unomi.elasticsearch.bulkProcessor.bulkSize:-5MB}
bulkProcessor.flushInterval=${org.apache.unomi.elasticsearch.bulkProcessor.flushInterval:-5s}
bulkProcessor.backoffPolicy=${org.apache.unomi.elasticsearch.bulkProcessor.backoffPolicy:-exponential}

# The following settings are used to perform version checks on the connected ElasticSearch cluster, to make sure that
# appropriate versions are used. The check is performed like this :
# for each node in the ElasticSearch cluster:
#   minimalElasticSearchVersion <= ElasticSearch node version < maximalElasticSearchVersion
minimalElasticSearchVersion=7.0.0
maximalElasticSearchVersion=8.0.0

# The following setting is used to set the aggregate query bucket size
aggregateQueryBucketSize=${org.apache.unomi.elasticsearch.aggregateQueryBucketSize:-5000}

# Maximum size allowed for an elastic "ids" query
maximumIdsQueryCount=${org.apache.unomi.elasticsearch.maximumIdsQueryCount:-5000}

# Disable partitions on aggregation queries for past events.
pastEventsDisablePartitions=${org.apache.unomi.elasticsearch.pastEventsDisablePartitions:-false}

# max socket timeout in millis
clientSocketTimeout=${org.apache.unomi.elasticsearch.clientSocketTimeout:-}

# Retrun error in docs are missing in es aggregation calculation
aggQueryThrowOnMissingDocs=${org.apache.unomi.elasticsearch.aggQueryThrowOnMissingDocs:-false}

aggQueryMaxResponseSizeHttp=${org.apache.unomi.elasticsearch.aggQueryMaxResponseSizeHttp:-}

# Authentication
username=${org.apache.unomi.elasticsearch.username:-}
password=${org.apache.unomi.elasticsearch.password:-}
sslEnable=${org.apache.unomi.elasticsearch.sslEnable:-false}
sslTrustAllCertificates=${org.apache.unomi.elasticsearch.sslTrustAllCertificates:-false}