// *** 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 IndexLifecycleCold
    {
        /// <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.IndexLifecycleColdAllocate? Allocate;
        /// <summary>
        /// Freeze the index to minimize its memory footprint.
        /// </summary>
        public readonly Outputs.IndexLifecycleColdFreeze? Freeze;
        /// <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.IndexLifecycleColdMigrate? 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.IndexLifecycleColdReadonly? Readonly;
        /// <summary>
        /// Takes a snapshot of the managed index in the configured repository and mounts it as a searchable snapshot.
        /// </summary>
        public readonly Outputs.IndexLifecycleColdSearchableSnapshot? SearchableSnapshot;
        /// <summary>
        /// Sets a source index to read-only and shrinks it into a new index with fewer primary shards.
        /// </summary>
        public readonly Outputs.IndexLifecycleColdSetPriority? SetPriority;
        /// <summary>
        /// Convert a follower index to a regular index. Performed automatically before a rollover, shrink, or searchable snapshot action.
        /// </summary>
        public readonly Outputs.IndexLifecycleColdUnfollow? Unfollow;

        [OutputConstructor]
        private IndexLifecycleCold(
            Outputs.IndexLifecycleColdAllocate? allocate,

            Outputs.IndexLifecycleColdFreeze? freeze,

            Outputs.IndexLifecycleColdMigrate? migrate,

            string? minAge,

            Outputs.IndexLifecycleColdReadonly? @readonly,

            Outputs.IndexLifecycleColdSearchableSnapshot? searchableSnapshot,

            Outputs.IndexLifecycleColdSetPriority? setPriority,

            Outputs.IndexLifecycleColdUnfollow? unfollow)
        {
            Allocate = allocate;
            Freeze = freeze;
            Migrate = migrate;
            MinAge = minAge;
            Readonly = @readonly;
            SearchableSnapshot = searchableSnapshot;
            SetPriority = setPriority;
            Unfollow = unfollow;
        }
    }
}
