// *** 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 Pulumiverse.Fortios
{
    public static class GetSystemAlias
    {
        /// <summary>
        /// Use this data source to get information on an fortios system alias
        /// </summary>
        public static Task<GetSystemAliasResult> InvokeAsync(GetSystemAliasArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetSystemAliasResult>("fortios:index/getSystemAlias:getSystemAlias", args ?? new GetSystemAliasArgs(), options.WithDefaults());

        /// <summary>
        /// Use this data source to get information on an fortios system alias
        /// </summary>
        public static Output<GetSystemAliasResult> Invoke(GetSystemAliasInvokeArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.Invoke<GetSystemAliasResult>("fortios:index/getSystemAlias:getSystemAlias", args ?? new GetSystemAliasInvokeArgs(), options.WithDefaults());
    }


    public sealed class GetSystemAliasArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Specify the name of the desired system alias.
        /// </summary>
        [Input("name", required: true)]
        public string Name { get; set; } = null!;

        /// <summary>
        /// Specifies the vdom to which the data source will be applied when the FortiGate unit is running in VDOM mode. Only one vdom can be specified. If you want to inherit the vdom configuration of the provider, please do not set this parameter.
        /// </summary>
        [Input("vdomparam")]
        public string? Vdomparam { get; set; }

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

    public sealed class GetSystemAliasInvokeArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Specify the name of the desired system alias.
        /// </summary>
        [Input("name", required: true)]
        public Input<string> Name { get; set; } = null!;

        /// <summary>
        /// Specifies the vdom to which the data source will be applied when the FortiGate unit is running in VDOM mode. Only one vdom can be specified. If you want to inherit the vdom configuration of the provider, please do not set this parameter.
        /// </summary>
        [Input("vdomparam")]
        public Input<string>? Vdomparam { get; set; }

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


    [OutputType]
    public sealed class GetSystemAliasResult
    {
        /// <summary>
        /// Command list to execute.
        /// </summary>
        public readonly string Command;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// Alias command name.
        /// </summary>
        public readonly string Name;
        public readonly string? Vdomparam;

        [OutputConstructor]
        private GetSystemAliasResult(
            string command,

            string id,

            string name,

            string? vdomparam)
        {
            Command = command;
            Id = id;
            Name = name;
            Vdomparam = vdomparam;
        }
    }
}
