// *** 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;
using Pulumi;

namespace PiersKarsenbarg.Nutanix
{
    public static class GetFoundationCentralClusterDetails
    {
        public static Task<GetFoundationCentralClusterDetailsResult> InvokeAsync(GetFoundationCentralClusterDetailsArgs args, InvokeOptions? options = null)
            => Pulumi.Deployment.Instance.InvokeAsync<GetFoundationCentralClusterDetailsResult>("nutanix:index/getFoundationCentralClusterDetails:getFoundationCentralClusterDetails", args ?? new GetFoundationCentralClusterDetailsArgs(), options.WithDefaults());

        public static Output<GetFoundationCentralClusterDetailsResult> Invoke(GetFoundationCentralClusterDetailsInvokeArgs args, InvokeOptions? options = null)
            => Pulumi.Deployment.Instance.Invoke<GetFoundationCentralClusterDetailsResult>("nutanix:index/getFoundationCentralClusterDetails:getFoundationCentralClusterDetails", args ?? new GetFoundationCentralClusterDetailsInvokeArgs(), options.WithDefaults());
    }


    public sealed class GetFoundationCentralClusterDetailsArgs : Pulumi.InvokeArgs
    {
        [Input("clusterExternalIp")]
        public string? ClusterExternalIp { get; set; }

        [Input("clusterName")]
        public string? ClusterName { get; set; }

        [Input("clusterSize")]
        public int? ClusterSize { get; set; }

        [Input("clusterStatus")]
        public Inputs.GetFoundationCentralClusterDetailsClusterStatusArgs? ClusterStatus { get; set; }

        [Input("commonNetworkSettings")]
        public Inputs.GetFoundationCentralClusterDetailsCommonNetworkSettingsArgs? CommonNetworkSettings { get; set; }

        [Input("imagedClusterUuid", required: true)]
        public string ImagedClusterUuid { get; set; } = null!;

        [Input("redundancyFactor")]
        public int? RedundancyFactor { get; set; }

        [Input("storageNodeCount")]
        public int? StorageNodeCount { get; set; }

        public GetFoundationCentralClusterDetailsArgs()
        {
        }
    }

    public sealed class GetFoundationCentralClusterDetailsInvokeArgs : Pulumi.InvokeArgs
    {
        [Input("clusterExternalIp")]
        public Input<string>? ClusterExternalIp { get; set; }

        [Input("clusterName")]
        public Input<string>? ClusterName { get; set; }

        [Input("clusterSize")]
        public Input<int>? ClusterSize { get; set; }

        [Input("clusterStatus")]
        public Input<Inputs.GetFoundationCentralClusterDetailsClusterStatusInputArgs>? ClusterStatus { get; set; }

        [Input("commonNetworkSettings")]
        public Input<Inputs.GetFoundationCentralClusterDetailsCommonNetworkSettingsInputArgs>? CommonNetworkSettings { get; set; }

        [Input("imagedClusterUuid", required: true)]
        public Input<string> ImagedClusterUuid { get; set; } = null!;

        [Input("redundancyFactor")]
        public Input<int>? RedundancyFactor { get; set; }

        [Input("storageNodeCount")]
        public Input<int>? StorageNodeCount { get; set; }

        public GetFoundationCentralClusterDetailsInvokeArgs()
        {
        }
    }


    [OutputType]
    public sealed class GetFoundationCentralClusterDetailsResult
    {
        public readonly bool Archived;
        public readonly string ClusterExternalIp;
        public readonly string ClusterName;
        public readonly int ClusterSize;
        public readonly Outputs.GetFoundationCentralClusterDetailsClusterStatusResult ClusterStatus;
        public readonly Outputs.GetFoundationCentralClusterDetailsCommonNetworkSettingsResult CommonNetworkSettings;
        public readonly string CreatedTimestamp;
        public readonly string CurrentTime;
        public readonly bool Destroyed;
        public readonly ImmutableArray<Outputs.GetFoundationCentralClusterDetailsFoundationInitConfigResult> FoundationInitConfigs;
        public readonly string FoundationInitNodeUuid;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        public readonly string ImagedClusterUuid;
        public readonly ImmutableArray<string> ImagedNodeUuidLists;
        public readonly int? RedundancyFactor;
        public readonly int StorageNodeCount;
        public readonly string WorkflowType;

        [OutputConstructor]
        private GetFoundationCentralClusterDetailsResult(
            bool archived,

            string clusterExternalIp,

            string clusterName,

            int clusterSize,

            Outputs.GetFoundationCentralClusterDetailsClusterStatusResult clusterStatus,

            Outputs.GetFoundationCentralClusterDetailsCommonNetworkSettingsResult commonNetworkSettings,

            string createdTimestamp,

            string currentTime,

            bool destroyed,

            ImmutableArray<Outputs.GetFoundationCentralClusterDetailsFoundationInitConfigResult> foundationInitConfigs,

            string foundationInitNodeUuid,

            string id,

            string imagedClusterUuid,

            ImmutableArray<string> imagedNodeUuidLists,

            int? redundancyFactor,

            int storageNodeCount,

            string workflowType)
        {
            Archived = archived;
            ClusterExternalIp = clusterExternalIp;
            ClusterName = clusterName;
            ClusterSize = clusterSize;
            ClusterStatus = clusterStatus;
            CommonNetworkSettings = commonNetworkSettings;
            CreatedTimestamp = createdTimestamp;
            CurrentTime = currentTime;
            Destroyed = destroyed;
            FoundationInitConfigs = foundationInitConfigs;
            FoundationInitNodeUuid = foundationInitNodeUuid;
            Id = id;
            ImagedClusterUuid = imagedClusterUuid;
            ImagedNodeUuidLists = imagedNodeUuidLists;
            RedundancyFactor = redundancyFactor;
            StorageNodeCount = storageNodeCount;
            WorkflowType = workflowType;
        }
    }
}
