/*
 * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
 * or more contributor license agreements. Licensed under the Elastic License;
 * you may not use this file except in compliance with the Elastic License.
 */
package org.elasticsearch.xpack.core.indexlifecycle;

import org.elasticsearch.common.settings.Setting;
import org.elasticsearch.common.unit.TimeValue;

/**
 * Class encapsulating settings related to Index Lifecycle Management X-Pack Plugin
 */
public class LifecycleSettings {
    public static final String LIFECYCLE_POLL_INTERVAL = "indices.lifecycle.poll_interval";
    public static final String LIFECYCLE_MAINTENANCE_MODE = "indices.lifecycle.maintenance";
    public static final String LIFECYCLE_NAME = "index.lifecycle.name";
    public static final String LIFECYCLE_PHASE = "index.lifecycle.phase";
    public static final String LIFECYCLE_ACTION = "index.lifecycle.action";
    public static final String LIFECYCLE_STEP = "index.lifecycle.step";
    public static final String LIFECYCLE_INDEX_CREATION_DATE = "index.lifecycle.date";
    public static final String LIFECYCLE_PHASE_TIME = "index.lifecycle.phase_time";
    public static final String LIFECYCLE_ACTION_TIME = "index.lifecycle.action_time";
    public static final String LIFECYCLE_STEP_TIME = "index.lifecycle.step_time";
    public static final String LIFECYCLE_FAILED_STEP = "index.lifecycle.failed_step";
    public static final String LIFECYCLE_STEP_INFO = "index.lifecycle.step_info";
    public static final String LIFECYCLE_SKIP = "index.lifecycle.skip";

    // NORELEASE: we should probably change the default to something other than three seconds for initial release
    public static final Setting<TimeValue> LIFECYCLE_POLL_INTERVAL_SETTING = Setting.positiveTimeSetting(LIFECYCLE_POLL_INTERVAL,
        TimeValue.timeValueSeconds(3), Setting.Property.Dynamic, Setting.Property.NodeScope);
    public static final Setting<String> LIFECYCLE_NAME_SETTING = Setting.simpleString(LIFECYCLE_NAME,
        Setting.Property.Dynamic, Setting.Property.IndexScope);
    public static final Setting<String> LIFECYCLE_PHASE_SETTING = Setting.simpleString(LIFECYCLE_PHASE,
        Setting.Property.Dynamic, Setting.Property.IndexScope);
    public static final Setting<String> LIFECYCLE_ACTION_SETTING = Setting.simpleString(LIFECYCLE_ACTION,
            Setting.Property.Dynamic, Setting.Property.IndexScope);
    public static final Setting<String> LIFECYCLE_STEP_SETTING = Setting.simpleString(LIFECYCLE_STEP,
        Setting.Property.Dynamic, Setting.Property.IndexScope);
    public static final Setting<String> LIFECYCLE_FAILED_STEP_SETTING = Setting.simpleString(LIFECYCLE_FAILED_STEP,
            Setting.Property.Dynamic, Setting.Property.IndexScope);
    public static final Setting<Long> LIFECYCLE_INDEX_CREATION_DATE_SETTING = Setting.longSetting(LIFECYCLE_INDEX_CREATION_DATE,
        -1L, -1L, Setting.Property.Dynamic, Setting.Property.IndexScope);
    public static final Setting<Long> LIFECYCLE_PHASE_TIME_SETTING = Setting.longSetting(LIFECYCLE_PHASE_TIME,
        -1L, -1L, Setting.Property.Dynamic, Setting.Property.IndexScope);
    public static final Setting<Long> LIFECYCLE_ACTION_TIME_SETTING = Setting.longSetting(LIFECYCLE_ACTION_TIME,
        -1L, -1L, Setting.Property.Dynamic, Setting.Property.IndexScope);
    public static final Setting<Long> LIFECYCLE_STEP_TIME_SETTING = Setting.longSetting(LIFECYCLE_STEP_TIME,
        -1L, -1L, Setting.Property.Dynamic, Setting.Property.IndexScope);
    public static final Setting<String> LIFECYCLE_STEP_INFO_SETTING = Setting.simpleString(LIFECYCLE_STEP_INFO, Setting.Property.Dynamic,
            Setting.Property.IndexScope, Setting.Property.NotCopyableOnResize);
    public static final Setting<Boolean> LIFECYCLE_SKIP_SETTING = Setting.boolSetting(LIFECYCLE_SKIP, false,
        Setting.Property.Dynamic, Setting.Property.IndexScope);
}

@@ -2233,35 +2233,67 @@
 perty.IndexScope
+, Setting.Property.InternalIndex
 );%0A
-
     public stati
@@ -2439,32 +2439,64 @@
 perty.IndexScope
+, Setting.Property.InternalIndex
 );%0A    public st
@@ -2637,32 +2637,64 @@
 perty.IndexScope
+, Setting.Property.InternalIndex
 );%0A    public st
@@ -2853,32 +2853,64 @@
 perty.IndexScope
+, Setting.Property.InternalIndex
 );%0A    public st
@@ -3088,32 +3088,64 @@
 perty.IndexScope
+, Setting.Property.InternalIndex
 );%0A    public st
@@ -3305,32 +3305,64 @@
 perty.IndexScope
+, Setting.Property.InternalIndex
 );%0A    public st
@@ -3524,32 +3524,64 @@
 perty.IndexScope
+, Setting.Property.InternalIndex
 );%0A    public st
@@ -3739,32 +3739,64 @@
 perty.IndexScope
+, Setting.Property.InternalIndex
 );%0A    public st
@@ -3920,16 +3920,16 @@
 ynamic,%0A
-
         
@@ -3997,16 +3997,48 @@
 OnResize
+, Setting.Property.InternalIndex
 );%0A    p

Make various LifecycleSettings Settings internal (#32381)