def __init__(__self__, *, ban_duration_sec: Optional[pulumi.Input[int]]=None, ban_threshold: Optional[pulumi.Input['SecurityPolicyRuleRateLimitOptionsThresholdArgs']]=None, conform_action: Optional[pulumi.Input[str]]=None, enforce_on_key: Optional[pulumi.Input['SecurityPolicyRuleRateLimitOptionsEnforceOnKey']]=None, enforce_on_key_name: Optional[pulumi.Input[str]]=None, exceed_action: Optional[pulumi.Input[str]]=None, exceed_redirect_options: Optional[pulumi.Input['SecurityPolicyRuleRedirectOptionsArgs']]=None, rate_limit_threshold: Optional[pulumi.Input['SecurityPolicyRuleRateLimitOptionsThresholdArgs']]=None):
    '\n        :param pulumi.Input[int] ban_duration_sec: Can only be specified if the action for the rule is "rate_based_ban". If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold.\n        :param pulumi.Input[\'SecurityPolicyRuleRateLimitOptionsThresholdArgs\'] ban_threshold: Can only be specified if the action for the rule is "rate_based_ban". If specified, the key will be banned for the configured \'ban_duration_sec\' when the number of requests that exceed the \'rate_limit_threshold\' also exceed this \'ban_threshold\'.\n        :param pulumi.Input[str] conform_action: Action to take for requests that are under the configured rate limit threshold. Valid option is "allow" only.\n        :param pulumi.Input[\'SecurityPolicyRuleRateLimitOptionsEnforceOnKey\'] enforce_on_key: Determines the key to enforce the rate_limit_threshold on. Possible values are: - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if this field \'enforce_on_key\' is not configured. - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforce_on_key_name". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key type defaults to ALL. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforce_on_key_name". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. \n        :param pulumi.Input[str] enforce_on_key_name: Rate limit key name applicable only for the following key types: HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.\n        :param pulumi.Input[str] exceed_action: Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint. Valid options are "deny()" where valid values for status are 403, 404, 429, and 502, and "redirect" where the redirect parameters come from exceed_redirect_options below.\n        :param pulumi.Input[\'SecurityPolicyRuleRedirectOptionsArgs\'] exceed_redirect_options: Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect.\n        :param pulumi.Input[\'SecurityPolicyRuleRateLimitOptionsThresholdArgs\'] rate_limit_threshold: Threshold at which to begin ratelimiting.\n        '
    if (ban_duration_sec is not None):
        pulumi.set(__self__, 'ban_duration_sec', ban_duration_sec)
    if (ban_threshold is not None):
        pulumi.set(__self__, 'ban_threshold', ban_threshold)
    if (conform_action is not None):
        pulumi.set(__self__, 'conform_action', conform_action)
    if (enforce_on_key is not None):
        pulumi.set(__self__, 'enforce_on_key', enforce_on_key)
    if (enforce_on_key_name is not None):
        pulumi.set(__self__, 'enforce_on_key_name', enforce_on_key_name)
    if (exceed_action is not None):
        pulumi.set(__self__, 'exceed_action', exceed_action)
    if (exceed_redirect_options is not None):
        pulumi.set(__self__, 'exceed_redirect_options', exceed_redirect_options)
    if (rate_limit_threshold is not None):
        pulumi.set(__self__, 'rate_limit_threshold', rate_limit_threshold)
:param pulumi.Input[int] ban_duration_sec: Can only be specified if the action for the rule is "rate_based_ban". If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold.
:param pulumi.Input['SecurityPolicyRuleRateLimitOptionsThresholdArgs'] ban_threshold: Can only be specified if the action for the rule is "rate_based_ban". If specified, the key will be banned for the configured 'ban_duration_sec' when the number of requests that exceed the 'rate_limit_threshold' also exceed this 'ban_threshold'.
:param pulumi.Input[str] conform_action: Action to take for requests that are under the configured rate limit threshold. Valid option is "allow" only.
:param pulumi.Input['SecurityPolicyRuleRateLimitOptionsEnforceOnKey'] enforce_on_key: Determines the key to enforce the rate_limit_threshold on. Possible values are: - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if this field 'enforce_on_key' is not configured. - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforce_on_key_name". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key type defaults to ALL. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforce_on_key_name". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. 
:param pulumi.Input[str] enforce_on_key_name: Rate limit key name applicable only for the following key types: HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.
:param pulumi.Input[str] exceed_action: Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint. Valid options are "deny()" where valid values for status are 403, 404, 429, and 502, and "redirect" where the redirect parameters come from exceed_redirect_options below.
:param pulumi.Input['SecurityPolicyRuleRedirectOptionsArgs'] exceed_redirect_options: Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect.
:param pulumi.Input['SecurityPolicyRuleRateLimitOptionsThresholdArgs'] rate_limit_threshold: Threshold at which to begin ratelimiting.
def __init__(__self__, *, ban_duration_sec: Optional[pulumi.Input[int]]=None, ban_threshold: Optional[pulumi.Input['SecurityPolicyRuleRateLimitOptionsThresholdArgs']]=None, conform_action: Optional[pulumi.Input[str]]=None, enforce_on_key: Optional[pulumi.Input['SecurityPolicyRuleRateLimitOptionsEnforceOnKey']]=None, enforce_on_key_name: Optional[pulumi.Input[str]]=None, exceed_action: Optional[pulumi.Input[str]]=None, exceed_redirect_options: Optional[pulumi.Input['SecurityPolicyRuleRedirectOptionsArgs']]=None, rate_limit_threshold: Optional[pulumi.Input['SecurityPolicyRuleRateLimitOptionsThresholdArgs']]=None):
    '\n        :param pulumi.Input[int] ban_duration_sec: Can only be specified if the action for the rule is "rate_based_ban". If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold.\n        :param pulumi.Input[\'SecurityPolicyRuleRateLimitOptionsThresholdArgs\'] ban_threshold: Can only be specified if the action for the rule is "rate_based_ban". If specified, the key will be banned for the configured \'ban_duration_sec\' when the number of requests that exceed the \'rate_limit_threshold\' also exceed this \'ban_threshold\'.\n        :param pulumi.Input[str] conform_action: Action to take for requests that are under the configured rate limit threshold. Valid option is "allow" only.\n        :param pulumi.Input[\'SecurityPolicyRuleRateLimitOptionsEnforceOnKey\'] enforce_on_key: Determines the key to enforce the rate_limit_threshold on. Possible values are: - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if this field \'enforce_on_key\' is not configured. - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforce_on_key_name". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key type defaults to ALL. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforce_on_key_name". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. \n        :param pulumi.Input[str] enforce_on_key_name: Rate limit key name applicable only for the following key types: HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.\n        :param pulumi.Input[str] exceed_action: Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint. Valid options are "deny()" where valid values for status are 403, 404, 429, and 502, and "redirect" where the redirect parameters come from exceed_redirect_options below.\n        :param pulumi.Input[\'SecurityPolicyRuleRedirectOptionsArgs\'] exceed_redirect_options: Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect.\n        :param pulumi.Input[\'SecurityPolicyRuleRateLimitOptionsThresholdArgs\'] rate_limit_threshold: Threshold at which to begin ratelimiting.\n        '
    if (ban_duration_sec is not None):
        pulumi.set(__self__, 'ban_duration_sec', ban_duration_sec)
    if (ban_threshold is not None):
        pulumi.set(__self__, 'ban_threshold', ban_threshold)
    if (conform_action is not None):
        pulumi.set(__self__, 'conform_action', conform_action)
    if (enforce_on_key is not None):
        pulumi.set(__self__, 'enforce_on_key', enforce_on_key)
    if (enforce_on_key_name is not None):
        pulumi.set(__self__, 'enforce_on_key_name', enforce_on_key_name)
    if (exceed_action is not None):
        pulumi.set(__self__, 'exceed_action', exceed_action)
    if (exceed_redirect_options is not None):
        pulumi.set(__self__, 'exceed_redirect_options', exceed_redirect_options)
    if (rate_limit_threshold is not None):
        pulumi.set(__self__, 'rate_limit_threshold', rate_limit_threshold)