<reponame>pulumiverse/pulumi-fortios<filename>sdk/dotnet/GetSystemDnsserver.cs// *** 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 GetSystemDnsserver
    {
        /// <summary>
        /// Use this data source to get information on an fortios system dnsserver
        /// </summary>
        public static Task<GetSystemDnsserverResult> InvokeAsync(GetSystemDnsserverArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetSystemDnsserverResult>("fortios:index/getSystemDnsserver:getSystemDnsserver", args ?? new GetSystemDnsserverArgs(), options.WithDefaults());

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


    public sealed class GetSystemDnsserverArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Specify the name of the desired system dnsserver.
        /// </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 GetSystemDnsserverArgs()
        {
        }
        public static new GetSystemDnsserverArgs Empty => new GetSystemDnsserverArgs();
    }

    public sealed class GetSystemDnsserverInvokeArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Specify the name of the desired system dnsserver.
        /// </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 GetSystemDnsserverInvokeArgs()
        {
        }
        public static new GetSystemDnsserverInvokeArgs Empty => new GetSystemDnsserverInvokeArgs();
    }


    [OutputType]
    public sealed class GetSystemDnsserverResult
    {
        /// <summary>
        /// DNS filter profile.
        /// </summary>
        public readonly string DnsfilterProfile;
        /// <summary>
        /// DNS over HTTPS.
        /// </summary>
        public readonly string Doh;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// DNS server mode.
        /// </summary>
        public readonly string Mode;
        /// <summary>
        /// DNS server name.
        /// </summary>
        public readonly string Name;
        public readonly string? Vdomparam;

        [OutputConstructor]
        private GetSystemDnsserverResult(
            string dnsfilterProfile,

            string doh,

            string id,

            string mode,

            string name,

            string? vdomparam)
        {
            DnsfilterProfile = dnsfilterProfile;
            Doh = doh;
            Id = id;
            Mode = mode;
            Name = name;
            Vdomparam = vdomparam;
        }
    }
}
