// *** 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
{
    /// <summary>
    /// Configure ICAP profiles.
    /// 
    /// ## Example Usage
    /// 
    /// ```csharp
    /// using System.Collections.Generic;
    /// using System.Linq;
    /// using Pulumi;
    /// using Fortios = Pulumiverse.Fortios;
    /// 
    /// return await Deployment.RunAsync(() =&gt; 
    /// {
    ///     var trname = new Fortios.IcapProfile("trname", new()
    ///     {
    ///         IcapHeaders = new[]
    ///         {
    ///             new Fortios.Inputs.IcapProfileIcapHeaderArgs
    ///             {
    ///                 Base64Encoding = "disable",
    ///                 Content = "$user",
    ///                 Name = "X-Authenticated-User",
    ///             },
    ///         },
    ///         Methods = "delete get head options post put trace other",
    ///         Request = "disable",
    ///         RequestFailure = "error",
    ///         Response = "disable",
    ///         ResponseFailure = "error",
    ///         ResponseReqHdr = "disable",
    ///         StreamingContentBypass = "disable",
    ///     });
    /// 
    /// });
    /// ```
    /// 
    /// ## Import
    /// 
    /// Icap Profile can be imported using any of these accepted formats
    /// 
    /// ```sh
    ///  $ pulumi import fortios:index/icapProfile:IcapProfile labelname {{name}}
    /// ```
    /// 
    ///  If you do not want to import arguments of block$ export "FORTIOS_IMPORT_TABLE"="false"
    /// 
    /// ```sh
    ///  $ pulumi import fortios:index/icapProfile:IcapProfile labelname {{name}}
    /// ```
    /// 
    ///  $ unset "FORTIOS_IMPORT_TABLE"
    /// </summary>
    [FortiosResourceType("fortios:index/icapProfile:IcapProfile")]
    public partial class IcapProfile : global::Pulumi.CustomResource
    {
        /// <summary>
        /// Enable/disable chunked encapsulation (default = disable). Valid values: `disable`, `enable`.
        /// </summary>
        [Output("chunkEncap")]
        public Output<string> ChunkEncap { get; private set; } = null!;

        /// <summary>
        /// Sort sub-tables, please do not set this parameter when configuring static sub-tables. Options: [ false, true, natural, alphabetical ]. false: Default value, do not sort tables; true/natural: sort tables in natural order. For example: [ a10, a2 ] -&gt; [ a2, a10 ]; alphabetical: sort tables in alphabetical order. For example: [ a10, a2 ] -&gt; [ a10, a2 ].
        /// </summary>
        [Output("dynamicSortSubtable")]
        public Output<string?> DynamicSortSubtable { get; private set; } = null!;

        /// <summary>
        /// Enable/disable ICAP extension features. Valid values: `scan-progress`.
        /// </summary>
        [Output("extensionFeature")]
        public Output<string> ExtensionFeature { get; private set; } = null!;

        /// <summary>
        /// Configure the file transfer protocols to pass transferred files to an ICAP server as REQMOD. Valid values: `ssh`, `ftp`.
        /// </summary>
        [Output("fileTransfer")]
        public Output<string> FileTransfer { get; private set; } = null!;

        /// <summary>
        /// Action to take if the ICAP server cannot be contacted when processing a file transfer. Valid values: `error`, `bypass`.
        /// </summary>
        [Output("fileTransferFailure")]
        public Output<string> FileTransferFailure { get; private set; } = null!;

        /// <summary>
        /// Path component of the ICAP URI that identifies the file transfer processing service.
        /// </summary>
        [Output("fileTransferPath")]
        public Output<string> FileTransferPath { get; private set; } = null!;

        /// <summary>
        /// ICAP server to use for a file transfer.
        /// </summary>
        [Output("fileTransferServer")]
        public Output<string> FileTransferServer { get; private set; } = null!;

        /// <summary>
        /// Enable/disable UTM log when infection found (default = disable). Valid values: `disable`, `enable`.
        /// </summary>
        [Output("icapBlockLog")]
        public Output<string> IcapBlockLog { get; private set; } = null!;

        /// <summary>
        /// Configure ICAP forwarded request headers. The structure of `icap_headers` block is documented below.
        /// </summary>
        [Output("icapHeaders")]
        public Output<ImmutableArray<Outputs.IcapProfileIcapHeader>> IcapHeaders { get; private set; } = null!;

        /// <summary>
        /// The allowed HTTP methods that will be sent to ICAP server for further processing.
        /// </summary>
        [Output("methods")]
        public Output<string> Methods { get; private set; } = null!;

        /// <summary>
        /// Enable/disable allowance of 204 response from ICAP server. Valid values: `disable`, `enable`.
        /// </summary>
        [Output("n204Response")]
        public Output<string> N204Response { get; private set; } = null!;

        /// <summary>
        /// 204 response size limit to be saved by ICAP client in megabytes (1 - 10, default = 1 MB).
        /// </summary>
        [Output("n204SizeLimit")]
        public Output<int> N204SizeLimit { get; private set; } = null!;

        /// <summary>
        /// ICAP profile name.
        /// </summary>
        [Output("name")]
        public Output<string> Name { get; private set; } = null!;

        /// <summary>
        /// Enable/disable preview of data to ICAP server. Valid values: `disable`, `enable`.
        /// </summary>
        [Output("preview")]
        public Output<string> Preview { get; private set; } = null!;

        /// <summary>
        /// Preview data length to be sent to ICAP server.
        /// </summary>
        [Output("previewDataLength")]
        public Output<int> PreviewDataLength { get; private set; } = null!;

        /// <summary>
        /// Replacement message group.
        /// </summary>
        [Output("replacemsgGroup")]
        public Output<string> ReplacemsgGroup { get; private set; } = null!;

        /// <summary>
        /// Enable/disable whether an HTTP request is passed to an ICAP server. Valid values: `disable`, `enable`.
        /// </summary>
        [Output("request")]
        public Output<string> Request { get; private set; } = null!;

        /// <summary>
        /// Action to take if the ICAP server cannot be contacted when processing an HTTP request. Valid values: `error`, `bypass`.
        /// </summary>
        [Output("requestFailure")]
        public Output<string> RequestFailure { get; private set; } = null!;

        /// <summary>
        /// Path component of the ICAP URI that identifies the HTTP request processing service.
        /// </summary>
        [Output("requestPath")]
        public Output<string> RequestPath { get; private set; } = null!;

        /// <summary>
        /// ICAP server to use for an HTTP request.
        /// </summary>
        [Output("requestServer")]
        public Output<string> RequestServer { get; private set; } = null!;

        /// <summary>
        /// Default action to ICAP response modification (respmod) processing. Valid values: `forward`, `bypass`.
        /// </summary>
        [Output("respmodDefaultAction")]
        public Output<string> RespmodDefaultAction { get; private set; } = null!;

        /// <summary>
        /// ICAP response mode forward rules. The structure of `respmod_forward_rules` block is documented below.
        /// </summary>
        [Output("respmodForwardRules")]
        public Output<ImmutableArray<Outputs.IcapProfileRespmodForwardRule>> RespmodForwardRules { get; private set; } = null!;

        /// <summary>
        /// Enable/disable whether an HTTP response is passed to an ICAP server. Valid values: `disable`, `enable`.
        /// </summary>
        [Output("response")]
        public Output<string> Response { get; private set; } = null!;

        /// <summary>
        /// Action to take if the ICAP server cannot be contacted when processing an HTTP response. Valid values: `error`, `bypass`.
        /// </summary>
        [Output("responseFailure")]
        public Output<string> ResponseFailure { get; private set; } = null!;

        /// <summary>
        /// Path component of the ICAP URI that identifies the HTTP response processing service.
        /// </summary>
        [Output("responsePath")]
        public Output<string> ResponsePath { get; private set; } = null!;

        /// <summary>
        /// Enable/disable addition of req-hdr for ICAP response modification (respmod) processing. Valid values: `disable`, `enable`.
        /// </summary>
        [Output("responseReqHdr")]
        public Output<string> ResponseReqHdr { get; private set; } = null!;

        /// <summary>
        /// ICAP server to use for an HTTP response.
        /// </summary>
        [Output("responseServer")]
        public Output<string> ResponseServer { get; private set; } = null!;

        /// <summary>
        /// Scan progress interval value.
        /// </summary>
        [Output("scanProgressInterval")]
        public Output<int> ScanProgressInterval { get; private set; } = null!;

        /// <summary>
        /// Enable/disable bypassing of ICAP server for streaming content. Valid values: `disable`, `enable`.
        /// </summary>
        [Output("streamingContentBypass")]
        public Output<string> StreamingContentBypass { get; private set; } = null!;

        /// <summary>
        /// Time (in seconds) that ICAP client waits for the response from ICAP server.
        /// </summary>
        [Output("timeout")]
        public Output<int> Timeout { get; private set; } = null!;

        /// <summary>
        /// Specifies the vdom to which the resource 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>
        [Output("vdomparam")]
        public Output<string?> Vdomparam { get; private set; } = null!;


        /// <summary>
        /// Create a IcapProfile resource with the given unique name, arguments, and options.
        /// </summary>
        ///
        /// <param name="name">The unique name of the resource</param>
        /// <param name="args">The arguments used to populate this resource's properties</param>
        /// <param name="options">A bag of options that control this resource's behavior</param>
        public IcapProfile(string name, IcapProfileArgs? args = null, CustomResourceOptions? options = null)
            : base("fortios:index/icapProfile:IcapProfile", name, args ?? new IcapProfileArgs(), MakeResourceOptions(options, ""))
        {
        }

        private IcapProfile(string name, Input<string> id, IcapProfileState? state = null, CustomResourceOptions? options = null)
            : base("fortios:index/icapProfile:IcapProfile", name, state, MakeResourceOptions(options, id))
        {
        }

        private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
        {
            var defaultOptions = new CustomResourceOptions
            {
                Version = Utilities.Version,
                PluginDownloadURL = "github://api.github.com/pulumiverse/pulumi-fortios",
            };
            var merged = CustomResourceOptions.Merge(defaultOptions, options);
            // Override the ID if one was specified for consistency with other language SDKs.
            merged.Id = id ?? merged.Id;
            return merged;
        }
        /// <summary>
        /// Get an existing IcapProfile resource's state with the given name, ID, and optional extra
        /// properties used to qualify the lookup.
        /// </summary>
        ///
        /// <param name="name">The unique name of the resulting resource.</param>
        /// <param name="id">The unique provider ID of the resource to lookup.</param>
        /// <param name="state">Any extra arguments used during the lookup.</param>
        /// <param name="options">A bag of options that control this resource's behavior</param>
        public static IcapProfile Get(string name, Input<string> id, IcapProfileState? state = null, CustomResourceOptions? options = null)
        {
            return new IcapProfile(name, id, state, options);
        }
    }

    public sealed class IcapProfileArgs : global::Pulumi.ResourceArgs
    {
        /// <summary>
        /// Enable/disable chunked encapsulation (default = disable). Valid values: `disable`, `enable`.
        /// </summary>
        [Input("chunkEncap")]
        public Input<string>? ChunkEncap { get; set; }

        /// <summary>
        /// Sort sub-tables, please do not set this parameter when configuring static sub-tables. Options: [ false, true, natural, alphabetical ]. false: Default value, do not sort tables; true/natural: sort tables in natural order. For example: [ a10, a2 ] -&gt; [ a2, a10 ]; alphabetical: sort tables in alphabetical order. For example: [ a10, a2 ] -&gt; [ a10, a2 ].
        /// </summary>
        [Input("dynamicSortSubtable")]
        public Input<string>? DynamicSortSubtable { get; set; }

        /// <summary>
        /// Enable/disable ICAP extension features. Valid values: `scan-progress`.
        /// </summary>
        [Input("extensionFeature")]
        public Input<string>? ExtensionFeature { get; set; }

        /// <summary>
        /// Configure the file transfer protocols to pass transferred files to an ICAP server as REQMOD. Valid values: `ssh`, `ftp`.
        /// </summary>
        [Input("fileTransfer")]
        public Input<string>? FileTransfer { get; set; }

        /// <summary>
        /// Action to take if the ICAP server cannot be contacted when processing a file transfer. Valid values: `error`, `bypass`.
        /// </summary>
        [Input("fileTransferFailure")]
        public Input<string>? FileTransferFailure { get; set; }

        /// <summary>
        /// Path component of the ICAP URI that identifies the file transfer processing service.
        /// </summary>
        [Input("fileTransferPath")]
        public Input<string>? FileTransferPath { get; set; }

        /// <summary>
        /// ICAP server to use for a file transfer.
        /// </summary>
        [Input("fileTransferServer")]
        public Input<string>? FileTransferServer { get; set; }

        /// <summary>
        /// Enable/disable UTM log when infection found (default = disable). Valid values: `disable`, `enable`.
        /// </summary>
        [Input("icapBlockLog")]
        public Input<string>? IcapBlockLog { get; set; }

        [Input("icapHeaders")]
        private InputList<Inputs.IcapProfileIcapHeaderArgs>? _icapHeaders;

        /// <summary>
        /// Configure ICAP forwarded request headers. The structure of `icap_headers` block is documented below.
        /// </summary>
        public InputList<Inputs.IcapProfileIcapHeaderArgs> IcapHeaders
        {
            get => _icapHeaders ?? (_icapHeaders = new InputList<Inputs.IcapProfileIcapHeaderArgs>());
            set => _icapHeaders = value;
        }

        /// <summary>
        /// The allowed HTTP methods that will be sent to ICAP server for further processing.
        /// </summary>
        [Input("methods")]
        public Input<string>? Methods { get; set; }

        /// <summary>
        /// Enable/disable allowance of 204 response from ICAP server. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("n204Response")]
        public Input<string>? N204Response { get; set; }

        /// <summary>
        /// 204 response size limit to be saved by ICAP client in megabytes (1 - 10, default = 1 MB).
        /// </summary>
        [Input("n204SizeLimit")]
        public Input<int>? N204SizeLimit { get; set; }

        /// <summary>
        /// ICAP profile name.
        /// </summary>
        [Input("name")]
        public Input<string>? Name { get; set; }

        /// <summary>
        /// Enable/disable preview of data to ICAP server. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("preview")]
        public Input<string>? Preview { get; set; }

        /// <summary>
        /// Preview data length to be sent to ICAP server.
        /// </summary>
        [Input("previewDataLength")]
        public Input<int>? PreviewDataLength { get; set; }

        /// <summary>
        /// Replacement message group.
        /// </summary>
        [Input("replacemsgGroup")]
        public Input<string>? ReplacemsgGroup { get; set; }

        /// <summary>
        /// Enable/disable whether an HTTP request is passed to an ICAP server. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("request")]
        public Input<string>? Request { get; set; }

        /// <summary>
        /// Action to take if the ICAP server cannot be contacted when processing an HTTP request. Valid values: `error`, `bypass`.
        /// </summary>
        [Input("requestFailure")]
        public Input<string>? RequestFailure { get; set; }

        /// <summary>
        /// Path component of the ICAP URI that identifies the HTTP request processing service.
        /// </summary>
        [Input("requestPath")]
        public Input<string>? RequestPath { get; set; }

        /// <summary>
        /// ICAP server to use for an HTTP request.
        /// </summary>
        [Input("requestServer")]
        public Input<string>? RequestServer { get; set; }

        /// <summary>
        /// Default action to ICAP response modification (respmod) processing. Valid values: `forward`, `bypass`.
        /// </summary>
        [Input("respmodDefaultAction")]
        public Input<string>? RespmodDefaultAction { get; set; }

        [Input("respmodForwardRules")]
        private InputList<Inputs.IcapProfileRespmodForwardRuleArgs>? _respmodForwardRules;

        /// <summary>
        /// ICAP response mode forward rules. The structure of `respmod_forward_rules` block is documented below.
        /// </summary>
        public InputList<Inputs.IcapProfileRespmodForwardRuleArgs> RespmodForwardRules
        {
            get => _respmodForwardRules ?? (_respmodForwardRules = new InputList<Inputs.IcapProfileRespmodForwardRuleArgs>());
            set => _respmodForwardRules = value;
        }

        /// <summary>
        /// Enable/disable whether an HTTP response is passed to an ICAP server. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("response")]
        public Input<string>? Response { get; set; }

        /// <summary>
        /// Action to take if the ICAP server cannot be contacted when processing an HTTP response. Valid values: `error`, `bypass`.
        /// </summary>
        [Input("responseFailure")]
        public Input<string>? ResponseFailure { get; set; }

        /// <summary>
        /// Path component of the ICAP URI that identifies the HTTP response processing service.
        /// </summary>
        [Input("responsePath")]
        public Input<string>? ResponsePath { get; set; }

        /// <summary>
        /// Enable/disable addition of req-hdr for ICAP response modification (respmod) processing. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("responseReqHdr")]
        public Input<string>? ResponseReqHdr { get; set; }

        /// <summary>
        /// ICAP server to use for an HTTP response.
        /// </summary>
        [Input("responseServer")]
        public Input<string>? ResponseServer { get; set; }

        /// <summary>
        /// Scan progress interval value.
        /// </summary>
        [Input("scanProgressInterval")]
        public Input<int>? ScanProgressInterval { get; set; }

        /// <summary>
        /// Enable/disable bypassing of ICAP server for streaming content. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("streamingContentBypass")]
        public Input<string>? StreamingContentBypass { get; set; }

        /// <summary>
        /// Time (in seconds) that ICAP client waits for the response from ICAP server.
        /// </summary>
        [Input("timeout")]
        public Input<int>? Timeout { get; set; }

        /// <summary>
        /// Specifies the vdom to which the resource 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 IcapProfileArgs()
        {
        }
        public static new IcapProfileArgs Empty => new IcapProfileArgs();
    }

    public sealed class IcapProfileState : global::Pulumi.ResourceArgs
    {
        /// <summary>
        /// Enable/disable chunked encapsulation (default = disable). Valid values: `disable`, `enable`.
        /// </summary>
        [Input("chunkEncap")]
        public Input<string>? ChunkEncap { get; set; }

        /// <summary>
        /// Sort sub-tables, please do not set this parameter when configuring static sub-tables. Options: [ false, true, natural, alphabetical ]. false: Default value, do not sort tables; true/natural: sort tables in natural order. For example: [ a10, a2 ] -&gt; [ a2, a10 ]; alphabetical: sort tables in alphabetical order. For example: [ a10, a2 ] -&gt; [ a10, a2 ].
        /// </summary>
        [Input("dynamicSortSubtable")]
        public Input<string>? DynamicSortSubtable { get; set; }

        /// <summary>
        /// Enable/disable ICAP extension features. Valid values: `scan-progress`.
        /// </summary>
        [Input("extensionFeature")]
        public Input<string>? ExtensionFeature { get; set; }

        /// <summary>
        /// Configure the file transfer protocols to pass transferred files to an ICAP server as REQMOD. Valid values: `ssh`, `ftp`.
        /// </summary>
        [Input("fileTransfer")]
        public Input<string>? FileTransfer { get; set; }

        /// <summary>
        /// Action to take if the ICAP server cannot be contacted when processing a file transfer. Valid values: `error`, `bypass`.
        /// </summary>
        [Input("fileTransferFailure")]
        public Input<string>? FileTransferFailure { get; set; }

        /// <summary>
        /// Path component of the ICAP URI that identifies the file transfer processing service.
        /// </summary>
        [Input("fileTransferPath")]
        public Input<string>? FileTransferPath { get; set; }

        /// <summary>
        /// ICAP server to use for a file transfer.
        /// </summary>
        [Input("fileTransferServer")]
        public Input<string>? FileTransferServer { get; set; }

        /// <summary>
        /// Enable/disable UTM log when infection found (default = disable). Valid values: `disable`, `enable`.
        /// </summary>
        [Input("icapBlockLog")]
        public Input<string>? IcapBlockLog { get; set; }

        [Input("icapHeaders")]
        private InputList<Inputs.IcapProfileIcapHeaderGetArgs>? _icapHeaders;

        /// <summary>
        /// Configure ICAP forwarded request headers. The structure of `icap_headers` block is documented below.
        /// </summary>
        public InputList<Inputs.IcapProfileIcapHeaderGetArgs> IcapHeaders
        {
            get => _icapHeaders ?? (_icapHeaders = new InputList<Inputs.IcapProfileIcapHeaderGetArgs>());
            set => _icapHeaders = value;
        }

        /// <summary>
        /// The allowed HTTP methods that will be sent to ICAP server for further processing.
        /// </summary>
        [Input("methods")]
        public Input<string>? Methods { get; set; }

        /// <summary>
        /// Enable/disable allowance of 204 response from ICAP server. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("n204Response")]
        public Input<string>? N204Response { get; set; }

        /// <summary>
        /// 204 response size limit to be saved by ICAP client in megabytes (1 - 10, default = 1 MB).
        /// </summary>
        [Input("n204SizeLimit")]
        public Input<int>? N204SizeLimit { get; set; }

        /// <summary>
        /// ICAP profile name.
        /// </summary>
        [Input("name")]
        public Input<string>? Name { get; set; }

        /// <summary>
        /// Enable/disable preview of data to ICAP server. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("preview")]
        public Input<string>? Preview { get; set; }

        /// <summary>
        /// Preview data length to be sent to ICAP server.
        /// </summary>
        [Input("previewDataLength")]
        public Input<int>? PreviewDataLength { get; set; }

        /// <summary>
        /// Replacement message group.
        /// </summary>
        [Input("replacemsgGroup")]
        public Input<string>? ReplacemsgGroup { get; set; }

        /// <summary>
        /// Enable/disable whether an HTTP request is passed to an ICAP server. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("request")]
        public Input<string>? Request { get; set; }

        /// <summary>
        /// Action to take if the ICAP server cannot be contacted when processing an HTTP request. Valid values: `error`, `bypass`.
        /// </summary>
        [Input("requestFailure")]
        public Input<string>? RequestFailure { get; set; }

        /// <summary>
        /// Path component of the ICAP URI that identifies the HTTP request processing service.
        /// </summary>
        [Input("requestPath")]
        public Input<string>? RequestPath { get; set; }

        /// <summary>
        /// ICAP server to use for an HTTP request.
        /// </summary>
        [Input("requestServer")]
        public Input<string>? RequestServer { get; set; }

        /// <summary>
        /// Default action to ICAP response modification (respmod) processing. Valid values: `forward`, `bypass`.
        /// </summary>
        [Input("respmodDefaultAction")]
        public Input<string>? RespmodDefaultAction { get; set; }

        [Input("respmodForwardRules")]
        private InputList<Inputs.IcapProfileRespmodForwardRuleGetArgs>? _respmodForwardRules;

        /// <summary>
        /// ICAP response mode forward rules. The structure of `respmod_forward_rules` block is documented below.
        /// </summary>
        public InputList<Inputs.IcapProfileRespmodForwardRuleGetArgs> RespmodForwardRules
        {
            get => _respmodForwardRules ?? (_respmodForwardRules = new InputList<Inputs.IcapProfileRespmodForwardRuleGetArgs>());
            set => _respmodForwardRules = value;
        }

        /// <summary>
        /// Enable/disable whether an HTTP response is passed to an ICAP server. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("response")]
        public Input<string>? Response { get; set; }

        /// <summary>
        /// Action to take if the ICAP server cannot be contacted when processing an HTTP response. Valid values: `error`, `bypass`.
        /// </summary>
        [Input("responseFailure")]
        public Input<string>? ResponseFailure { get; set; }

        /// <summary>
        /// Path component of the ICAP URI that identifies the HTTP response processing service.
        /// </summary>
        [Input("responsePath")]
        public Input<string>? ResponsePath { get; set; }

        /// <summary>
        /// Enable/disable addition of req-hdr for ICAP response modification (respmod) processing. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("responseReqHdr")]
        public Input<string>? ResponseReqHdr { get; set; }

        /// <summary>
        /// ICAP server to use for an HTTP response.
        /// </summary>
        [Input("responseServer")]
        public Input<string>? ResponseServer { get; set; }

        /// <summary>
        /// Scan progress interval value.
        /// </summary>
        [Input("scanProgressInterval")]
        public Input<int>? ScanProgressInterval { get; set; }

        /// <summary>
        /// Enable/disable bypassing of ICAP server for streaming content. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("streamingContentBypass")]
        public Input<string>? StreamingContentBypass { get; set; }

        /// <summary>
        /// Time (in seconds) that ICAP client waits for the response from ICAP server.
        /// </summary>
        [Input("timeout")]
        public Input<int>? Timeout { get; set; }

        /// <summary>
        /// Specifies the vdom to which the resource 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 IcapProfileState()
        {
        }
        public static new IcapProfileState Empty => new IcapProfileState();
    }
}
