<gh_stars>0// *** 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.Yandex.Inputs
{

    public sealed class MdbElasticSearchClusterConfigArgs : global::Pulumi.ResourceArgs
    {
        [Input("adminPassword", required: true)]
        private Input<string>? _adminPassword;

        /// <summary>
        /// Password for admin user of Elasticsearch.
        /// </summary>
        public Input<string>? AdminPassword
        {
            get => _adminPassword;
            set
            {
                var emptySecret = Output.CreateSecret(0);
                _adminPassword = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
            }
        }

        /// <summary>
        /// Configuration for Elasticsearch data nodes subcluster. The structure is documented below.
        /// </summary>
        [Input("dataNode", required: true)]
        public Input<Inputs.MdbElasticSearchClusterConfigDataNodeArgs> DataNode { get; set; } = null!;

        /// <summary>
        /// Edition of Elasticsearch. For more information, see [the official documentation](https://cloud.yandex.com/en-ru/docs/managed-elasticsearch/concepts/es-editions).
        /// </summary>
        [Input("edition")]
        public Input<string>? Edition { get; set; }

        /// <summary>
        /// Configuration for Elasticsearch master nodes subcluster. The structure is documented below.
        /// </summary>
        [Input("masterNode")]
        public Input<Inputs.MdbElasticSearchClusterConfigMasterNodeArgs>? MasterNode { get; set; }

        [Input("plugins")]
        private InputList<string>? _plugins;

        /// <summary>
        /// A set of Elasticsearch plugins to install.
        /// </summary>
        public InputList<string> Plugins
        {
            get => _plugins ?? (_plugins = new InputList<string>());
            set => _plugins = value;
        }

        /// <summary>
        /// Version of Elasticsearch.
        /// </summary>
        [Input("version")]
        public Input<string>? Version { get; set; }

        public MdbElasticSearchClusterConfigArgs()
        {
        }
        public static new MdbElasticSearchClusterConfigArgs Empty => new MdbElasticSearchClusterConfigArgs();
    }
}
