// *** 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.Vcd
{
    public static class GetNsxtAlbServiceEngineGroup
    {
        public static Task<GetNsxtAlbServiceEngineGroupResult> InvokeAsync(GetNsxtAlbServiceEngineGroupArgs args, InvokeOptions? options = null)
            => Pulumi.Deployment.Instance.InvokeAsync<GetNsxtAlbServiceEngineGroupResult>("vcd:index/getNsxtAlbServiceEngineGroup:getNsxtAlbServiceEngineGroup", args ?? new GetNsxtAlbServiceEngineGroupArgs(), options.WithDefaults());

        public static Output<GetNsxtAlbServiceEngineGroupResult> Invoke(GetNsxtAlbServiceEngineGroupInvokeArgs args, InvokeOptions? options = null)
            => Pulumi.Deployment.Instance.Invoke<GetNsxtAlbServiceEngineGroupResult>("vcd:index/getNsxtAlbServiceEngineGroup:getNsxtAlbServiceEngineGroup", args ?? new GetNsxtAlbServiceEngineGroupInvokeArgs(), options.WithDefaults());
    }


    public sealed class GetNsxtAlbServiceEngineGroupArgs : global::Pulumi.InvokeArgs
    {
        [Input("name", required: true)]
        public string Name { get; set; } = null!;

        [Input("overallocated")]
        public bool? Overallocated { get; set; }

        [Input("syncOnRefresh")]
        public bool? SyncOnRefresh { get; set; }

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

    public sealed class GetNsxtAlbServiceEngineGroupInvokeArgs : global::Pulumi.InvokeArgs
    {
        [Input("name", required: true)]
        public Input<string> Name { get; set; } = null!;

        [Input("overallocated")]
        public Input<bool>? Overallocated { get; set; }

        [Input("syncOnRefresh")]
        public Input<bool>? SyncOnRefresh { get; set; }

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


    [OutputType]
    public sealed class GetNsxtAlbServiceEngineGroupResult
    {
        public readonly string AlbCloudId;
        public readonly int DeployedVirtualServices;
        public readonly string Description;
        public readonly string HaMode;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        public readonly int MaxVirtualServices;
        public readonly string Name;
        public readonly bool? Overallocated;
        public readonly string ReservationModel;
        public readonly int ReservedVirtualServices;
        public readonly string SupportedFeatureSet;
        public readonly bool? SyncOnRefresh;

        [OutputConstructor]
        private GetNsxtAlbServiceEngineGroupResult(
            string albCloudId,

            int deployedVirtualServices,

            string description,

            string haMode,

            string id,

            int maxVirtualServices,

            string name,

            bool? overallocated,

            string reservationModel,

            int reservedVirtualServices,

            string supportedFeatureSet,

            bool? syncOnRefresh)
        {
            AlbCloudId = albCloudId;
            DeployedVirtualServices = deployedVirtualServices;
            Description = description;
            HaMode = haMode;
            Id = id;
            MaxVirtualServices = maxVirtualServices;
            Name = name;
            Overallocated = overallocated;
            ReservationModel = reservationModel;
            ReservedVirtualServices = reservedVirtualServices;
            SupportedFeatureSet = supportedFeatureSet;
            SyncOnRefresh = syncOnRefresh;
        }
    }
}
