<reponame>pulumiverse/pulumi-fortios<gh_stars>0// *** 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 GetFirewallProfileprotocoloptions
    {
        /// <summary>
        /// Use this data source to get information on an fortios firewall profileprotocoloptions
        /// </summary>
        public static Task<GetFirewallProfileprotocoloptionsResult> InvokeAsync(GetFirewallProfileprotocoloptionsArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetFirewallProfileprotocoloptionsResult>("fortios:index/getFirewallProfileprotocoloptions:getFirewallProfileprotocoloptions", args ?? new GetFirewallProfileprotocoloptionsArgs(), options.WithDefaults());

        /// <summary>
        /// Use this data source to get information on an fortios firewall profileprotocoloptions
        /// </summary>
        public static Output<GetFirewallProfileprotocoloptionsResult> Invoke(GetFirewallProfileprotocoloptionsInvokeArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.Invoke<GetFirewallProfileprotocoloptionsResult>("fortios:index/getFirewallProfileprotocoloptions:getFirewallProfileprotocoloptions", args ?? new GetFirewallProfileprotocoloptionsInvokeArgs(), options.WithDefaults());
    }


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

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


    [OutputType]
    public sealed class GetFirewallProfileprotocoloptionsResult
    {
        /// <summary>
        /// Configure CIFS protocol options. The structure of `cifs` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallProfileprotocoloptionsCifResult> Cifs;
        /// <summary>
        /// Optional comments.
        /// </summary>
        public readonly string Comment;
        /// <summary>
        /// Configure DNS protocol options. The structure of `dns` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallProfileprotocoloptionsDnResult> Dns;
        /// <summary>
        /// Flow/proxy feature set.
        /// </summary>
        public readonly string FeatureSet;
        /// <summary>
        /// Configure FTP protocol options. The structure of `ftp` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallProfileprotocoloptionsFtpResult> Ftps;
        /// <summary>
        /// Configure HTTP protocol options. The structure of `http` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallProfileprotocoloptionsHttpResult> Https;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// Configure IMAP protocol options. The structure of `imap` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallProfileprotocoloptionsImapResult> Imaps;
        /// <summary>
        /// Configure Mail signature. The structure of `mail_signature` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallProfileprotocoloptionsMailSignatureResult> MailSignatures;
        /// <summary>
        /// Configure MAPI protocol options. The structure of `mapi` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallProfileprotocoloptionsMapiResult> Mapis;
        /// <summary>
        /// Name.
        /// </summary>
        public readonly string Name;
        /// <summary>
        /// Configure NNTP protocol options. The structure of `nntp` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallProfileprotocoloptionsNntpResult> Nntps;
        /// <summary>
        /// Enable/disable logging for antivirus oversize file blocking.
        /// </summary>
        public readonly string OversizeLog;
        /// <summary>
        /// Configure POP3 protocol options. The structure of `pop3` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallProfileprotocoloptionsPop3Result> Pop3s;
        /// <summary>
        /// Name of the replacement message group to be used
        /// </summary>
        public readonly string ReplacemsgGroup;
        /// <summary>
        /// Enable/disable inspection of RPC over HTTP.
        /// </summary>
        public readonly string RpcOverHttp;
        /// <summary>
        /// Configure SMTP protocol options. The structure of `smtp` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallProfileprotocoloptionsSmtpResult> Smtps;
        /// <summary>
        /// Configure SFTP and SCP protocol options. The structure of `ssh` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallProfileprotocoloptionsSshResult> Sshes;
        /// <summary>
        /// Enable/disable logging for HTTP/HTTPS switching protocols.
        /// </summary>
        public readonly string SwitchingProtocolsLog;
        public readonly string? Vdomparam;

        [OutputConstructor]
        private GetFirewallProfileprotocoloptionsResult(
            ImmutableArray<Outputs.GetFirewallProfileprotocoloptionsCifResult> cifs,

            string comment,

            ImmutableArray<Outputs.GetFirewallProfileprotocoloptionsDnResult> dns,

            string featureSet,

            ImmutableArray<Outputs.GetFirewallProfileprotocoloptionsFtpResult> ftps,

            ImmutableArray<Outputs.GetFirewallProfileprotocoloptionsHttpResult> https,

            string id,

            ImmutableArray<Outputs.GetFirewallProfileprotocoloptionsImapResult> imaps,

            ImmutableArray<Outputs.GetFirewallProfileprotocoloptionsMailSignatureResult> mailSignatures,

            ImmutableArray<Outputs.GetFirewallProfileprotocoloptionsMapiResult> mapis,

            string name,

            ImmutableArray<Outputs.GetFirewallProfileprotocoloptionsNntpResult> nntps,

            string oversizeLog,

            ImmutableArray<Outputs.GetFirewallProfileprotocoloptionsPop3Result> pop3s,

            string replacemsgGroup,

            string rpcOverHttp,

            ImmutableArray<Outputs.GetFirewallProfileprotocoloptionsSmtpResult> smtps,

            ImmutableArray<Outputs.GetFirewallProfileprotocoloptionsSshResult> sshes,

            string switchingProtocolsLog,

            string? vdomparam)
        {
            Cifs = cifs;
            Comment = comment;
            Dns = dns;
            FeatureSet = featureSet;
            Ftps = ftps;
            Https = https;
            Id = id;
            Imaps = imaps;
            MailSignatures = mailSignatures;
            Mapis = mapis;
            Name = name;
            Nntps = nntps;
            OversizeLog = oversizeLog;
            Pop3s = pop3s;
            ReplacemsgGroup = replacemsgGroup;
            RpcOverHttp = rpcOverHttp;
            Smtps = smtps;
            Sshes = sshes;
            SwitchingProtocolsLog = switchingProtocolsLog;
            Vdomparam = vdomparam;
        }
    }
}
