/* SPDX-License-Identifier: Apache-2.0 * * The OpenSearch Contributors require contributions made to * this file be licensed under the Apache-2.0 license or a * compatible open source license. */ /* * Modifications Copyright OpenSearch Contributors. See * GitHub history for details. * * Licensed to Elasticsearch B.V. under one or more contributor * license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright * ownership. Elasticsearch B.V. 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. */ namespace OpenSearch.Client.Specification.IndicesApi { public interface ITranslogFlushSettings { /// /// How often to check if a flush is needed, randomized between /// the interval value and 2x the interval value. Defaults to 5s. /// Time Interval { get; set; } /// /// How long to wait before triggering a flush regardless of translog size. Defaults to 30m. /// Time ThresholdPeriod { get; set; } /// /// Once the translog hits this size, a flush will happen. Defaults to 512mb. /// string ThresholdSize { get; set; } } public class TranslogFlushSettings : ITranslogFlushSettings { /// public Time Interval { get; set; } /// public Time ThresholdPeriod { get; set; } /// public string ThresholdSize { get; set; } } public class TranslogFlushSettingsDescriptor : DescriptorBase, ITranslogFlushSettings { Time ITranslogFlushSettings.Interval { get; set; } Time ITranslogFlushSettings.ThresholdPeriod { get; set; } string ITranslogFlushSettings.ThresholdSize { get; set; } /// public TranslogFlushSettingsDescriptor ThresholdSize(string size) => Assign(size, (a, v) => a.ThresholdSize = v); /// public TranslogFlushSettingsDescriptor ThresholdPeriod(Time time) => Assign(time, (a, v) => a.ThresholdPeriod = v); /// public TranslogFlushSettingsDescriptor Interval(Time time) => Assign(time, (a, v) => a.Interval = v); } }