// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;

namespace Pulumi.Elasticstack.Outputs
{

    [OutputType]
    public sealed class IndexLifecycleWarm
    {
        /// <summary>
        /// Updates the index settings to change which nodes are allowed to host the index shards and change the number of replicas.
        /// </summary>
        public readonly Outputs.IndexLifecycleWarmAllocate? Allocate;
        /// <summary>
        /// Force merges the index into the specified maximum number of segments. This action makes the index read-only.
        /// </summary>
        public readonly Outputs.IndexLifecycleWarmForcemerge? Forcemerge;
        /// <summary>
        /// Moves the index to the data tier that corresponds to the current phase by updating the "index.routing.allocation.include.*tier*preference" index setting.
        /// </summary>
        public readonly Outputs.IndexLifecycleWarmMigrate? Migrate;
        /// <summary>
        /// ILM moves indices through the lifecycle according to their age. To control the timing of these transitions, you set a minimum age for each phase.
        /// </summary>
        public readonly string? MinAge;
        /// <summary>
        /// Makes the index read-only.
        /// </summary>
        public readonly Outputs.IndexLifecycleWarmReadonly? Readonly;
        /// <summary>
        /// Sets a source index to read-only and shrinks it into a new index with fewer primary shards.
        /// </summary>
        public readonly Outputs.IndexLifecycleWarmSetPriority? SetPriority;
        /// <summary>
        /// Sets a source index to read-only and shrinks it into a new index with fewer primary shards.
        /// </summary>
        public readonly Outputs.IndexLifecycleWarmShrink? Shrink;
        /// <summary>
        /// Convert a follower index to a regular index. Performed automatically before a rollover, shrink, or searchable snapshot action.
        /// </summary>
        public readonly Outputs.IndexLifecycleWarmUnfollow? Unfollow;

        [OutputConstructor]
        private IndexLifecycleWarm(
            Outputs.IndexLifecycleWarmAllocate? allocate,

            Outputs.IndexLifecycleWarmForcemerge? forcemerge,

            Outputs.IndexLifecycleWarmMigrate? migrate,

            string? minAge,

            Outputs.IndexLifecycleWarmReadonly? @readonly,

            Outputs.IndexLifecycleWarmSetPriority? setPriority,

            Outputs.IndexLifecycleWarmShrink? shrink,

            Outputs.IndexLifecycleWarmUnfollow? unfollow)
        {
            Allocate = allocate;
            Forcemerge = forcemerge;
            Migrate = migrate;
            MinAge = minAge;
            Readonly = @readonly;
            SetPriority = setPriority;
            Shrink = shrink;
            Unfollow = unfollow;
        }
    }
}
