# coding=utf-8
# *** WARNING: this file was generated by pulumi-language-python. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import builtins as _builtins
import warnings
import sys
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
if sys.version_info >= (3, 11):
    from typing import NotRequired, TypedDict, TypeAlias
else:
    from typing_extensions import NotRequired, TypedDict, TypeAlias
from .. import _utilities

__all__ = ['ProfileFastHttpArgs', 'ProfileFastHttp']

@pulumi.input_type
class ProfileFastHttpArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 connpool_maxreuse: Optional[pulumi.Input[_builtins.int]] = None,
                 connpool_maxsize: Optional[pulumi.Input[_builtins.int]] = None,
                 connpool_minsize: Optional[pulumi.Input[_builtins.int]] = None,
                 connpool_replenish: Optional[pulumi.Input[_builtins.str]] = None,
                 connpool_step: Optional[pulumi.Input[_builtins.int]] = None,
                 connpoolidle_timeoutoverride: Optional[pulumi.Input[_builtins.int]] = None,
                 defaults_from: Optional[pulumi.Input[_builtins.str]] = None,
                 forcehttp10response: Optional[pulumi.Input[_builtins.str]] = None,
                 idle_timeout: Optional[pulumi.Input[_builtins.int]] = None,
                 maxheader_size: Optional[pulumi.Input[_builtins.int]] = None):
        """
        The set of arguments for constructing a ProfileFastHttp resource.
        :param pulumi.Input[_builtins.str] name: Name of the profile_fasthttp
        :param pulumi.Input[_builtins.int] connpool_maxreuse: Specifies the maximum number of times that the system can re-use a current connection. The default value is 0 (zero).
        :param pulumi.Input[_builtins.int] connpool_maxsize: Specifies the maximum number of connections to a load balancing pool. A setting of 0 specifies that a pool can accept an unlimited number of connections. The default value is 2048.
        :param pulumi.Input[_builtins.int] connpool_minsize: Specifies the minimum number of connections to a load balancing pool. A setting of 0 specifies that there is no minimum. The default value is 10.
        :param pulumi.Input[_builtins.str] connpool_replenish: The default value is enabled. When this option is enabled, the system replenishes the number of connections to a load balancing pool to the number of connections that existed when the server closed the connection to the pool. When disabled, the system replenishes the connection that was closed by the server, only when there are fewer connections to the pool than the number of connections set in the connpool-min-size connections option. Also see the connpool-min-size option..
        :param pulumi.Input[_builtins.int] connpool_step: Specifies the increment in which the system makes additional connections available, when all available connections are in use. The default value is 4.
        :param pulumi.Input[_builtins.int] connpoolidle_timeoutoverride: Specifies the number of seconds after which a server-side connection in a OneConnect pool is eligible for deletion, when the connection has no traffic.The value of this option overrides the idle-timeout value that you specify. The default value is 0 (zero) seconds, which disables the override setting.
        :param pulumi.Input[_builtins.str] defaults_from: Specifies the profile that you want to use as the parent profile. Your new profile inherits all settings and values from the parent profile specified.
        :param pulumi.Input[_builtins.str] forcehttp10response: Specifies whether to rewrite the HTTP version in the status line of the server to HTTP 1.0 to discourage the client from pipelining or chunking data. The default value is disabled.
        :param pulumi.Input[_builtins.int] idle_timeout: Specifies an idle timeout in seconds. This setting specifies the number of seconds that a connection is idle before the connection is eligible for deletion.When you specify an idle timeout for the Fast L4 profile, the value must be greater than the bigdb database variable Pva.Scrub time in msec for it to work properly.The default value is 300 seconds.
        :param pulumi.Input[_builtins.int] maxheader_size: Specifies the maximum amount of HTTP header data that the system buffers before making a load balancing decision. The default setting is 32768.
        """
        pulumi.set(__self__, "name", name)
        if connpool_maxreuse is not None:
            pulumi.set(__self__, "connpool_maxreuse", connpool_maxreuse)
        if connpool_maxsize is not None:
            pulumi.set(__self__, "connpool_maxsize", connpool_maxsize)
        if connpool_minsize is not None:
            pulumi.set(__self__, "connpool_minsize", connpool_minsize)
        if connpool_replenish is not None:
            pulumi.set(__self__, "connpool_replenish", connpool_replenish)
        if connpool_step is not None:
            pulumi.set(__self__, "connpool_step", connpool_step)
        if connpoolidle_timeoutoverride is not None:
            pulumi.set(__self__, "connpoolidle_timeoutoverride", connpoolidle_timeoutoverride)
        if defaults_from is not None:
            pulumi.set(__self__, "defaults_from", defaults_from)
        if forcehttp10response is not None:
            pulumi.set(__self__, "forcehttp10response", forcehttp10response)
        if idle_timeout is not None:
            pulumi.set(__self__, "idle_timeout", idle_timeout)
        if maxheader_size is not None:
            pulumi.set(__self__, "maxheader_size", maxheader_size)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the profile_fasthttp
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "name", value)

    @_builtins.property
    @pulumi.getter(name="connpoolMaxreuse")
    def connpool_maxreuse(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Specifies the maximum number of times that the system can re-use a current connection. The default value is 0 (zero).
        """
        return pulumi.get(self, "connpool_maxreuse")

    @connpool_maxreuse.setter
    def connpool_maxreuse(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "connpool_maxreuse", value)

    @_builtins.property
    @pulumi.getter(name="connpoolMaxsize")
    def connpool_maxsize(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Specifies the maximum number of connections to a load balancing pool. A setting of 0 specifies that a pool can accept an unlimited number of connections. The default value is 2048.
        """
        return pulumi.get(self, "connpool_maxsize")

    @connpool_maxsize.setter
    def connpool_maxsize(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "connpool_maxsize", value)

    @_builtins.property
    @pulumi.getter(name="connpoolMinsize")
    def connpool_minsize(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Specifies the minimum number of connections to a load balancing pool. A setting of 0 specifies that there is no minimum. The default value is 10.
        """
        return pulumi.get(self, "connpool_minsize")

    @connpool_minsize.setter
    def connpool_minsize(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "connpool_minsize", value)

    @_builtins.property
    @pulumi.getter(name="connpoolReplenish")
    def connpool_replenish(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The default value is enabled. When this option is enabled, the system replenishes the number of connections to a load balancing pool to the number of connections that existed when the server closed the connection to the pool. When disabled, the system replenishes the connection that was closed by the server, only when there are fewer connections to the pool than the number of connections set in the connpool-min-size connections option. Also see the connpool-min-size option..
        """
        return pulumi.get(self, "connpool_replenish")

    @connpool_replenish.setter
    def connpool_replenish(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "connpool_replenish", value)

    @_builtins.property
    @pulumi.getter(name="connpoolStep")
    def connpool_step(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Specifies the increment in which the system makes additional connections available, when all available connections are in use. The default value is 4.
        """
        return pulumi.get(self, "connpool_step")

    @connpool_step.setter
    def connpool_step(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "connpool_step", value)

    @_builtins.property
    @pulumi.getter(name="connpoolidleTimeoutoverride")
    def connpoolidle_timeoutoverride(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Specifies the number of seconds after which a server-side connection in a OneConnect pool is eligible for deletion, when the connection has no traffic.The value of this option overrides the idle-timeout value that you specify. The default value is 0 (zero) seconds, which disables the override setting.
        """
        return pulumi.get(self, "connpoolidle_timeoutoverride")

    @connpoolidle_timeoutoverride.setter
    def connpoolidle_timeoutoverride(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "connpoolidle_timeoutoverride", value)

    @_builtins.property
    @pulumi.getter(name="defaultsFrom")
    def defaults_from(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Specifies the profile that you want to use as the parent profile. Your new profile inherits all settings and values from the parent profile specified.
        """
        return pulumi.get(self, "defaults_from")

    @defaults_from.setter
    def defaults_from(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "defaults_from", value)

    @_builtins.property
    @pulumi.getter
    def forcehttp10response(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Specifies whether to rewrite the HTTP version in the status line of the server to HTTP 1.0 to discourage the client from pipelining or chunking data. The default value is disabled.
        """
        return pulumi.get(self, "forcehttp10response")

    @forcehttp10response.setter
    def forcehttp10response(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "forcehttp10response", value)

    @_builtins.property
    @pulumi.getter(name="idleTimeout")
    def idle_timeout(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Specifies an idle timeout in seconds. This setting specifies the number of seconds that a connection is idle before the connection is eligible for deletion.When you specify an idle timeout for the Fast L4 profile, the value must be greater than the bigdb database variable Pva.Scrub time in msec for it to work properly.The default value is 300 seconds.
        """
        return pulumi.get(self, "idle_timeout")

    @idle_timeout.setter
    def idle_timeout(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "idle_timeout", value)

    @_builtins.property
    @pulumi.getter(name="maxheaderSize")
    def maxheader_size(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Specifies the maximum amount of HTTP header data that the system buffers before making a load balancing decision. The default setting is 32768.
        """
        return pulumi.get(self, "maxheader_size")

    @maxheader_size.setter
    def maxheader_size(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "maxheader_size", value)


@pulumi.input_type
class _ProfileFastHttpState:
    def __init__(__self__, *,
                 connpool_maxreuse: Optional[pulumi.Input[_builtins.int]] = None,
                 connpool_maxsize: Optional[pulumi.Input[_builtins.int]] = None,
                 connpool_minsize: Optional[pulumi.Input[_builtins.int]] = None,
                 connpool_replenish: Optional[pulumi.Input[_builtins.str]] = None,
                 connpool_step: Optional[pulumi.Input[_builtins.int]] = None,
                 connpoolidle_timeoutoverride: Optional[pulumi.Input[_builtins.int]] = None,
                 defaults_from: Optional[pulumi.Input[_builtins.str]] = None,
                 forcehttp10response: Optional[pulumi.Input[_builtins.str]] = None,
                 idle_timeout: Optional[pulumi.Input[_builtins.int]] = None,
                 maxheader_size: Optional[pulumi.Input[_builtins.int]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        Input properties used for looking up and filtering ProfileFastHttp resources.
        :param pulumi.Input[_builtins.int] connpool_maxreuse: Specifies the maximum number of times that the system can re-use a current connection. The default value is 0 (zero).
        :param pulumi.Input[_builtins.int] connpool_maxsize: Specifies the maximum number of connections to a load balancing pool. A setting of 0 specifies that a pool can accept an unlimited number of connections. The default value is 2048.
        :param pulumi.Input[_builtins.int] connpool_minsize: Specifies the minimum number of connections to a load balancing pool. A setting of 0 specifies that there is no minimum. The default value is 10.
        :param pulumi.Input[_builtins.str] connpool_replenish: The default value is enabled. When this option is enabled, the system replenishes the number of connections to a load balancing pool to the number of connections that existed when the server closed the connection to the pool. When disabled, the system replenishes the connection that was closed by the server, only when there are fewer connections to the pool than the number of connections set in the connpool-min-size connections option. Also see the connpool-min-size option..
        :param pulumi.Input[_builtins.int] connpool_step: Specifies the increment in which the system makes additional connections available, when all available connections are in use. The default value is 4.
        :param pulumi.Input[_builtins.int] connpoolidle_timeoutoverride: Specifies the number of seconds after which a server-side connection in a OneConnect pool is eligible for deletion, when the connection has no traffic.The value of this option overrides the idle-timeout value that you specify. The default value is 0 (zero) seconds, which disables the override setting.
        :param pulumi.Input[_builtins.str] defaults_from: Specifies the profile that you want to use as the parent profile. Your new profile inherits all settings and values from the parent profile specified.
        :param pulumi.Input[_builtins.str] forcehttp10response: Specifies whether to rewrite the HTTP version in the status line of the server to HTTP 1.0 to discourage the client from pipelining or chunking data. The default value is disabled.
        :param pulumi.Input[_builtins.int] idle_timeout: Specifies an idle timeout in seconds. This setting specifies the number of seconds that a connection is idle before the connection is eligible for deletion.When you specify an idle timeout for the Fast L4 profile, the value must be greater than the bigdb database variable Pva.Scrub time in msec for it to work properly.The default value is 300 seconds.
        :param pulumi.Input[_builtins.int] maxheader_size: Specifies the maximum amount of HTTP header data that the system buffers before making a load balancing decision. The default setting is 32768.
        :param pulumi.Input[_builtins.str] name: Name of the profile_fasthttp
        """
        if connpool_maxreuse is not None:
            pulumi.set(__self__, "connpool_maxreuse", connpool_maxreuse)
        if connpool_maxsize is not None:
            pulumi.set(__self__, "connpool_maxsize", connpool_maxsize)
        if connpool_minsize is not None:
            pulumi.set(__self__, "connpool_minsize", connpool_minsize)
        if connpool_replenish is not None:
            pulumi.set(__self__, "connpool_replenish", connpool_replenish)
        if connpool_step is not None:
            pulumi.set(__self__, "connpool_step", connpool_step)
        if connpoolidle_timeoutoverride is not None:
            pulumi.set(__self__, "connpoolidle_timeoutoverride", connpoolidle_timeoutoverride)
        if defaults_from is not None:
            pulumi.set(__self__, "defaults_from", defaults_from)
        if forcehttp10response is not None:
            pulumi.set(__self__, "forcehttp10response", forcehttp10response)
        if idle_timeout is not None:
            pulumi.set(__self__, "idle_timeout", idle_timeout)
        if maxheader_size is not None:
            pulumi.set(__self__, "maxheader_size", maxheader_size)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter(name="connpoolMaxreuse")
    def connpool_maxreuse(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Specifies the maximum number of times that the system can re-use a current connection. The default value is 0 (zero).
        """
        return pulumi.get(self, "connpool_maxreuse")

    @connpool_maxreuse.setter
    def connpool_maxreuse(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "connpool_maxreuse", value)

    @_builtins.property
    @pulumi.getter(name="connpoolMaxsize")
    def connpool_maxsize(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Specifies the maximum number of connections to a load balancing pool. A setting of 0 specifies that a pool can accept an unlimited number of connections. The default value is 2048.
        """
        return pulumi.get(self, "connpool_maxsize")

    @connpool_maxsize.setter
    def connpool_maxsize(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "connpool_maxsize", value)

    @_builtins.property
    @pulumi.getter(name="connpoolMinsize")
    def connpool_minsize(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Specifies the minimum number of connections to a load balancing pool. A setting of 0 specifies that there is no minimum. The default value is 10.
        """
        return pulumi.get(self, "connpool_minsize")

    @connpool_minsize.setter
    def connpool_minsize(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "connpool_minsize", value)

    @_builtins.property
    @pulumi.getter(name="connpoolReplenish")
    def connpool_replenish(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The default value is enabled. When this option is enabled, the system replenishes the number of connections to a load balancing pool to the number of connections that existed when the server closed the connection to the pool. When disabled, the system replenishes the connection that was closed by the server, only when there are fewer connections to the pool than the number of connections set in the connpool-min-size connections option. Also see the connpool-min-size option..
        """
        return pulumi.get(self, "connpool_replenish")

    @connpool_replenish.setter
    def connpool_replenish(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "connpool_replenish", value)

    @_builtins.property
    @pulumi.getter(name="connpoolStep")
    def connpool_step(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Specifies the increment in which the system makes additional connections available, when all available connections are in use. The default value is 4.
        """
        return pulumi.get(self, "connpool_step")

    @connpool_step.setter
    def connpool_step(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "connpool_step", value)

    @_builtins.property
    @pulumi.getter(name="connpoolidleTimeoutoverride")
    def connpoolidle_timeoutoverride(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Specifies the number of seconds after which a server-side connection in a OneConnect pool is eligible for deletion, when the connection has no traffic.The value of this option overrides the idle-timeout value that you specify. The default value is 0 (zero) seconds, which disables the override setting.
        """
        return pulumi.get(self, "connpoolidle_timeoutoverride")

    @connpoolidle_timeoutoverride.setter
    def connpoolidle_timeoutoverride(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "connpoolidle_timeoutoverride", value)

    @_builtins.property
    @pulumi.getter(name="defaultsFrom")
    def defaults_from(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Specifies the profile that you want to use as the parent profile. Your new profile inherits all settings and values from the parent profile specified.
        """
        return pulumi.get(self, "defaults_from")

    @defaults_from.setter
    def defaults_from(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "defaults_from", value)

    @_builtins.property
    @pulumi.getter
    def forcehttp10response(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Specifies whether to rewrite the HTTP version in the status line of the server to HTTP 1.0 to discourage the client from pipelining or chunking data. The default value is disabled.
        """
        return pulumi.get(self, "forcehttp10response")

    @forcehttp10response.setter
    def forcehttp10response(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "forcehttp10response", value)

    @_builtins.property
    @pulumi.getter(name="idleTimeout")
    def idle_timeout(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Specifies an idle timeout in seconds. This setting specifies the number of seconds that a connection is idle before the connection is eligible for deletion.When you specify an idle timeout for the Fast L4 profile, the value must be greater than the bigdb database variable Pva.Scrub time in msec for it to work properly.The default value is 300 seconds.
        """
        return pulumi.get(self, "idle_timeout")

    @idle_timeout.setter
    def idle_timeout(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "idle_timeout", value)

    @_builtins.property
    @pulumi.getter(name="maxheaderSize")
    def maxheader_size(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Specifies the maximum amount of HTTP header data that the system buffers before making a load balancing decision. The default setting is 32768.
        """
        return pulumi.get(self, "maxheader_size")

    @maxheader_size.setter
    def maxheader_size(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "maxheader_size", value)

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the profile_fasthttp
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "name", value)


@pulumi.type_token("f5bigip:ltm/profileFastHttp:ProfileFastHttp")
class ProfileFastHttp(pulumi.CustomResource):
    @overload
    def __init__(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 connpool_maxreuse: Optional[pulumi.Input[_builtins.int]] = None,
                 connpool_maxsize: Optional[pulumi.Input[_builtins.int]] = None,
                 connpool_minsize: Optional[pulumi.Input[_builtins.int]] = None,
                 connpool_replenish: Optional[pulumi.Input[_builtins.str]] = None,
                 connpool_step: Optional[pulumi.Input[_builtins.int]] = None,
                 connpoolidle_timeoutoverride: Optional[pulumi.Input[_builtins.int]] = None,
                 defaults_from: Optional[pulumi.Input[_builtins.str]] = None,
                 forcehttp10response: Optional[pulumi.Input[_builtins.str]] = None,
                 idle_timeout: Optional[pulumi.Input[_builtins.int]] = None,
                 maxheader_size: Optional[pulumi.Input[_builtins.int]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 __props__=None):
        """
        `ltm.ProfileFastHttp` Configures a custom profile_fasthttp for use by health checks.

        For resources should be named with their "full path". The full path is the combination of the partition + name of the resource. For example /Common/my-pool.

        ## Example Usage

        ```python
        import pulumi
        import pulumi_f5bigip as f5bigip

        sjfasthttpprofile = f5bigip.ltm.ProfileFastHttp("sjfasthttpprofile",
            name="/Common/sjfasthttpprofile",
            defaults_from="/Common/fasthttp",
            idle_timeout=300,
            connpoolidle_timeoutoverride=0,
            connpool_maxreuse=2,
            connpool_maxsize=2048,
            connpool_minsize=0,
            connpool_replenish="enabled",
            connpool_step=4,
            forcehttp10response="disabled",
            maxheader_size=32768)
        ```

        :param str resource_name: The name of the resource.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[_builtins.int] connpool_maxreuse: Specifies the maximum number of times that the system can re-use a current connection. The default value is 0 (zero).
        :param pulumi.Input[_builtins.int] connpool_maxsize: Specifies the maximum number of connections to a load balancing pool. A setting of 0 specifies that a pool can accept an unlimited number of connections. The default value is 2048.
        :param pulumi.Input[_builtins.int] connpool_minsize: Specifies the minimum number of connections to a load balancing pool. A setting of 0 specifies that there is no minimum. The default value is 10.
        :param pulumi.Input[_builtins.str] connpool_replenish: The default value is enabled. When this option is enabled, the system replenishes the number of connections to a load balancing pool to the number of connections that existed when the server closed the connection to the pool. When disabled, the system replenishes the connection that was closed by the server, only when there are fewer connections to the pool than the number of connections set in the connpool-min-size connections option. Also see the connpool-min-size option..
        :param pulumi.Input[_builtins.int] connpool_step: Specifies the increment in which the system makes additional connections available, when all available connections are in use. The default value is 4.
        :param pulumi.Input[_builtins.int] connpoolidle_timeoutoverride: Specifies the number of seconds after which a server-side connection in a OneConnect pool is eligible for deletion, when the connection has no traffic.The value of this option overrides the idle-timeout value that you specify. The default value is 0 (zero) seconds, which disables the override setting.
        :param pulumi.Input[_builtins.str] defaults_from: Specifies the profile that you want to use as the parent profile. Your new profile inherits all settings and values from the parent profile specified.
        :param pulumi.Input[_builtins.str] forcehttp10response: Specifies whether to rewrite the HTTP version in the status line of the server to HTTP 1.0 to discourage the client from pipelining or chunking data. The default value is disabled.
        :param pulumi.Input[_builtins.int] idle_timeout: Specifies an idle timeout in seconds. This setting specifies the number of seconds that a connection is idle before the connection is eligible for deletion.When you specify an idle timeout for the Fast L4 profile, the value must be greater than the bigdb database variable Pva.Scrub time in msec for it to work properly.The default value is 300 seconds.
        :param pulumi.Input[_builtins.int] maxheader_size: Specifies the maximum amount of HTTP header data that the system buffers before making a load balancing decision. The default setting is 32768.
        :param pulumi.Input[_builtins.str] name: Name of the profile_fasthttp
        """
        ...
    @overload
    def __init__(__self__,
                 resource_name: str,
                 args: ProfileFastHttpArgs,
                 opts: Optional[pulumi.ResourceOptions] = None):
        """
        `ltm.ProfileFastHttp` Configures a custom profile_fasthttp for use by health checks.

        For resources should be named with their "full path". The full path is the combination of the partition + name of the resource. For example /Common/my-pool.

        ## Example Usage

        ```python
        import pulumi
        import pulumi_f5bigip as f5bigip

        sjfasthttpprofile = f5bigip.ltm.ProfileFastHttp("sjfasthttpprofile",
            name="/Common/sjfasthttpprofile",
            defaults_from="/Common/fasthttp",
            idle_timeout=300,
            connpoolidle_timeoutoverride=0,
            connpool_maxreuse=2,
            connpool_maxsize=2048,
            connpool_minsize=0,
            connpool_replenish="enabled",
            connpool_step=4,
            forcehttp10response="disabled",
            maxheader_size=32768)
        ```

        :param str resource_name: The name of the resource.
        :param ProfileFastHttpArgs args: The arguments to use to populate this resource's properties.
        :param pulumi.ResourceOptions opts: Options for the resource.
        """
        ...
    def __init__(__self__, resource_name: str, *args, **kwargs):
        resource_args, opts = _utilities.get_resource_args_opts(ProfileFastHttpArgs, pulumi.ResourceOptions, *args, **kwargs)
        if resource_args is not None:
            __self__._internal_init(resource_name, opts, **resource_args.__dict__)
        else:
            __self__._internal_init(resource_name, *args, **kwargs)

    def _internal_init(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 connpool_maxreuse: Optional[pulumi.Input[_builtins.int]] = None,
                 connpool_maxsize: Optional[pulumi.Input[_builtins.int]] = None,
                 connpool_minsize: Optional[pulumi.Input[_builtins.int]] = None,
                 connpool_replenish: Optional[pulumi.Input[_builtins.str]] = None,
                 connpool_step: Optional[pulumi.Input[_builtins.int]] = None,
                 connpoolidle_timeoutoverride: Optional[pulumi.Input[_builtins.int]] = None,
                 defaults_from: Optional[pulumi.Input[_builtins.str]] = None,
                 forcehttp10response: Optional[pulumi.Input[_builtins.str]] = None,
                 idle_timeout: Optional[pulumi.Input[_builtins.int]] = None,
                 maxheader_size: Optional[pulumi.Input[_builtins.int]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 __props__=None):
        opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
        if not isinstance(opts, pulumi.ResourceOptions):
            raise TypeError('Expected resource options to be a ResourceOptions instance')
        if opts.id is None:
            if __props__ is not None:
                raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
            __props__ = ProfileFastHttpArgs.__new__(ProfileFastHttpArgs)

            __props__.__dict__["connpool_maxreuse"] = connpool_maxreuse
            __props__.__dict__["connpool_maxsize"] = connpool_maxsize
            __props__.__dict__["connpool_minsize"] = connpool_minsize
            __props__.__dict__["connpool_replenish"] = connpool_replenish
            __props__.__dict__["connpool_step"] = connpool_step
            __props__.__dict__["connpoolidle_timeoutoverride"] = connpoolidle_timeoutoverride
            __props__.__dict__["defaults_from"] = defaults_from
            __props__.__dict__["forcehttp10response"] = forcehttp10response
            __props__.__dict__["idle_timeout"] = idle_timeout
            __props__.__dict__["maxheader_size"] = maxheader_size
            if name is None and not opts.urn:
                raise TypeError("Missing required property 'name'")
            __props__.__dict__["name"] = name
        super(ProfileFastHttp, __self__).__init__(
            'f5bigip:ltm/profileFastHttp:ProfileFastHttp',
            resource_name,
            __props__,
            opts)

    @staticmethod
    def get(resource_name: str,
            id: pulumi.Input[str],
            opts: Optional[pulumi.ResourceOptions] = None,
            connpool_maxreuse: Optional[pulumi.Input[_builtins.int]] = None,
            connpool_maxsize: Optional[pulumi.Input[_builtins.int]] = None,
            connpool_minsize: Optional[pulumi.Input[_builtins.int]] = None,
            connpool_replenish: Optional[pulumi.Input[_builtins.str]] = None,
            connpool_step: Optional[pulumi.Input[_builtins.int]] = None,
            connpoolidle_timeoutoverride: Optional[pulumi.Input[_builtins.int]] = None,
            defaults_from: Optional[pulumi.Input[_builtins.str]] = None,
            forcehttp10response: Optional[pulumi.Input[_builtins.str]] = None,
            idle_timeout: Optional[pulumi.Input[_builtins.int]] = None,
            maxheader_size: Optional[pulumi.Input[_builtins.int]] = None,
            name: Optional[pulumi.Input[_builtins.str]] = None) -> 'ProfileFastHttp':
        """
        Get an existing ProfileFastHttp resource's state with the given name, id, and optional extra
        properties used to qualify the lookup.

        :param str resource_name: The unique name of the resulting resource.
        :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[_builtins.int] connpool_maxreuse: Specifies the maximum number of times that the system can re-use a current connection. The default value is 0 (zero).
        :param pulumi.Input[_builtins.int] connpool_maxsize: Specifies the maximum number of connections to a load balancing pool. A setting of 0 specifies that a pool can accept an unlimited number of connections. The default value is 2048.
        :param pulumi.Input[_builtins.int] connpool_minsize: Specifies the minimum number of connections to a load balancing pool. A setting of 0 specifies that there is no minimum. The default value is 10.
        :param pulumi.Input[_builtins.str] connpool_replenish: The default value is enabled. When this option is enabled, the system replenishes the number of connections to a load balancing pool to the number of connections that existed when the server closed the connection to the pool. When disabled, the system replenishes the connection that was closed by the server, only when there are fewer connections to the pool than the number of connections set in the connpool-min-size connections option. Also see the connpool-min-size option..
        :param pulumi.Input[_builtins.int] connpool_step: Specifies the increment in which the system makes additional connections available, when all available connections are in use. The default value is 4.
        :param pulumi.Input[_builtins.int] connpoolidle_timeoutoverride: Specifies the number of seconds after which a server-side connection in a OneConnect pool is eligible for deletion, when the connection has no traffic.The value of this option overrides the idle-timeout value that you specify. The default value is 0 (zero) seconds, which disables the override setting.
        :param pulumi.Input[_builtins.str] defaults_from: Specifies the profile that you want to use as the parent profile. Your new profile inherits all settings and values from the parent profile specified.
        :param pulumi.Input[_builtins.str] forcehttp10response: Specifies whether to rewrite the HTTP version in the status line of the server to HTTP 1.0 to discourage the client from pipelining or chunking data. The default value is disabled.
        :param pulumi.Input[_builtins.int] idle_timeout: Specifies an idle timeout in seconds. This setting specifies the number of seconds that a connection is idle before the connection is eligible for deletion.When you specify an idle timeout for the Fast L4 profile, the value must be greater than the bigdb database variable Pva.Scrub time in msec for it to work properly.The default value is 300 seconds.
        :param pulumi.Input[_builtins.int] maxheader_size: Specifies the maximum amount of HTTP header data that the system buffers before making a load balancing decision. The default setting is 32768.
        :param pulumi.Input[_builtins.str] name: Name of the profile_fasthttp
        """
        opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))

        __props__ = _ProfileFastHttpState.__new__(_ProfileFastHttpState)

        __props__.__dict__["connpool_maxreuse"] = connpool_maxreuse
        __props__.__dict__["connpool_maxsize"] = connpool_maxsize
        __props__.__dict__["connpool_minsize"] = connpool_minsize
        __props__.__dict__["connpool_replenish"] = connpool_replenish
        __props__.__dict__["connpool_step"] = connpool_step
        __props__.__dict__["connpoolidle_timeoutoverride"] = connpoolidle_timeoutoverride
        __props__.__dict__["defaults_from"] = defaults_from
        __props__.__dict__["forcehttp10response"] = forcehttp10response
        __props__.__dict__["idle_timeout"] = idle_timeout
        __props__.__dict__["maxheader_size"] = maxheader_size
        __props__.__dict__["name"] = name
        return ProfileFastHttp(resource_name, opts=opts, __props__=__props__)

    @_builtins.property
    @pulumi.getter(name="connpoolMaxreuse")
    def connpool_maxreuse(self) -> pulumi.Output[_builtins.int]:
        """
        Specifies the maximum number of times that the system can re-use a current connection. The default value is 0 (zero).
        """
        return pulumi.get(self, "connpool_maxreuse")

    @_builtins.property
    @pulumi.getter(name="connpoolMaxsize")
    def connpool_maxsize(self) -> pulumi.Output[_builtins.int]:
        """
        Specifies the maximum number of connections to a load balancing pool. A setting of 0 specifies that a pool can accept an unlimited number of connections. The default value is 2048.
        """
        return pulumi.get(self, "connpool_maxsize")

    @_builtins.property
    @pulumi.getter(name="connpoolMinsize")
    def connpool_minsize(self) -> pulumi.Output[_builtins.int]:
        """
        Specifies the minimum number of connections to a load balancing pool. A setting of 0 specifies that there is no minimum. The default value is 10.
        """
        return pulumi.get(self, "connpool_minsize")

    @_builtins.property
    @pulumi.getter(name="connpoolReplenish")
    def connpool_replenish(self) -> pulumi.Output[_builtins.str]:
        """
        The default value is enabled. When this option is enabled, the system replenishes the number of connections to a load balancing pool to the number of connections that existed when the server closed the connection to the pool. When disabled, the system replenishes the connection that was closed by the server, only when there are fewer connections to the pool than the number of connections set in the connpool-min-size connections option. Also see the connpool-min-size option..
        """
        return pulumi.get(self, "connpool_replenish")

    @_builtins.property
    @pulumi.getter(name="connpoolStep")
    def connpool_step(self) -> pulumi.Output[_builtins.int]:
        """
        Specifies the increment in which the system makes additional connections available, when all available connections are in use. The default value is 4.
        """
        return pulumi.get(self, "connpool_step")

    @_builtins.property
    @pulumi.getter(name="connpoolidleTimeoutoverride")
    def connpoolidle_timeoutoverride(self) -> pulumi.Output[_builtins.int]:
        """
        Specifies the number of seconds after which a server-side connection in a OneConnect pool is eligible for deletion, when the connection has no traffic.The value of this option overrides the idle-timeout value that you specify. The default value is 0 (zero) seconds, which disables the override setting.
        """
        return pulumi.get(self, "connpoolidle_timeoutoverride")

    @_builtins.property
    @pulumi.getter(name="defaultsFrom")
    def defaults_from(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        Specifies the profile that you want to use as the parent profile. Your new profile inherits all settings and values from the parent profile specified.
        """
        return pulumi.get(self, "defaults_from")

    @_builtins.property
    @pulumi.getter
    def forcehttp10response(self) -> pulumi.Output[_builtins.str]:
        """
        Specifies whether to rewrite the HTTP version in the status line of the server to HTTP 1.0 to discourage the client from pipelining or chunking data. The default value is disabled.
        """
        return pulumi.get(self, "forcehttp10response")

    @_builtins.property
    @pulumi.getter(name="idleTimeout")
    def idle_timeout(self) -> pulumi.Output[_builtins.int]:
        """
        Specifies an idle timeout in seconds. This setting specifies the number of seconds that a connection is idle before the connection is eligible for deletion.When you specify an idle timeout for the Fast L4 profile, the value must be greater than the bigdb database variable Pva.Scrub time in msec for it to work properly.The default value is 300 seconds.
        """
        return pulumi.get(self, "idle_timeout")

    @_builtins.property
    @pulumi.getter(name="maxheaderSize")
    def maxheader_size(self) -> pulumi.Output[_builtins.int]:
        """
        Specifies the maximum amount of HTTP header data that the system buffers before making a load balancing decision. The default setting is 32768.
        """
        return pulumi.get(self, "maxheader_size")

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Output[_builtins.str]:
        """
        Name of the profile_fasthttp
        """
        return pulumi.get(self, "name")

