<filename>sdk/dotnet/GetSystemNtp.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 GetSystemNtp
    {
        /// <summary>
        /// Use this data source to get information on fortios system ntp
        /// </summary>
        public static Task<GetSystemNtpResult> InvokeAsync(GetSystemNtpArgs? args = null, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetSystemNtpResult>("fortios:index/getSystemNtp:getSystemNtp", args ?? new GetSystemNtpArgs(), options.WithDefaults());

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


    public sealed class GetSystemNtpArgs : global::Pulumi.InvokeArgs
    {
        /// <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 GetSystemNtpArgs()
        {
        }
        public static new GetSystemNtpArgs Empty => new GetSystemNtpArgs();
    }

    public sealed class GetSystemNtpInvokeArgs : global::Pulumi.InvokeArgs
    {
        /// <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 GetSystemNtpInvokeArgs()
        {
        }
        public static new GetSystemNtpInvokeArgs Empty => new GetSystemNtpInvokeArgs();
    }


    [OutputType]
    public sealed class GetSystemNtpResult
    {
        /// <summary>
        /// Enable/disable MD5/SHA1 authentication.
        /// </summary>
        public readonly string Authentication;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// Specify outgoing interface to reach server.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetSystemNtpInterfaceResult> Interfaces;
        /// <summary>
        /// Key for MD5/SHA1 authentication.
        /// </summary>
        public readonly string Key;
        /// <summary>
        /// Key ID for authentication.
        /// </summary>
        public readonly int KeyId;
        /// <summary>
        /// Key type for authentication (MD5, SHA1).
        /// </summary>
        public readonly string KeyType;
        /// <summary>
        /// Configure the FortiGate to connect to any available third-party NTP server. The structure of `ntpserver` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetSystemNtpNtpserverResult> Ntpservers;
        /// <summary>
        /// Enable/disable setting the FortiGate system time by synchronizing with an NTP Server.
        /// </summary>
        public readonly string Ntpsync;
        /// <summary>
        /// Enable/disable FortiGate NTP Server Mode. Your FortiGate becomes an NTP server for other devices on your network. The FortiGate relays NTP requests to its configured NTP server.
        /// </summary>
        public readonly string ServerMode;
        /// <summary>
        /// Source IP address for communication to the NTP server.
        /// </summary>
        public readonly string SourceIp;
        /// <summary>
        /// Source IPv6 address for communication to the NTP server.
        /// </summary>
        public readonly string SourceIp6;
        /// <summary>
        /// NTP synchronization interval (1 - 1440 min).
        /// </summary>
        public readonly int Syncinterval;
        /// <summary>
        /// Use the FortiGuard NTP server or any other available NTP Server.
        /// </summary>
        public readonly string Type;
        public readonly string? Vdomparam;

        [OutputConstructor]
        private GetSystemNtpResult(
            string authentication,

            string id,

            ImmutableArray<Outputs.GetSystemNtpInterfaceResult> interfaces,

            string key,

            int keyId,

            string keyType,

            ImmutableArray<Outputs.GetSystemNtpNtpserverResult> ntpservers,

            string ntpsync,

            string serverMode,

            string sourceIp,

            string sourceIp6,

            int syncinterval,

            string type,

            string? vdomparam)
        {
            Authentication = authentication;
            Id = id;
            Interfaces = interfaces;
            Key = key;
            KeyId = keyId;
            KeyType = keyType;
            Ntpservers = ntpservers;
            Ntpsync = ntpsync;
            ServerMode = serverMode;
            SourceIp = sourceIp;
            SourceIp6 = sourceIp6;
            Syncinterval = syncinterval;
            Type = type;
            Vdomparam = vdomparam;
        }
    }
}
