# 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__ = [
    'DataGroupRecordArgs',
    'DataGroupRecordArgsDict',
    'NodeFqdnArgs',
    'NodeFqdnArgsDict',
    'PolicyRuleArgs',
    'PolicyRuleArgsDict',
    'PolicyRuleActionArgs',
    'PolicyRuleActionArgsDict',
    'PolicyRuleConditionArgs',
    'PolicyRuleConditionArgsDict',
    'ProfileClientSslCertKeyChainArgs',
    'ProfileClientSslCertKeyChainArgsDict',
    'ProfileHttpEnforcementArgs',
    'ProfileHttpEnforcementArgsDict',
    'ProfileHttpHttpStrictTransportSecurityArgs',
    'ProfileHttpHttpStrictTransportSecurityArgsDict',
    'ProfileRewriteCookieRuleArgs',
    'ProfileRewriteCookieRuleArgsDict',
    'ProfileRewriteRequestArgs',
    'ProfileRewriteRequestArgsDict',
    'ProfileRewriteResponseArgs',
    'ProfileRewriteResponseArgsDict',
    'ProfileRewriteUriRulesClientArgs',
    'ProfileRewriteUriRulesClientArgsDict',
    'ProfileRewriteUriRulesServerArgs',
    'ProfileRewriteUriRulesServerArgsDict',
    'SnatOriginArgs',
    'SnatOriginArgsDict',
    'GetDataGroupRecordArgs',
    'GetDataGroupRecordArgsDict',
    'GetNodeFqdnArgs',
    'GetNodeFqdnArgsDict',
    'GetPolicyRuleArgs',
    'GetPolicyRuleArgsDict',
    'GetPolicyRuleActionArgs',
    'GetPolicyRuleActionArgsDict',
    'GetPolicyRuleConditionArgs',
    'GetPolicyRuleConditionArgsDict',
]

MYPY = False

if not MYPY:
    class DataGroupRecordArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        , sets the value of the record's `name` attribute, must be of type defined in `type` attribute
        """
        data: NotRequired[pulumi.Input[_builtins.str]]
        """
        , sets the value of the record's `data` attribute, specifying a value here will create a record in the form of `name := data`
        """
elif False:
    DataGroupRecordArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class DataGroupRecordArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 data: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: , sets the value of the record's `name` attribute, must be of type defined in `type` attribute
        :param pulumi.Input[_builtins.str] data: , sets the value of the record's `data` attribute, specifying a value here will create a record in the form of `name := data`
        """
        pulumi.set(__self__, "name", name)
        if data is not None:
            pulumi.set(__self__, "data", data)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        , sets the value of the record's `name` attribute, must be of type defined in `type` attribute
        """
        return pulumi.get(self, "name")

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

    @_builtins.property
    @pulumi.getter
    def data(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        , sets the value of the record's `data` attribute, specifying a value here will create a record in the form of `name := data`
        """
        return pulumi.get(self, "data")

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


if not MYPY:
    class NodeFqdnArgsDict(TypedDict):
        address_family: NotRequired[pulumi.Input[_builtins.str]]
        """
        Specifies the node's address family. The default is 'unspecified', or IP-agnostic. This needs to be specified inside the fqdn (fully qualified domain name).
        """
        autopopulate: NotRequired[pulumi.Input[_builtins.str]]
        """
        Specifies whether the node should scale to the IP address set returned by DNS.
        """
        downinterval: NotRequired[pulumi.Input[_builtins.int]]
        """
        Specifies the number of attempts to resolve a domain name. The default is 5.
        """
        interval: NotRequired[pulumi.Input[_builtins.str]]
        """
        Specifies the amount of time before sending the next DNS query. Default is 3600. This needs to be specified inside the fqdn (fully qualified domain name).
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the node
        """
elif False:
    NodeFqdnArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class NodeFqdnArgs:
    def __init__(__self__, *,
                 address_family: Optional[pulumi.Input[_builtins.str]] = None,
                 autopopulate: Optional[pulumi.Input[_builtins.str]] = None,
                 downinterval: Optional[pulumi.Input[_builtins.int]] = None,
                 interval: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] address_family: Specifies the node's address family. The default is 'unspecified', or IP-agnostic. This needs to be specified inside the fqdn (fully qualified domain name).
        :param pulumi.Input[_builtins.str] autopopulate: Specifies whether the node should scale to the IP address set returned by DNS.
        :param pulumi.Input[_builtins.int] downinterval: Specifies the number of attempts to resolve a domain name. The default is 5.
        :param pulumi.Input[_builtins.str] interval: Specifies the amount of time before sending the next DNS query. Default is 3600. This needs to be specified inside the fqdn (fully qualified domain name).
        :param pulumi.Input[_builtins.str] name: Name of the node
        """
        if address_family is not None:
            pulumi.set(__self__, "address_family", address_family)
        if autopopulate is not None:
            pulumi.set(__self__, "autopopulate", autopopulate)
        if downinterval is not None:
            pulumi.set(__self__, "downinterval", downinterval)
        if interval is not None:
            pulumi.set(__self__, "interval", interval)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter(name="addressFamily")
    def address_family(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Specifies the node's address family. The default is 'unspecified', or IP-agnostic. This needs to be specified inside the fqdn (fully qualified domain name).
        """
        return pulumi.get(self, "address_family")

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

    @_builtins.property
    @pulumi.getter
    def autopopulate(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Specifies whether the node should scale to the IP address set returned by DNS.
        """
        return pulumi.get(self, "autopopulate")

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

    @_builtins.property
    @pulumi.getter
    def downinterval(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Specifies the number of attempts to resolve a domain name. The default is 5.
        """
        return pulumi.get(self, "downinterval")

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

    @_builtins.property
    @pulumi.getter
    def interval(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Specifies the amount of time before sending the next DNS query. Default is 3600. This needs to be specified inside the fqdn (fully qualified domain name).
        """
        return pulumi.get(self, "interval")

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

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

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


if not MYPY:
    class PolicyRuleArgsDict(TypedDict):
        name: pulumi.Input[_builtins.str]
        """
        Name of Rule to be applied in policy.
        """
        actions: NotRequired[pulumi.Input[Sequence[pulumi.Input['PolicyRuleActionArgsDict']]]]
        """
        Block type. See action block for more details.
        """
        conditions: NotRequired[pulumi.Input[Sequence[pulumi.Input['PolicyRuleConditionArgsDict']]]]
        """
        Block type. See condition block for more details.
        """
        description: NotRequired[pulumi.Input[_builtins.str]]
        """
        Specifies descriptive text that identifies the irule attached to policy.
        """
elif False:
    PolicyRuleArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PolicyRuleArgs:
    def __init__(__self__, *,
                 name: pulumi.Input[_builtins.str],
                 actions: Optional[pulumi.Input[Sequence[pulumi.Input['PolicyRuleActionArgs']]]] = None,
                 conditions: Optional[pulumi.Input[Sequence[pulumi.Input['PolicyRuleConditionArgs']]]] = None,
                 description: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] name: Name of Rule to be applied in policy.
        :param pulumi.Input[Sequence[pulumi.Input['PolicyRuleActionArgs']]] actions: Block type. See action block for more details.
        :param pulumi.Input[Sequence[pulumi.Input['PolicyRuleConditionArgs']]] conditions: Block type. See condition block for more details.
        :param pulumi.Input[_builtins.str] description: Specifies descriptive text that identifies the irule attached to policy.
        """
        pulumi.set(__self__, "name", name)
        if actions is not None:
            pulumi.set(__self__, "actions", actions)
        if conditions is not None:
            pulumi.set(__self__, "conditions", conditions)
        if description is not None:
            pulumi.set(__self__, "description", description)

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of Rule to be applied in policy.
        """
        return pulumi.get(self, "name")

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

    @_builtins.property
    @pulumi.getter
    def actions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['PolicyRuleActionArgs']]]]:
        """
        Block type. See action block for more details.
        """
        return pulumi.get(self, "actions")

    @actions.setter
    def actions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['PolicyRuleActionArgs']]]]):
        pulumi.set(self, "actions", value)

    @_builtins.property
    @pulumi.getter
    def conditions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['PolicyRuleConditionArgs']]]]:
        """
        Block type. See condition block for more details.
        """
        return pulumi.get(self, "conditions")

    @conditions.setter
    def conditions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['PolicyRuleConditionArgs']]]]):
        pulumi.set(self, "conditions", value)

    @_builtins.property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Specifies descriptive text that identifies the irule attached to policy.
        """
        return pulumi.get(self, "description")

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


if not MYPY:
    class PolicyRuleActionArgsDict(TypedDict):
        app_service: NotRequired[pulumi.Input[_builtins.str]]
        application: NotRequired[pulumi.Input[_builtins.str]]
        asm: NotRequired[pulumi.Input[_builtins.bool]]
        avr: NotRequired[pulumi.Input[_builtins.bool]]
        cache: NotRequired[pulumi.Input[_builtins.bool]]
        carp: NotRequired[pulumi.Input[_builtins.bool]]
        category: NotRequired[pulumi.Input[_builtins.str]]
        classify: NotRequired[pulumi.Input[_builtins.bool]]
        clone_pool: NotRequired[pulumi.Input[_builtins.str]]
        code: NotRequired[pulumi.Input[_builtins.int]]
        compress: NotRequired[pulumi.Input[_builtins.bool]]
        connection: NotRequired[pulumi.Input[_builtins.bool]]
        """
        This action is set to `true` by default, it needs to be explicitly set to `false` for actions it conflicts with.
        """
        content: NotRequired[pulumi.Input[_builtins.str]]
        cookie_hash: NotRequired[pulumi.Input[_builtins.bool]]
        cookie_insert: NotRequired[pulumi.Input[_builtins.bool]]
        cookie_passive: NotRequired[pulumi.Input[_builtins.bool]]
        cookie_rewrite: NotRequired[pulumi.Input[_builtins.bool]]
        decompress: NotRequired[pulumi.Input[_builtins.bool]]
        defer: NotRequired[pulumi.Input[_builtins.bool]]
        destination_address: NotRequired[pulumi.Input[_builtins.bool]]
        disable: NotRequired[pulumi.Input[_builtins.bool]]
        domain: NotRequired[pulumi.Input[_builtins.str]]
        enable: NotRequired[pulumi.Input[_builtins.bool]]
        expiry: NotRequired[pulumi.Input[_builtins.str]]
        expiry_secs: NotRequired[pulumi.Input[_builtins.int]]
        expression: NotRequired[pulumi.Input[_builtins.str]]
        extension: NotRequired[pulumi.Input[_builtins.str]]
        facility: NotRequired[pulumi.Input[_builtins.str]]
        forward: NotRequired[pulumi.Input[_builtins.bool]]
        """
        This action will affect forwarding.
        """
        from_profile: NotRequired[pulumi.Input[_builtins.str]]
        hash: NotRequired[pulumi.Input[_builtins.bool]]
        host: NotRequired[pulumi.Input[_builtins.str]]
        http: NotRequired[pulumi.Input[_builtins.bool]]
        http_basic_auth: NotRequired[pulumi.Input[_builtins.bool]]
        http_cookie: NotRequired[pulumi.Input[_builtins.bool]]
        http_header: NotRequired[pulumi.Input[_builtins.bool]]
        http_host: NotRequired[pulumi.Input[_builtins.bool]]
        http_referer: NotRequired[pulumi.Input[_builtins.bool]]
        http_reply: NotRequired[pulumi.Input[_builtins.bool]]
        http_set_cookie: NotRequired[pulumi.Input[_builtins.bool]]
        http_uri: NotRequired[pulumi.Input[_builtins.bool]]
        ifile: NotRequired[pulumi.Input[_builtins.str]]
        insert: NotRequired[pulumi.Input[_builtins.bool]]
        internal_virtual: NotRequired[pulumi.Input[_builtins.str]]
        ip_address: NotRequired[pulumi.Input[_builtins.str]]
        key: NotRequired[pulumi.Input[_builtins.str]]
        l7dos: NotRequired[pulumi.Input[_builtins.bool]]
        length: NotRequired[pulumi.Input[_builtins.int]]
        location: NotRequired[pulumi.Input[_builtins.str]]
        log: NotRequired[pulumi.Input[_builtins.bool]]
        ltm_policy: NotRequired[pulumi.Input[_builtins.bool]]
        member: NotRequired[pulumi.Input[_builtins.str]]
        message: NotRequired[pulumi.Input[_builtins.str]]
        netmask: NotRequired[pulumi.Input[_builtins.str]]
        nexthop: NotRequired[pulumi.Input[_builtins.str]]
        node: NotRequired[pulumi.Input[_builtins.str]]
        offset: NotRequired[pulumi.Input[_builtins.int]]
        path: NotRequired[pulumi.Input[_builtins.str]]
        pem: NotRequired[pulumi.Input[_builtins.bool]]
        persist: NotRequired[pulumi.Input[_builtins.bool]]
        pin: NotRequired[pulumi.Input[_builtins.bool]]
        policy: NotRequired[pulumi.Input[_builtins.str]]
        pool: NotRequired[pulumi.Input[_builtins.str]]
        """
        This action will direct the stream to this pool.
        """
        port: NotRequired[pulumi.Input[_builtins.int]]
        priority: NotRequired[pulumi.Input[_builtins.str]]
        profile: NotRequired[pulumi.Input[_builtins.str]]
        protocol: NotRequired[pulumi.Input[_builtins.str]]
        query_string: NotRequired[pulumi.Input[_builtins.str]]
        rateclass: NotRequired[pulumi.Input[_builtins.str]]
        redirect: NotRequired[pulumi.Input[_builtins.bool]]
        remove: NotRequired[pulumi.Input[_builtins.bool]]
        replace: NotRequired[pulumi.Input[_builtins.bool]]
        request: NotRequired[pulumi.Input[_builtins.bool]]
        request_adapt: NotRequired[pulumi.Input[_builtins.bool]]
        reset: NotRequired[pulumi.Input[_builtins.bool]]
        response: NotRequired[pulumi.Input[_builtins.bool]]
        response_adapt: NotRequired[pulumi.Input[_builtins.bool]]
        scheme: NotRequired[pulumi.Input[_builtins.str]]
        script: NotRequired[pulumi.Input[_builtins.str]]
        select: NotRequired[pulumi.Input[_builtins.bool]]
        server_ssl: NotRequired[pulumi.Input[_builtins.bool]]
        set_variable: NotRequired[pulumi.Input[_builtins.bool]]
        shutdown: NotRequired[pulumi.Input[_builtins.bool]]
        snat: NotRequired[pulumi.Input[_builtins.str]]
        snatpool: NotRequired[pulumi.Input[_builtins.str]]
        source_address: NotRequired[pulumi.Input[_builtins.bool]]
        ssl_client_hello: NotRequired[pulumi.Input[_builtins.bool]]
        ssl_server_handshake: NotRequired[pulumi.Input[_builtins.bool]]
        ssl_server_hello: NotRequired[pulumi.Input[_builtins.bool]]
        ssl_session_id: NotRequired[pulumi.Input[_builtins.bool]]
        status: NotRequired[pulumi.Input[_builtins.int]]
        tcl: NotRequired[pulumi.Input[_builtins.bool]]
        tcp_nagle: NotRequired[pulumi.Input[_builtins.bool]]
        text: NotRequired[pulumi.Input[_builtins.str]]
        timeout: NotRequired[pulumi.Input[_builtins.int]]
        tm_name: NotRequired[pulumi.Input[_builtins.str]]
        uie: NotRequired[pulumi.Input[_builtins.bool]]
        universal: NotRequired[pulumi.Input[_builtins.bool]]
        value: NotRequired[pulumi.Input[_builtins.str]]
        virtual: NotRequired[pulumi.Input[_builtins.str]]
        vlan: NotRequired[pulumi.Input[_builtins.str]]
        vlan_id: NotRequired[pulumi.Input[_builtins.int]]
        wam: NotRequired[pulumi.Input[_builtins.bool]]
        write: NotRequired[pulumi.Input[_builtins.bool]]
elif False:
    PolicyRuleActionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PolicyRuleActionArgs:
    def __init__(__self__, *,
                 app_service: Optional[pulumi.Input[_builtins.str]] = None,
                 application: Optional[pulumi.Input[_builtins.str]] = None,
                 asm: Optional[pulumi.Input[_builtins.bool]] = None,
                 avr: Optional[pulumi.Input[_builtins.bool]] = None,
                 cache: Optional[pulumi.Input[_builtins.bool]] = None,
                 carp: Optional[pulumi.Input[_builtins.bool]] = None,
                 category: Optional[pulumi.Input[_builtins.str]] = None,
                 classify: Optional[pulumi.Input[_builtins.bool]] = None,
                 clone_pool: Optional[pulumi.Input[_builtins.str]] = None,
                 code: Optional[pulumi.Input[_builtins.int]] = None,
                 compress: Optional[pulumi.Input[_builtins.bool]] = None,
                 connection: Optional[pulumi.Input[_builtins.bool]] = None,
                 content: Optional[pulumi.Input[_builtins.str]] = None,
                 cookie_hash: Optional[pulumi.Input[_builtins.bool]] = None,
                 cookie_insert: Optional[pulumi.Input[_builtins.bool]] = None,
                 cookie_passive: Optional[pulumi.Input[_builtins.bool]] = None,
                 cookie_rewrite: Optional[pulumi.Input[_builtins.bool]] = None,
                 decompress: Optional[pulumi.Input[_builtins.bool]] = None,
                 defer: Optional[pulumi.Input[_builtins.bool]] = None,
                 destination_address: Optional[pulumi.Input[_builtins.bool]] = None,
                 disable: Optional[pulumi.Input[_builtins.bool]] = None,
                 domain: Optional[pulumi.Input[_builtins.str]] = None,
                 enable: Optional[pulumi.Input[_builtins.bool]] = None,
                 expiry: Optional[pulumi.Input[_builtins.str]] = None,
                 expiry_secs: Optional[pulumi.Input[_builtins.int]] = None,
                 expression: Optional[pulumi.Input[_builtins.str]] = None,
                 extension: Optional[pulumi.Input[_builtins.str]] = None,
                 facility: Optional[pulumi.Input[_builtins.str]] = None,
                 forward: Optional[pulumi.Input[_builtins.bool]] = None,
                 from_profile: Optional[pulumi.Input[_builtins.str]] = None,
                 hash: Optional[pulumi.Input[_builtins.bool]] = None,
                 host: Optional[pulumi.Input[_builtins.str]] = None,
                 http: Optional[pulumi.Input[_builtins.bool]] = None,
                 http_basic_auth: Optional[pulumi.Input[_builtins.bool]] = None,
                 http_cookie: Optional[pulumi.Input[_builtins.bool]] = None,
                 http_header: Optional[pulumi.Input[_builtins.bool]] = None,
                 http_host: Optional[pulumi.Input[_builtins.bool]] = None,
                 http_referer: Optional[pulumi.Input[_builtins.bool]] = None,
                 http_reply: Optional[pulumi.Input[_builtins.bool]] = None,
                 http_set_cookie: Optional[pulumi.Input[_builtins.bool]] = None,
                 http_uri: Optional[pulumi.Input[_builtins.bool]] = None,
                 ifile: Optional[pulumi.Input[_builtins.str]] = None,
                 insert: Optional[pulumi.Input[_builtins.bool]] = None,
                 internal_virtual: Optional[pulumi.Input[_builtins.str]] = None,
                 ip_address: Optional[pulumi.Input[_builtins.str]] = None,
                 key: Optional[pulumi.Input[_builtins.str]] = None,
                 l7dos: Optional[pulumi.Input[_builtins.bool]] = None,
                 length: Optional[pulumi.Input[_builtins.int]] = None,
                 location: Optional[pulumi.Input[_builtins.str]] = None,
                 log: Optional[pulumi.Input[_builtins.bool]] = None,
                 ltm_policy: Optional[pulumi.Input[_builtins.bool]] = None,
                 member: Optional[pulumi.Input[_builtins.str]] = None,
                 message: Optional[pulumi.Input[_builtins.str]] = None,
                 netmask: Optional[pulumi.Input[_builtins.str]] = None,
                 nexthop: Optional[pulumi.Input[_builtins.str]] = None,
                 node: Optional[pulumi.Input[_builtins.str]] = None,
                 offset: Optional[pulumi.Input[_builtins.int]] = None,
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 pem: Optional[pulumi.Input[_builtins.bool]] = None,
                 persist: Optional[pulumi.Input[_builtins.bool]] = None,
                 pin: Optional[pulumi.Input[_builtins.bool]] = None,
                 policy: Optional[pulumi.Input[_builtins.str]] = None,
                 pool: Optional[pulumi.Input[_builtins.str]] = None,
                 port: Optional[pulumi.Input[_builtins.int]] = None,
                 priority: Optional[pulumi.Input[_builtins.str]] = None,
                 profile: Optional[pulumi.Input[_builtins.str]] = None,
                 protocol: Optional[pulumi.Input[_builtins.str]] = None,
                 query_string: Optional[pulumi.Input[_builtins.str]] = None,
                 rateclass: Optional[pulumi.Input[_builtins.str]] = None,
                 redirect: Optional[pulumi.Input[_builtins.bool]] = None,
                 remove: Optional[pulumi.Input[_builtins.bool]] = None,
                 replace: Optional[pulumi.Input[_builtins.bool]] = None,
                 request: Optional[pulumi.Input[_builtins.bool]] = None,
                 request_adapt: Optional[pulumi.Input[_builtins.bool]] = None,
                 reset: Optional[pulumi.Input[_builtins.bool]] = None,
                 response: Optional[pulumi.Input[_builtins.bool]] = None,
                 response_adapt: Optional[pulumi.Input[_builtins.bool]] = None,
                 scheme: Optional[pulumi.Input[_builtins.str]] = None,
                 script: Optional[pulumi.Input[_builtins.str]] = None,
                 select: Optional[pulumi.Input[_builtins.bool]] = None,
                 server_ssl: Optional[pulumi.Input[_builtins.bool]] = None,
                 set_variable: Optional[pulumi.Input[_builtins.bool]] = None,
                 shutdown: Optional[pulumi.Input[_builtins.bool]] = None,
                 snat: Optional[pulumi.Input[_builtins.str]] = None,
                 snatpool: Optional[pulumi.Input[_builtins.str]] = None,
                 source_address: Optional[pulumi.Input[_builtins.bool]] = None,
                 ssl_client_hello: Optional[pulumi.Input[_builtins.bool]] = None,
                 ssl_server_handshake: Optional[pulumi.Input[_builtins.bool]] = None,
                 ssl_server_hello: Optional[pulumi.Input[_builtins.bool]] = None,
                 ssl_session_id: Optional[pulumi.Input[_builtins.bool]] = None,
                 status: Optional[pulumi.Input[_builtins.int]] = None,
                 tcl: Optional[pulumi.Input[_builtins.bool]] = None,
                 tcp_nagle: Optional[pulumi.Input[_builtins.bool]] = None,
                 text: Optional[pulumi.Input[_builtins.str]] = None,
                 timeout: Optional[pulumi.Input[_builtins.int]] = None,
                 tm_name: Optional[pulumi.Input[_builtins.str]] = None,
                 uie: Optional[pulumi.Input[_builtins.bool]] = None,
                 universal: Optional[pulumi.Input[_builtins.bool]] = None,
                 value: Optional[pulumi.Input[_builtins.str]] = None,
                 virtual: Optional[pulumi.Input[_builtins.str]] = None,
                 vlan: Optional[pulumi.Input[_builtins.str]] = None,
                 vlan_id: Optional[pulumi.Input[_builtins.int]] = None,
                 wam: Optional[pulumi.Input[_builtins.bool]] = None,
                 write: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] connection: This action is set to `true` by default, it needs to be explicitly set to `false` for actions it conflicts with.
        :param pulumi.Input[_builtins.bool] forward: This action will affect forwarding.
        :param pulumi.Input[_builtins.str] pool: This action will direct the stream to this pool.
        """
        if app_service is not None:
            pulumi.set(__self__, "app_service", app_service)
        if application is not None:
            pulumi.set(__self__, "application", application)
        if asm is not None:
            pulumi.set(__self__, "asm", asm)
        if avr is not None:
            pulumi.set(__self__, "avr", avr)
        if cache is not None:
            pulumi.set(__self__, "cache", cache)
        if carp is not None:
            pulumi.set(__self__, "carp", carp)
        if category is not None:
            pulumi.set(__self__, "category", category)
        if classify is not None:
            pulumi.set(__self__, "classify", classify)
        if clone_pool is not None:
            pulumi.set(__self__, "clone_pool", clone_pool)
        if code is not None:
            pulumi.set(__self__, "code", code)
        if compress is not None:
            pulumi.set(__self__, "compress", compress)
        if connection is not None:
            pulumi.set(__self__, "connection", connection)
        if content is not None:
            pulumi.set(__self__, "content", content)
        if cookie_hash is not None:
            pulumi.set(__self__, "cookie_hash", cookie_hash)
        if cookie_insert is not None:
            pulumi.set(__self__, "cookie_insert", cookie_insert)
        if cookie_passive is not None:
            pulumi.set(__self__, "cookie_passive", cookie_passive)
        if cookie_rewrite is not None:
            pulumi.set(__self__, "cookie_rewrite", cookie_rewrite)
        if decompress is not None:
            pulumi.set(__self__, "decompress", decompress)
        if defer is not None:
            pulumi.set(__self__, "defer", defer)
        if destination_address is not None:
            pulumi.set(__self__, "destination_address", destination_address)
        if disable is not None:
            pulumi.set(__self__, "disable", disable)
        if domain is not None:
            pulumi.set(__self__, "domain", domain)
        if enable is not None:
            pulumi.set(__self__, "enable", enable)
        if expiry is not None:
            pulumi.set(__self__, "expiry", expiry)
        if expiry_secs is not None:
            pulumi.set(__self__, "expiry_secs", expiry_secs)
        if expression is not None:
            pulumi.set(__self__, "expression", expression)
        if extension is not None:
            pulumi.set(__self__, "extension", extension)
        if facility is not None:
            pulumi.set(__self__, "facility", facility)
        if forward is not None:
            pulumi.set(__self__, "forward", forward)
        if from_profile is not None:
            pulumi.set(__self__, "from_profile", from_profile)
        if hash is not None:
            pulumi.set(__self__, "hash", hash)
        if host is not None:
            pulumi.set(__self__, "host", host)
        if http is not None:
            pulumi.set(__self__, "http", http)
        if http_basic_auth is not None:
            pulumi.set(__self__, "http_basic_auth", http_basic_auth)
        if http_cookie is not None:
            pulumi.set(__self__, "http_cookie", http_cookie)
        if http_header is not None:
            pulumi.set(__self__, "http_header", http_header)
        if http_host is not None:
            pulumi.set(__self__, "http_host", http_host)
        if http_referer is not None:
            pulumi.set(__self__, "http_referer", http_referer)
        if http_reply is not None:
            pulumi.set(__self__, "http_reply", http_reply)
        if http_set_cookie is not None:
            pulumi.set(__self__, "http_set_cookie", http_set_cookie)
        if http_uri is not None:
            pulumi.set(__self__, "http_uri", http_uri)
        if ifile is not None:
            pulumi.set(__self__, "ifile", ifile)
        if insert is not None:
            pulumi.set(__self__, "insert", insert)
        if internal_virtual is not None:
            pulumi.set(__self__, "internal_virtual", internal_virtual)
        if ip_address is not None:
            pulumi.set(__self__, "ip_address", ip_address)
        if key is not None:
            pulumi.set(__self__, "key", key)
        if l7dos is not None:
            pulumi.set(__self__, "l7dos", l7dos)
        if length is not None:
            pulumi.set(__self__, "length", length)
        if location is not None:
            pulumi.set(__self__, "location", location)
        if log is not None:
            pulumi.set(__self__, "log", log)
        if ltm_policy is not None:
            pulumi.set(__self__, "ltm_policy", ltm_policy)
        if member is not None:
            pulumi.set(__self__, "member", member)
        if message is not None:
            pulumi.set(__self__, "message", message)
        if netmask is not None:
            pulumi.set(__self__, "netmask", netmask)
        if nexthop is not None:
            pulumi.set(__self__, "nexthop", nexthop)
        if node is not None:
            pulumi.set(__self__, "node", node)
        if offset is not None:
            pulumi.set(__self__, "offset", offset)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if pem is not None:
            pulumi.set(__self__, "pem", pem)
        if persist is not None:
            pulumi.set(__self__, "persist", persist)
        if pin is not None:
            pulumi.set(__self__, "pin", pin)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)
        if pool is not None:
            pulumi.set(__self__, "pool", pool)
        if port is not None:
            pulumi.set(__self__, "port", port)
        if priority is not None:
            pulumi.set(__self__, "priority", priority)
        if profile is not None:
            pulumi.set(__self__, "profile", profile)
        if protocol is not None:
            pulumi.set(__self__, "protocol", protocol)
        if query_string is not None:
            pulumi.set(__self__, "query_string", query_string)
        if rateclass is not None:
            pulumi.set(__self__, "rateclass", rateclass)
        if redirect is not None:
            pulumi.set(__self__, "redirect", redirect)
        if remove is not None:
            pulumi.set(__self__, "remove", remove)
        if replace is not None:
            pulumi.set(__self__, "replace", replace)
        if request is not None:
            pulumi.set(__self__, "request", request)
        if request_adapt is not None:
            pulumi.set(__self__, "request_adapt", request_adapt)
        if reset is not None:
            pulumi.set(__self__, "reset", reset)
        if response is not None:
            pulumi.set(__self__, "response", response)
        if response_adapt is not None:
            pulumi.set(__self__, "response_adapt", response_adapt)
        if scheme is not None:
            pulumi.set(__self__, "scheme", scheme)
        if script is not None:
            pulumi.set(__self__, "script", script)
        if select is not None:
            pulumi.set(__self__, "select", select)
        if server_ssl is not None:
            pulumi.set(__self__, "server_ssl", server_ssl)
        if set_variable is not None:
            pulumi.set(__self__, "set_variable", set_variable)
        if shutdown is not None:
            pulumi.set(__self__, "shutdown", shutdown)
        if snat is not None:
            pulumi.set(__self__, "snat", snat)
        if snatpool is not None:
            pulumi.set(__self__, "snatpool", snatpool)
        if source_address is not None:
            pulumi.set(__self__, "source_address", source_address)
        if ssl_client_hello is not None:
            pulumi.set(__self__, "ssl_client_hello", ssl_client_hello)
        if ssl_server_handshake is not None:
            pulumi.set(__self__, "ssl_server_handshake", ssl_server_handshake)
        if ssl_server_hello is not None:
            pulumi.set(__self__, "ssl_server_hello", ssl_server_hello)
        if ssl_session_id is not None:
            pulumi.set(__self__, "ssl_session_id", ssl_session_id)
        if status is not None:
            pulumi.set(__self__, "status", status)
        if tcl is not None:
            pulumi.set(__self__, "tcl", tcl)
        if tcp_nagle is not None:
            pulumi.set(__self__, "tcp_nagle", tcp_nagle)
        if text is not None:
            pulumi.set(__self__, "text", text)
        if timeout is not None:
            pulumi.set(__self__, "timeout", timeout)
        if tm_name is not None:
            pulumi.set(__self__, "tm_name", tm_name)
        if uie is not None:
            pulumi.set(__self__, "uie", uie)
        if universal is not None:
            pulumi.set(__self__, "universal", universal)
        if value is not None:
            pulumi.set(__self__, "value", value)
        if virtual is not None:
            pulumi.set(__self__, "virtual", virtual)
        if vlan is not None:
            pulumi.set(__self__, "vlan", vlan)
        if vlan_id is not None:
            pulumi.set(__self__, "vlan_id", vlan_id)
        if wam is not None:
            pulumi.set(__self__, "wam", wam)
        if write is not None:
            pulumi.set(__self__, "write", write)

    @_builtins.property
    @pulumi.getter(name="appService")
    def app_service(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "app_service")

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

    @_builtins.property
    @pulumi.getter
    def application(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "application")

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

    @_builtins.property
    @pulumi.getter
    def asm(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "asm")

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

    @_builtins.property
    @pulumi.getter
    def avr(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "avr")

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

    @_builtins.property
    @pulumi.getter
    def cache(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "cache")

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

    @_builtins.property
    @pulumi.getter
    def carp(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "carp")

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

    @_builtins.property
    @pulumi.getter
    def category(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "category")

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

    @_builtins.property
    @pulumi.getter
    def classify(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "classify")

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

    @_builtins.property
    @pulumi.getter(name="clonePool")
    def clone_pool(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "clone_pool")

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

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.int]]:
        return pulumi.get(self, "code")

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

    @_builtins.property
    @pulumi.getter
    def compress(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "compress")

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

    @_builtins.property
    @pulumi.getter
    def connection(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        This action is set to `true` by default, it needs to be explicitly set to `false` for actions it conflicts with.
        """
        return pulumi.get(self, "connection")

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

    @_builtins.property
    @pulumi.getter
    def content(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "content")

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

    @_builtins.property
    @pulumi.getter(name="cookieHash")
    def cookie_hash(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "cookie_hash")

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

    @_builtins.property
    @pulumi.getter(name="cookieInsert")
    def cookie_insert(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "cookie_insert")

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

    @_builtins.property
    @pulumi.getter(name="cookiePassive")
    def cookie_passive(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "cookie_passive")

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

    @_builtins.property
    @pulumi.getter(name="cookieRewrite")
    def cookie_rewrite(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "cookie_rewrite")

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

    @_builtins.property
    @pulumi.getter
    def decompress(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "decompress")

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

    @_builtins.property
    @pulumi.getter
    def defer(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "defer")

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

    @_builtins.property
    @pulumi.getter(name="destinationAddress")
    def destination_address(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "destination_address")

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

    @_builtins.property
    @pulumi.getter
    def disable(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "disable")

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

    @_builtins.property
    @pulumi.getter
    def domain(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "domain")

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

    @_builtins.property
    @pulumi.getter
    def enable(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "enable")

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

    @_builtins.property
    @pulumi.getter
    def expiry(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "expiry")

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

    @_builtins.property
    @pulumi.getter(name="expirySecs")
    def expiry_secs(self) -> Optional[pulumi.Input[_builtins.int]]:
        return pulumi.get(self, "expiry_secs")

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

    @_builtins.property
    @pulumi.getter
    def expression(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "expression")

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

    @_builtins.property
    @pulumi.getter
    def extension(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "extension")

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

    @_builtins.property
    @pulumi.getter
    def facility(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "facility")

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

    @_builtins.property
    @pulumi.getter
    def forward(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        This action will affect forwarding.
        """
        return pulumi.get(self, "forward")

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

    @_builtins.property
    @pulumi.getter(name="fromProfile")
    def from_profile(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "from_profile")

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

    @_builtins.property
    @pulumi.getter
    def hash(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "hash")

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

    @_builtins.property
    @pulumi.getter
    def host(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "host")

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

    @_builtins.property
    @pulumi.getter
    def http(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "http")

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

    @_builtins.property
    @pulumi.getter(name="httpBasicAuth")
    def http_basic_auth(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "http_basic_auth")

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

    @_builtins.property
    @pulumi.getter(name="httpCookie")
    def http_cookie(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "http_cookie")

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

    @_builtins.property
    @pulumi.getter(name="httpHeader")
    def http_header(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "http_header")

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

    @_builtins.property
    @pulumi.getter(name="httpHost")
    def http_host(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "http_host")

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

    @_builtins.property
    @pulumi.getter(name="httpReferer")
    def http_referer(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "http_referer")

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

    @_builtins.property
    @pulumi.getter(name="httpReply")
    def http_reply(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "http_reply")

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

    @_builtins.property
    @pulumi.getter(name="httpSetCookie")
    def http_set_cookie(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "http_set_cookie")

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

    @_builtins.property
    @pulumi.getter(name="httpUri")
    def http_uri(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "http_uri")

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

    @_builtins.property
    @pulumi.getter
    def ifile(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "ifile")

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

    @_builtins.property
    @pulumi.getter
    def insert(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "insert")

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

    @_builtins.property
    @pulumi.getter(name="internalVirtual")
    def internal_virtual(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "internal_virtual")

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

    @_builtins.property
    @pulumi.getter(name="ipAddress")
    def ip_address(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "ip_address")

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

    @_builtins.property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "key")

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

    @_builtins.property
    @pulumi.getter
    def l7dos(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "l7dos")

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

    @_builtins.property
    @pulumi.getter
    def length(self) -> Optional[pulumi.Input[_builtins.int]]:
        return pulumi.get(self, "length")

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

    @_builtins.property
    @pulumi.getter
    def location(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "location")

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

    @_builtins.property
    @pulumi.getter
    def log(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "log")

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

    @_builtins.property
    @pulumi.getter(name="ltmPolicy")
    def ltm_policy(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "ltm_policy")

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

    @_builtins.property
    @pulumi.getter
    def member(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "member")

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

    @_builtins.property
    @pulumi.getter
    def message(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "message")

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

    @_builtins.property
    @pulumi.getter
    def netmask(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "netmask")

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

    @_builtins.property
    @pulumi.getter
    def nexthop(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "nexthop")

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

    @_builtins.property
    @pulumi.getter
    def node(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "node")

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

    @_builtins.property
    @pulumi.getter
    def offset(self) -> Optional[pulumi.Input[_builtins.int]]:
        return pulumi.get(self, "offset")

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

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "path")

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

    @_builtins.property
    @pulumi.getter
    def pem(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "pem")

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

    @_builtins.property
    @pulumi.getter
    def persist(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "persist")

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

    @_builtins.property
    @pulumi.getter
    def pin(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "pin")

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

    @_builtins.property
    @pulumi.getter
    def policy(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "policy")

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

    @_builtins.property
    @pulumi.getter
    def pool(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        This action will direct the stream to this pool.
        """
        return pulumi.get(self, "pool")

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

    @_builtins.property
    @pulumi.getter
    def port(self) -> Optional[pulumi.Input[_builtins.int]]:
        return pulumi.get(self, "port")

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

    @_builtins.property
    @pulumi.getter
    def priority(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "priority")

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

    @_builtins.property
    @pulumi.getter
    def profile(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "profile")

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

    @_builtins.property
    @pulumi.getter
    def protocol(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "protocol")

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

    @_builtins.property
    @pulumi.getter(name="queryString")
    def query_string(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "query_string")

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

    @_builtins.property
    @pulumi.getter
    def rateclass(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "rateclass")

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

    @_builtins.property
    @pulumi.getter
    def redirect(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "redirect")

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

    @_builtins.property
    @pulumi.getter
    def remove(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "remove")

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

    @_builtins.property
    @pulumi.getter
    def replace(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "replace")

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

    @_builtins.property
    @pulumi.getter
    def request(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "request")

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

    @_builtins.property
    @pulumi.getter(name="requestAdapt")
    def request_adapt(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "request_adapt")

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

    @_builtins.property
    @pulumi.getter
    def reset(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "reset")

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

    @_builtins.property
    @pulumi.getter
    def response(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "response")

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

    @_builtins.property
    @pulumi.getter(name="responseAdapt")
    def response_adapt(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "response_adapt")

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

    @_builtins.property
    @pulumi.getter
    def scheme(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "scheme")

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

    @_builtins.property
    @pulumi.getter
    def script(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "script")

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

    @_builtins.property
    @pulumi.getter
    def select(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "select")

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

    @_builtins.property
    @pulumi.getter(name="serverSsl")
    def server_ssl(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "server_ssl")

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

    @_builtins.property
    @pulumi.getter(name="setVariable")
    def set_variable(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "set_variable")

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

    @_builtins.property
    @pulumi.getter
    def shutdown(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "shutdown")

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

    @_builtins.property
    @pulumi.getter
    def snat(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "snat")

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

    @_builtins.property
    @pulumi.getter
    def snatpool(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "snatpool")

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

    @_builtins.property
    @pulumi.getter(name="sourceAddress")
    def source_address(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "source_address")

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

    @_builtins.property
    @pulumi.getter(name="sslClientHello")
    def ssl_client_hello(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "ssl_client_hello")

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

    @_builtins.property
    @pulumi.getter(name="sslServerHandshake")
    def ssl_server_handshake(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "ssl_server_handshake")

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

    @_builtins.property
    @pulumi.getter(name="sslServerHello")
    def ssl_server_hello(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "ssl_server_hello")

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

    @_builtins.property
    @pulumi.getter(name="sslSessionId")
    def ssl_session_id(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "ssl_session_id")

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

    @_builtins.property
    @pulumi.getter
    def status(self) -> Optional[pulumi.Input[_builtins.int]]:
        return pulumi.get(self, "status")

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

    @_builtins.property
    @pulumi.getter
    def tcl(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "tcl")

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

    @_builtins.property
    @pulumi.getter(name="tcpNagle")
    def tcp_nagle(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "tcp_nagle")

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

    @_builtins.property
    @pulumi.getter
    def text(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "text")

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

    @_builtins.property
    @pulumi.getter
    def timeout(self) -> Optional[pulumi.Input[_builtins.int]]:
        return pulumi.get(self, "timeout")

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

    @_builtins.property
    @pulumi.getter(name="tmName")
    def tm_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "tm_name")

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

    @_builtins.property
    @pulumi.getter
    def uie(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "uie")

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

    @_builtins.property
    @pulumi.getter
    def universal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "universal")

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

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "value")

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

    @_builtins.property
    @pulumi.getter
    def virtual(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "virtual")

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

    @_builtins.property
    @pulumi.getter
    def vlan(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "vlan")

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

    @_builtins.property
    @pulumi.getter(name="vlanId")
    def vlan_id(self) -> Optional[pulumi.Input[_builtins.int]]:
        return pulumi.get(self, "vlan_id")

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

    @_builtins.property
    @pulumi.getter
    def wam(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "wam")

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

    @_builtins.property
    @pulumi.getter
    def write(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "write")

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


if not MYPY:
    class PolicyRuleConditionArgsDict(TypedDict):
        address: NotRequired[pulumi.Input[_builtins.bool]]
        all: NotRequired[pulumi.Input[_builtins.bool]]
        app_service: NotRequired[pulumi.Input[_builtins.str]]
        browser_type: NotRequired[pulumi.Input[_builtins.bool]]
        browser_version: NotRequired[pulumi.Input[_builtins.bool]]
        case_insensitive: NotRequired[pulumi.Input[_builtins.bool]]
        case_sensitive: NotRequired[pulumi.Input[_builtins.bool]]
        cipher: NotRequired[pulumi.Input[_builtins.bool]]
        cipher_bits: NotRequired[pulumi.Input[_builtins.bool]]
        client_accepted: NotRequired[pulumi.Input[_builtins.bool]]
        client_ssl: NotRequired[pulumi.Input[_builtins.bool]]
        code: NotRequired[pulumi.Input[_builtins.bool]]
        common_name: NotRequired[pulumi.Input[_builtins.bool]]
        contains: NotRequired[pulumi.Input[_builtins.bool]]
        continent: NotRequired[pulumi.Input[_builtins.bool]]
        country_code: NotRequired[pulumi.Input[_builtins.bool]]
        country_name: NotRequired[pulumi.Input[_builtins.bool]]
        cpu_usage: NotRequired[pulumi.Input[_builtins.bool]]
        datagroup: NotRequired[pulumi.Input[_builtins.str]]
        device_make: NotRequired[pulumi.Input[_builtins.bool]]
        device_model: NotRequired[pulumi.Input[_builtins.bool]]
        domain: NotRequired[pulumi.Input[_builtins.bool]]
        ends_with: NotRequired[pulumi.Input[_builtins.bool]]
        equals: NotRequired[pulumi.Input[_builtins.bool]]
        exists: NotRequired[pulumi.Input[_builtins.bool]]
        expiry: NotRequired[pulumi.Input[_builtins.bool]]
        extension: NotRequired[pulumi.Input[_builtins.bool]]
        external: NotRequired[pulumi.Input[_builtins.bool]]
        geoip: NotRequired[pulumi.Input[_builtins.bool]]
        greater: NotRequired[pulumi.Input[_builtins.bool]]
        greater_or_equal: NotRequired[pulumi.Input[_builtins.bool]]
        host: NotRequired[pulumi.Input[_builtins.bool]]
        http_basic_auth: NotRequired[pulumi.Input[_builtins.bool]]
        http_cookie: NotRequired[pulumi.Input[_builtins.bool]]
        http_header: NotRequired[pulumi.Input[_builtins.bool]]
        http_host: NotRequired[pulumi.Input[_builtins.bool]]
        http_method: NotRequired[pulumi.Input[_builtins.bool]]
        http_referer: NotRequired[pulumi.Input[_builtins.bool]]
        http_set_cookie: NotRequired[pulumi.Input[_builtins.bool]]
        http_status: NotRequired[pulumi.Input[_builtins.bool]]
        http_uri: NotRequired[pulumi.Input[_builtins.bool]]
        http_user_agent: NotRequired[pulumi.Input[_builtins.bool]]
        http_version: NotRequired[pulumi.Input[_builtins.bool]]
        index: NotRequired[pulumi.Input[_builtins.int]]
        internal: NotRequired[pulumi.Input[_builtins.bool]]
        isp: NotRequired[pulumi.Input[_builtins.bool]]
        last15secs: NotRequired[pulumi.Input[_builtins.bool]]
        last1min: NotRequired[pulumi.Input[_builtins.bool]]
        last5mins: NotRequired[pulumi.Input[_builtins.bool]]
        less: NotRequired[pulumi.Input[_builtins.bool]]
        less_or_equal: NotRequired[pulumi.Input[_builtins.bool]]
        local: NotRequired[pulumi.Input[_builtins.bool]]
        major: NotRequired[pulumi.Input[_builtins.bool]]
        matches: NotRequired[pulumi.Input[_builtins.bool]]
        minor: NotRequired[pulumi.Input[_builtins.bool]]
        missing: NotRequired[pulumi.Input[_builtins.bool]]
        mss: NotRequired[pulumi.Input[_builtins.bool]]
        not_: NotRequired[pulumi.Input[_builtins.bool]]
        org: NotRequired[pulumi.Input[_builtins.bool]]
        password: NotRequired[pulumi.Input[_builtins.bool]]
        path: NotRequired[pulumi.Input[_builtins.bool]]
        path_segment: NotRequired[pulumi.Input[_builtins.bool]]
        port: NotRequired[pulumi.Input[_builtins.bool]]
        present: NotRequired[pulumi.Input[_builtins.bool]]
        protocol: NotRequired[pulumi.Input[_builtins.bool]]
        query_parameter: NotRequired[pulumi.Input[_builtins.bool]]
        query_string: NotRequired[pulumi.Input[_builtins.bool]]
        region_code: NotRequired[pulumi.Input[_builtins.bool]]
        region_name: NotRequired[pulumi.Input[_builtins.bool]]
        remote: NotRequired[pulumi.Input[_builtins.bool]]
        request: NotRequired[pulumi.Input[_builtins.bool]]
        response: NotRequired[pulumi.Input[_builtins.bool]]
        route_domain: NotRequired[pulumi.Input[_builtins.bool]]
        rtt: NotRequired[pulumi.Input[_builtins.bool]]
        scheme: NotRequired[pulumi.Input[_builtins.bool]]
        server_name: NotRequired[pulumi.Input[_builtins.bool]]
        ssl_cert: NotRequired[pulumi.Input[_builtins.bool]]
        ssl_client_hello: NotRequired[pulumi.Input[_builtins.bool]]
        ssl_extension: NotRequired[pulumi.Input[_builtins.bool]]
        ssl_server_handshake: NotRequired[pulumi.Input[_builtins.bool]]
        ssl_server_hello: NotRequired[pulumi.Input[_builtins.bool]]
        starts_with: NotRequired[pulumi.Input[_builtins.bool]]
        tcp: NotRequired[pulumi.Input[_builtins.bool]]
        text: NotRequired[pulumi.Input[_builtins.bool]]
        tm_name: NotRequired[pulumi.Input[_builtins.str]]
        unnamed_query_parameter: NotRequired[pulumi.Input[_builtins.bool]]
        user_agent_token: NotRequired[pulumi.Input[_builtins.bool]]
        username: NotRequired[pulumi.Input[_builtins.bool]]
        value: NotRequired[pulumi.Input[_builtins.bool]]
        values: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        version: NotRequired[pulumi.Input[_builtins.bool]]
        vlan: NotRequired[pulumi.Input[_builtins.bool]]
        vlan_id: NotRequired[pulumi.Input[_builtins.bool]]
elif False:
    PolicyRuleConditionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PolicyRuleConditionArgs:
    def __init__(__self__, *,
                 address: Optional[pulumi.Input[_builtins.bool]] = None,
                 all: Optional[pulumi.Input[_builtins.bool]] = None,
                 app_service: Optional[pulumi.Input[_builtins.str]] = None,
                 browser_type: Optional[pulumi.Input[_builtins.bool]] = None,
                 browser_version: Optional[pulumi.Input[_builtins.bool]] = None,
                 case_insensitive: Optional[pulumi.Input[_builtins.bool]] = None,
                 case_sensitive: Optional[pulumi.Input[_builtins.bool]] = None,
                 cipher: Optional[pulumi.Input[_builtins.bool]] = None,
                 cipher_bits: Optional[pulumi.Input[_builtins.bool]] = None,
                 client_accepted: Optional[pulumi.Input[_builtins.bool]] = None,
                 client_ssl: Optional[pulumi.Input[_builtins.bool]] = None,
                 code: Optional[pulumi.Input[_builtins.bool]] = None,
                 common_name: Optional[pulumi.Input[_builtins.bool]] = None,
                 contains: Optional[pulumi.Input[_builtins.bool]] = None,
                 continent: Optional[pulumi.Input[_builtins.bool]] = None,
                 country_code: Optional[pulumi.Input[_builtins.bool]] = None,
                 country_name: Optional[pulumi.Input[_builtins.bool]] = None,
                 cpu_usage: Optional[pulumi.Input[_builtins.bool]] = None,
                 datagroup: Optional[pulumi.Input[_builtins.str]] = None,
                 device_make: Optional[pulumi.Input[_builtins.bool]] = None,
                 device_model: Optional[pulumi.Input[_builtins.bool]] = None,
                 domain: Optional[pulumi.Input[_builtins.bool]] = None,
                 ends_with: Optional[pulumi.Input[_builtins.bool]] = None,
                 equals: Optional[pulumi.Input[_builtins.bool]] = None,
                 exists: Optional[pulumi.Input[_builtins.bool]] = None,
                 expiry: Optional[pulumi.Input[_builtins.bool]] = None,
                 extension: Optional[pulumi.Input[_builtins.bool]] = None,
                 external: Optional[pulumi.Input[_builtins.bool]] = None,
                 geoip: Optional[pulumi.Input[_builtins.bool]] = None,
                 greater: Optional[pulumi.Input[_builtins.bool]] = None,
                 greater_or_equal: Optional[pulumi.Input[_builtins.bool]] = None,
                 host: Optional[pulumi.Input[_builtins.bool]] = None,
                 http_basic_auth: Optional[pulumi.Input[_builtins.bool]] = None,
                 http_cookie: Optional[pulumi.Input[_builtins.bool]] = None,
                 http_header: Optional[pulumi.Input[_builtins.bool]] = None,
                 http_host: Optional[pulumi.Input[_builtins.bool]] = None,
                 http_method: Optional[pulumi.Input[_builtins.bool]] = None,
                 http_referer: Optional[pulumi.Input[_builtins.bool]] = None,
                 http_set_cookie: Optional[pulumi.Input[_builtins.bool]] = None,
                 http_status: Optional[pulumi.Input[_builtins.bool]] = None,
                 http_uri: Optional[pulumi.Input[_builtins.bool]] = None,
                 http_user_agent: Optional[pulumi.Input[_builtins.bool]] = None,
                 http_version: Optional[pulumi.Input[_builtins.bool]] = None,
                 index: Optional[pulumi.Input[_builtins.int]] = None,
                 internal: Optional[pulumi.Input[_builtins.bool]] = None,
                 isp: Optional[pulumi.Input[_builtins.bool]] = None,
                 last15secs: Optional[pulumi.Input[_builtins.bool]] = None,
                 last1min: Optional[pulumi.Input[_builtins.bool]] = None,
                 last5mins: Optional[pulumi.Input[_builtins.bool]] = None,
                 less: Optional[pulumi.Input[_builtins.bool]] = None,
                 less_or_equal: Optional[pulumi.Input[_builtins.bool]] = None,
                 local: Optional[pulumi.Input[_builtins.bool]] = None,
                 major: Optional[pulumi.Input[_builtins.bool]] = None,
                 matches: Optional[pulumi.Input[_builtins.bool]] = None,
                 minor: Optional[pulumi.Input[_builtins.bool]] = None,
                 missing: Optional[pulumi.Input[_builtins.bool]] = None,
                 mss: Optional[pulumi.Input[_builtins.bool]] = None,
                 not_: Optional[pulumi.Input[_builtins.bool]] = None,
                 org: Optional[pulumi.Input[_builtins.bool]] = None,
                 password: Optional[pulumi.Input[_builtins.bool]] = None,
                 path: Optional[pulumi.Input[_builtins.bool]] = None,
                 path_segment: Optional[pulumi.Input[_builtins.bool]] = None,
                 port: Optional[pulumi.Input[_builtins.bool]] = None,
                 present: Optional[pulumi.Input[_builtins.bool]] = None,
                 protocol: Optional[pulumi.Input[_builtins.bool]] = None,
                 query_parameter: Optional[pulumi.Input[_builtins.bool]] = None,
                 query_string: Optional[pulumi.Input[_builtins.bool]] = None,
                 region_code: Optional[pulumi.Input[_builtins.bool]] = None,
                 region_name: Optional[pulumi.Input[_builtins.bool]] = None,
                 remote: Optional[pulumi.Input[_builtins.bool]] = None,
                 request: Optional[pulumi.Input[_builtins.bool]] = None,
                 response: Optional[pulumi.Input[_builtins.bool]] = None,
                 route_domain: Optional[pulumi.Input[_builtins.bool]] = None,
                 rtt: Optional[pulumi.Input[_builtins.bool]] = None,
                 scheme: Optional[pulumi.Input[_builtins.bool]] = None,
                 server_name: Optional[pulumi.Input[_builtins.bool]] = None,
                 ssl_cert: Optional[pulumi.Input[_builtins.bool]] = None,
                 ssl_client_hello: Optional[pulumi.Input[_builtins.bool]] = None,
                 ssl_extension: Optional[pulumi.Input[_builtins.bool]] = None,
                 ssl_server_handshake: Optional[pulumi.Input[_builtins.bool]] = None,
                 ssl_server_hello: Optional[pulumi.Input[_builtins.bool]] = None,
                 starts_with: Optional[pulumi.Input[_builtins.bool]] = None,
                 tcp: Optional[pulumi.Input[_builtins.bool]] = None,
                 text: Optional[pulumi.Input[_builtins.bool]] = None,
                 tm_name: Optional[pulumi.Input[_builtins.str]] = None,
                 unnamed_query_parameter: Optional[pulumi.Input[_builtins.bool]] = None,
                 user_agent_token: Optional[pulumi.Input[_builtins.bool]] = None,
                 username: Optional[pulumi.Input[_builtins.bool]] = None,
                 value: Optional[pulumi.Input[_builtins.bool]] = None,
                 values: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 version: Optional[pulumi.Input[_builtins.bool]] = None,
                 vlan: Optional[pulumi.Input[_builtins.bool]] = None,
                 vlan_id: Optional[pulumi.Input[_builtins.bool]] = None):
        if address is not None:
            pulumi.set(__self__, "address", address)
        if all is not None:
            pulumi.set(__self__, "all", all)
        if app_service is not None:
            pulumi.set(__self__, "app_service", app_service)
        if browser_type is not None:
            pulumi.set(__self__, "browser_type", browser_type)
        if browser_version is not None:
            pulumi.set(__self__, "browser_version", browser_version)
        if case_insensitive is not None:
            pulumi.set(__self__, "case_insensitive", case_insensitive)
        if case_sensitive is not None:
            pulumi.set(__self__, "case_sensitive", case_sensitive)
        if cipher is not None:
            pulumi.set(__self__, "cipher", cipher)
        if cipher_bits is not None:
            pulumi.set(__self__, "cipher_bits", cipher_bits)
        if client_accepted is not None:
            pulumi.set(__self__, "client_accepted", client_accepted)
        if client_ssl is not None:
            pulumi.set(__self__, "client_ssl", client_ssl)
        if code is not None:
            pulumi.set(__self__, "code", code)
        if common_name is not None:
            pulumi.set(__self__, "common_name", common_name)
        if contains is not None:
            pulumi.set(__self__, "contains", contains)
        if continent is not None:
            pulumi.set(__self__, "continent", continent)
        if country_code is not None:
            pulumi.set(__self__, "country_code", country_code)
        if country_name is not None:
            pulumi.set(__self__, "country_name", country_name)
        if cpu_usage is not None:
            pulumi.set(__self__, "cpu_usage", cpu_usage)
        if datagroup is not None:
            pulumi.set(__self__, "datagroup", datagroup)
        if device_make is not None:
            pulumi.set(__self__, "device_make", device_make)
        if device_model is not None:
            pulumi.set(__self__, "device_model", device_model)
        if domain is not None:
            pulumi.set(__self__, "domain", domain)
        if ends_with is not None:
            pulumi.set(__self__, "ends_with", ends_with)
        if equals is not None:
            pulumi.set(__self__, "equals", equals)
        if exists is not None:
            pulumi.set(__self__, "exists", exists)
        if expiry is not None:
            pulumi.set(__self__, "expiry", expiry)
        if extension is not None:
            pulumi.set(__self__, "extension", extension)
        if external is not None:
            pulumi.set(__self__, "external", external)
        if geoip is not None:
            pulumi.set(__self__, "geoip", geoip)
        if greater is not None:
            pulumi.set(__self__, "greater", greater)
        if greater_or_equal is not None:
            pulumi.set(__self__, "greater_or_equal", greater_or_equal)
        if host is not None:
            pulumi.set(__self__, "host", host)
        if http_basic_auth is not None:
            pulumi.set(__self__, "http_basic_auth", http_basic_auth)
        if http_cookie is not None:
            pulumi.set(__self__, "http_cookie", http_cookie)
        if http_header is not None:
            pulumi.set(__self__, "http_header", http_header)
        if http_host is not None:
            pulumi.set(__self__, "http_host", http_host)
        if http_method is not None:
            pulumi.set(__self__, "http_method", http_method)
        if http_referer is not None:
            pulumi.set(__self__, "http_referer", http_referer)
        if http_set_cookie is not None:
            pulumi.set(__self__, "http_set_cookie", http_set_cookie)
        if http_status is not None:
            pulumi.set(__self__, "http_status", http_status)
        if http_uri is not None:
            pulumi.set(__self__, "http_uri", http_uri)
        if http_user_agent is not None:
            pulumi.set(__self__, "http_user_agent", http_user_agent)
        if http_version is not None:
            pulumi.set(__self__, "http_version", http_version)
        if index is not None:
            pulumi.set(__self__, "index", index)
        if internal is not None:
            pulumi.set(__self__, "internal", internal)
        if isp is not None:
            pulumi.set(__self__, "isp", isp)
        if last15secs is not None:
            pulumi.set(__self__, "last15secs", last15secs)
        if last1min is not None:
            pulumi.set(__self__, "last1min", last1min)
        if last5mins is not None:
            pulumi.set(__self__, "last5mins", last5mins)
        if less is not None:
            pulumi.set(__self__, "less", less)
        if less_or_equal is not None:
            pulumi.set(__self__, "less_or_equal", less_or_equal)
        if local is not None:
            pulumi.set(__self__, "local", local)
        if major is not None:
            pulumi.set(__self__, "major", major)
        if matches is not None:
            pulumi.set(__self__, "matches", matches)
        if minor is not None:
            pulumi.set(__self__, "minor", minor)
        if missing is not None:
            pulumi.set(__self__, "missing", missing)
        if mss is not None:
            pulumi.set(__self__, "mss", mss)
        if not_ is not None:
            pulumi.set(__self__, "not_", not_)
        if org is not None:
            pulumi.set(__self__, "org", org)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if path_segment is not None:
            pulumi.set(__self__, "path_segment", path_segment)
        if port is not None:
            pulumi.set(__self__, "port", port)
        if present is not None:
            pulumi.set(__self__, "present", present)
        if protocol is not None:
            pulumi.set(__self__, "protocol", protocol)
        if query_parameter is not None:
            pulumi.set(__self__, "query_parameter", query_parameter)
        if query_string is not None:
            pulumi.set(__self__, "query_string", query_string)
        if region_code is not None:
            pulumi.set(__self__, "region_code", region_code)
        if region_name is not None:
            pulumi.set(__self__, "region_name", region_name)
        if remote is not None:
            pulumi.set(__self__, "remote", remote)
        if request is not None:
            pulumi.set(__self__, "request", request)
        if response is not None:
            pulumi.set(__self__, "response", response)
        if route_domain is not None:
            pulumi.set(__self__, "route_domain", route_domain)
        if rtt is not None:
            pulumi.set(__self__, "rtt", rtt)
        if scheme is not None:
            pulumi.set(__self__, "scheme", scheme)
        if server_name is not None:
            pulumi.set(__self__, "server_name", server_name)
        if ssl_cert is not None:
            pulumi.set(__self__, "ssl_cert", ssl_cert)
        if ssl_client_hello is not None:
            pulumi.set(__self__, "ssl_client_hello", ssl_client_hello)
        if ssl_extension is not None:
            pulumi.set(__self__, "ssl_extension", ssl_extension)
        if ssl_server_handshake is not None:
            pulumi.set(__self__, "ssl_server_handshake", ssl_server_handshake)
        if ssl_server_hello is not None:
            pulumi.set(__self__, "ssl_server_hello", ssl_server_hello)
        if starts_with is not None:
            pulumi.set(__self__, "starts_with", starts_with)
        if tcp is not None:
            pulumi.set(__self__, "tcp", tcp)
        if text is not None:
            pulumi.set(__self__, "text", text)
        if tm_name is not None:
            pulumi.set(__self__, "tm_name", tm_name)
        if unnamed_query_parameter is not None:
            pulumi.set(__self__, "unnamed_query_parameter", unnamed_query_parameter)
        if user_agent_token is not None:
            pulumi.set(__self__, "user_agent_token", user_agent_token)
        if username is not None:
            pulumi.set(__self__, "username", username)
        if value is not None:
            pulumi.set(__self__, "value", value)
        if values is not None:
            pulumi.set(__self__, "values", values)
        if version is not None:
            pulumi.set(__self__, "version", version)
        if vlan is not None:
            pulumi.set(__self__, "vlan", vlan)
        if vlan_id is not None:
            pulumi.set(__self__, "vlan_id", vlan_id)

    @_builtins.property
    @pulumi.getter
    def address(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "address")

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

    @_builtins.property
    @pulumi.getter
    def all(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "all")

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

    @_builtins.property
    @pulumi.getter(name="appService")
    def app_service(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "app_service")

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

    @_builtins.property
    @pulumi.getter(name="browserType")
    def browser_type(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "browser_type")

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

    @_builtins.property
    @pulumi.getter(name="browserVersion")
    def browser_version(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "browser_version")

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

    @_builtins.property
    @pulumi.getter(name="caseInsensitive")
    def case_insensitive(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "case_insensitive")

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

    @_builtins.property
    @pulumi.getter(name="caseSensitive")
    def case_sensitive(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "case_sensitive")

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

    @_builtins.property
    @pulumi.getter
    def cipher(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "cipher")

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

    @_builtins.property
    @pulumi.getter(name="cipherBits")
    def cipher_bits(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "cipher_bits")

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

    @_builtins.property
    @pulumi.getter(name="clientAccepted")
    def client_accepted(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "client_accepted")

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

    @_builtins.property
    @pulumi.getter(name="clientSsl")
    def client_ssl(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "client_ssl")

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

    @_builtins.property
    @pulumi.getter
    def code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "code")

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

    @_builtins.property
    @pulumi.getter(name="commonName")
    def common_name(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "common_name")

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

    @_builtins.property
    @pulumi.getter
    def contains(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "contains")

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

    @_builtins.property
    @pulumi.getter
    def continent(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "continent")

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

    @_builtins.property
    @pulumi.getter(name="countryCode")
    def country_code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "country_code")

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

    @_builtins.property
    @pulumi.getter(name="countryName")
    def country_name(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "country_name")

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

    @_builtins.property
    @pulumi.getter(name="cpuUsage")
    def cpu_usage(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "cpu_usage")

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

    @_builtins.property
    @pulumi.getter
    def datagroup(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "datagroup")

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

    @_builtins.property
    @pulumi.getter(name="deviceMake")
    def device_make(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "device_make")

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

    @_builtins.property
    @pulumi.getter(name="deviceModel")
    def device_model(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "device_model")

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

    @_builtins.property
    @pulumi.getter
    def domain(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "domain")

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

    @_builtins.property
    @pulumi.getter(name="endsWith")
    def ends_with(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "ends_with")

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

    @_builtins.property
    @pulumi.getter
    def equals(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "equals")

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

    @_builtins.property
    @pulumi.getter
    def exists(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "exists")

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

    @_builtins.property
    @pulumi.getter
    def expiry(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "expiry")

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

    @_builtins.property
    @pulumi.getter
    def extension(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "extension")

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

    @_builtins.property
    @pulumi.getter
    def external(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "external")

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

    @_builtins.property
    @pulumi.getter
    def geoip(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "geoip")

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

    @_builtins.property
    @pulumi.getter
    def greater(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "greater")

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

    @_builtins.property
    @pulumi.getter(name="greaterOrEqual")
    def greater_or_equal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "greater_or_equal")

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

    @_builtins.property
    @pulumi.getter
    def host(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "host")

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

    @_builtins.property
    @pulumi.getter(name="httpBasicAuth")
    def http_basic_auth(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "http_basic_auth")

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

    @_builtins.property
    @pulumi.getter(name="httpCookie")
    def http_cookie(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "http_cookie")

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

    @_builtins.property
    @pulumi.getter(name="httpHeader")
    def http_header(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "http_header")

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

    @_builtins.property
    @pulumi.getter(name="httpHost")
    def http_host(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "http_host")

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

    @_builtins.property
    @pulumi.getter(name="httpMethod")
    def http_method(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "http_method")

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

    @_builtins.property
    @pulumi.getter(name="httpReferer")
    def http_referer(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "http_referer")

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

    @_builtins.property
    @pulumi.getter(name="httpSetCookie")
    def http_set_cookie(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "http_set_cookie")

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

    @_builtins.property
    @pulumi.getter(name="httpStatus")
    def http_status(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "http_status")

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

    @_builtins.property
    @pulumi.getter(name="httpUri")
    def http_uri(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "http_uri")

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

    @_builtins.property
    @pulumi.getter(name="httpUserAgent")
    def http_user_agent(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "http_user_agent")

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

    @_builtins.property
    @pulumi.getter(name="httpVersion")
    def http_version(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "http_version")

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

    @_builtins.property
    @pulumi.getter
    def index(self) -> Optional[pulumi.Input[_builtins.int]]:
        return pulumi.get(self, "index")

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

    @_builtins.property
    @pulumi.getter
    def internal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "internal")

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

    @_builtins.property
    @pulumi.getter
    def isp(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "isp")

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

    @_builtins.property
    @pulumi.getter
    def last15secs(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "last15secs")

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

    @_builtins.property
    @pulumi.getter
    def last1min(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "last1min")

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

    @_builtins.property
    @pulumi.getter
    def last5mins(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "last5mins")

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

    @_builtins.property
    @pulumi.getter
    def less(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "less")

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

    @_builtins.property
    @pulumi.getter(name="lessOrEqual")
    def less_or_equal(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "less_or_equal")

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

    @_builtins.property
    @pulumi.getter
    def local(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "local")

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

    @_builtins.property
    @pulumi.getter
    def major(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "major")

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

    @_builtins.property
    @pulumi.getter
    def matches(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "matches")

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

    @_builtins.property
    @pulumi.getter
    def minor(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "minor")

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

    @_builtins.property
    @pulumi.getter
    def missing(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "missing")

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

    @_builtins.property
    @pulumi.getter
    def mss(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "mss")

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

    @_builtins.property
    @pulumi.getter(name="not")
    def not_(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "not_")

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

    @_builtins.property
    @pulumi.getter
    def org(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "org")

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

    @_builtins.property
    @pulumi.getter
    def password(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "password")

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

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "path")

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

    @_builtins.property
    @pulumi.getter(name="pathSegment")
    def path_segment(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "path_segment")

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

    @_builtins.property
    @pulumi.getter
    def port(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "port")

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

    @_builtins.property
    @pulumi.getter
    def present(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "present")

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

    @_builtins.property
    @pulumi.getter
    def protocol(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "protocol")

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

    @_builtins.property
    @pulumi.getter(name="queryParameter")
    def query_parameter(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "query_parameter")

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

    @_builtins.property
    @pulumi.getter(name="queryString")
    def query_string(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "query_string")

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

    @_builtins.property
    @pulumi.getter(name="regionCode")
    def region_code(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "region_code")

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

    @_builtins.property
    @pulumi.getter(name="regionName")
    def region_name(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "region_name")

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

    @_builtins.property
    @pulumi.getter
    def remote(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "remote")

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

    @_builtins.property
    @pulumi.getter
    def request(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "request")

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

    @_builtins.property
    @pulumi.getter
    def response(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "response")

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

    @_builtins.property
    @pulumi.getter(name="routeDomain")
    def route_domain(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "route_domain")

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

    @_builtins.property
    @pulumi.getter
    def rtt(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "rtt")

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

    @_builtins.property
    @pulumi.getter
    def scheme(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "scheme")

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

    @_builtins.property
    @pulumi.getter(name="serverName")
    def server_name(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "server_name")

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

    @_builtins.property
    @pulumi.getter(name="sslCert")
    def ssl_cert(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "ssl_cert")

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

    @_builtins.property
    @pulumi.getter(name="sslClientHello")
    def ssl_client_hello(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "ssl_client_hello")

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

    @_builtins.property
    @pulumi.getter(name="sslExtension")
    def ssl_extension(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "ssl_extension")

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

    @_builtins.property
    @pulumi.getter(name="sslServerHandshake")
    def ssl_server_handshake(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "ssl_server_handshake")

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

    @_builtins.property
    @pulumi.getter(name="sslServerHello")
    def ssl_server_hello(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "ssl_server_hello")

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

    @_builtins.property
    @pulumi.getter(name="startsWith")
    def starts_with(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "starts_with")

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

    @_builtins.property
    @pulumi.getter
    def tcp(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "tcp")

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

    @_builtins.property
    @pulumi.getter
    def text(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "text")

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

    @_builtins.property
    @pulumi.getter(name="tmName")
    def tm_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        return pulumi.get(self, "tm_name")

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

    @_builtins.property
    @pulumi.getter(name="unnamedQueryParameter")
    def unnamed_query_parameter(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "unnamed_query_parameter")

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

    @_builtins.property
    @pulumi.getter(name="userAgentToken")
    def user_agent_token(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "user_agent_token")

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

    @_builtins.property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "username")

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

    @_builtins.property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "value")

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

    @_builtins.property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        return pulumi.get(self, "values")

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

    @_builtins.property
    @pulumi.getter
    def version(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "version")

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

    @_builtins.property
    @pulumi.getter
    def vlan(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "vlan")

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

    @_builtins.property
    @pulumi.getter(name="vlanId")
    def vlan_id(self) -> Optional[pulumi.Input[_builtins.bool]]:
        return pulumi.get(self, "vlan_id")

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


if not MYPY:
    class ProfileClientSslCertKeyChainArgsDict(TypedDict):
        cert: NotRequired[pulumi.Input[_builtins.str]]
        """
        Specifies the name of the certificate that the system uses for client-side SSL processing. The default is `default`
        """
        chain: NotRequired[pulumi.Input[_builtins.str]]
        """
        Specifies a certificate chain file that a server can use for authentication. The default is `None`.
        """
        key: NotRequired[pulumi.Input[_builtins.str]]
        """
        Specifies the file name of the SSL key. The default is `default`
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of Cert-key-chain
        """
        passphrase: NotRequired[pulumi.Input[_builtins.str]]
        """
        Type the name of the pass phrase used to encrypt the key.
        """
elif False:
    ProfileClientSslCertKeyChainArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ProfileClientSslCertKeyChainArgs:
    def __init__(__self__, *,
                 cert: Optional[pulumi.Input[_builtins.str]] = None,
                 chain: Optional[pulumi.Input[_builtins.str]] = None,
                 key: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 passphrase: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] cert: Specifies the name of the certificate that the system uses for client-side SSL processing. The default is `default`
        :param pulumi.Input[_builtins.str] chain: Specifies a certificate chain file that a server can use for authentication. The default is `None`.
        :param pulumi.Input[_builtins.str] key: Specifies the file name of the SSL key. The default is `default`
        :param pulumi.Input[_builtins.str] name: Name of Cert-key-chain
        :param pulumi.Input[_builtins.str] passphrase: Type the name of the pass phrase used to encrypt the key.
        """
        if cert is not None:
            pulumi.set(__self__, "cert", cert)
        if chain is not None:
            pulumi.set(__self__, "chain", chain)
        if key is not None:
            pulumi.set(__self__, "key", key)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if passphrase is not None:
            pulumi.set(__self__, "passphrase", passphrase)

    @_builtins.property
    @pulumi.getter
    def cert(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Specifies the name of the certificate that the system uses for client-side SSL processing. The default is `default`
        """
        return pulumi.get(self, "cert")

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

    @_builtins.property
    @pulumi.getter
    def chain(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Specifies a certificate chain file that a server can use for authentication. The default is `None`.
        """
        return pulumi.get(self, "chain")

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

    @_builtins.property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Specifies the file name of the SSL key. The default is `default`
        """
        return pulumi.get(self, "key")

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

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

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

    @_builtins.property
    @pulumi.getter
    def passphrase(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Type the name of the pass phrase used to encrypt the key.
        """
        return pulumi.get(self, "passphrase")

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


if not MYPY:
    class ProfileHttpEnforcementArgsDict(TypedDict):
        known_methods: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
        """
        Specifies which HTTP methods count as being known. Removing RFC-defined methods from this list will cause the HTTP filter to not recognize them. Default value is [CONNECT DELETE GET HEAD LOCK OPTIONS POST PROPFIND PUT TRACE UNLOCK].If no value is specified while creating, then default value will be assigned by BigIP. In order to remove it, [""] list is to be passed. If known_methods is commented (or not passed) during the update call, then no changes would be applied and previous value will persist. In order to put default value , we need to pass [CONNECT DELETE GET HEAD LOCK OPTIONS POST PROPFIND PUT TRACE UNLOCK] explicitly.
        """
        max_header_count: NotRequired[pulumi.Input[_builtins.int]]
        """
        Specifies the maximum number of headers allowed in HTTP request/response. The default is 64 headers.If no value is specified while creating, then default value will be assigned by BigIP. If max_header_count is commented (or not passed) during the update call, then no changes would be applied and previous value will persist. In order to put default value, we need to pass "64" explicitly.
        """
        max_header_size: NotRequired[pulumi.Input[_builtins.int]]
        """
        Specifies the maximum header size. The default value is 32768. If no string is specified while creating, then default value will be assigned by BigIP. If max_header_size is commented (or not passed) during the update call, then no changes would be applied and previous value will persist. In order to put default value, we need to pass "32768" explicitly.
        """
        unknown_method: NotRequired[pulumi.Input[_builtins.str]]
        """
        Specifies whether to allow, reject or switch to pass-through mode when an unknown HTTP method is parsed. Default value is "allow". If no string is specified while creating, then default value will be assigned by BigIP. If unknown_method is commented (or not passed) during the update call, then no changes would be applied and previous value will persist. In order to put default value, we need to pass "allow" explicitly.
        """
elif False:
    ProfileHttpEnforcementArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ProfileHttpEnforcementArgs:
    def __init__(__self__, *,
                 known_methods: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 max_header_count: Optional[pulumi.Input[_builtins.int]] = None,
                 max_header_size: Optional[pulumi.Input[_builtins.int]] = None,
                 unknown_method: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] known_methods: Specifies which HTTP methods count as being known. Removing RFC-defined methods from this list will cause the HTTP filter to not recognize them. Default value is [CONNECT DELETE GET HEAD LOCK OPTIONS POST PROPFIND PUT TRACE UNLOCK].If no value is specified while creating, then default value will be assigned by BigIP. In order to remove it, [""] list is to be passed. If known_methods is commented (or not passed) during the update call, then no changes would be applied and previous value will persist. In order to put default value , we need to pass [CONNECT DELETE GET HEAD LOCK OPTIONS POST PROPFIND PUT TRACE UNLOCK] explicitly.
        :param pulumi.Input[_builtins.int] max_header_count: Specifies the maximum number of headers allowed in HTTP request/response. The default is 64 headers.If no value is specified while creating, then default value will be assigned by BigIP. If max_header_count is commented (or not passed) during the update call, then no changes would be applied and previous value will persist. In order to put default value, we need to pass "64" explicitly.
        :param pulumi.Input[_builtins.int] max_header_size: Specifies the maximum header size. The default value is 32768. If no string is specified while creating, then default value will be assigned by BigIP. If max_header_size is commented (or not passed) during the update call, then no changes would be applied and previous value will persist. In order to put default value, we need to pass "32768" explicitly.
        :param pulumi.Input[_builtins.str] unknown_method: Specifies whether to allow, reject or switch to pass-through mode when an unknown HTTP method is parsed. Default value is "allow". If no string is specified while creating, then default value will be assigned by BigIP. If unknown_method is commented (or not passed) during the update call, then no changes would be applied and previous value will persist. In order to put default value, we need to pass "allow" explicitly.
        """
        if known_methods is not None:
            pulumi.set(__self__, "known_methods", known_methods)
        if max_header_count is not None:
            pulumi.set(__self__, "max_header_count", max_header_count)
        if max_header_size is not None:
            pulumi.set(__self__, "max_header_size", max_header_size)
        if unknown_method is not None:
            pulumi.set(__self__, "unknown_method", unknown_method)

    @_builtins.property
    @pulumi.getter(name="knownMethods")
    def known_methods(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        Specifies which HTTP methods count as being known. Removing RFC-defined methods from this list will cause the HTTP filter to not recognize them. Default value is [CONNECT DELETE GET HEAD LOCK OPTIONS POST PROPFIND PUT TRACE UNLOCK].If no value is specified while creating, then default value will be assigned by BigIP. In order to remove it, [""] list is to be passed. If known_methods is commented (or not passed) during the update call, then no changes would be applied and previous value will persist. In order to put default value , we need to pass [CONNECT DELETE GET HEAD LOCK OPTIONS POST PROPFIND PUT TRACE UNLOCK] explicitly.
        """
        return pulumi.get(self, "known_methods")

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

    @_builtins.property
    @pulumi.getter(name="maxHeaderCount")
    def max_header_count(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Specifies the maximum number of headers allowed in HTTP request/response. The default is 64 headers.If no value is specified while creating, then default value will be assigned by BigIP. If max_header_count is commented (or not passed) during the update call, then no changes would be applied and previous value will persist. In order to put default value, we need to pass "64" explicitly.
        """
        return pulumi.get(self, "max_header_count")

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

    @_builtins.property
    @pulumi.getter(name="maxHeaderSize")
    def max_header_size(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Specifies the maximum header size. The default value is 32768. If no string is specified while creating, then default value will be assigned by BigIP. If max_header_size is commented (or not passed) during the update call, then no changes would be applied and previous value will persist. In order to put default value, we need to pass "32768" explicitly.
        """
        return pulumi.get(self, "max_header_size")

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

    @_builtins.property
    @pulumi.getter(name="unknownMethod")
    def unknown_method(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Specifies whether to allow, reject or switch to pass-through mode when an unknown HTTP method is parsed. Default value is "allow". If no string is specified while creating, then default value will be assigned by BigIP. If unknown_method is commented (or not passed) during the update call, then no changes would be applied and previous value will persist. In order to put default value, we need to pass "allow" explicitly.
        """
        return pulumi.get(self, "unknown_method")

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


if not MYPY:
    class ProfileHttpHttpStrictTransportSecurityArgsDict(TypedDict):
        include_subdomains: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Include Subdomains setting applies the HSTS policy to the HSTS host and its subdomains. The default is "enabled". If no string is specified during Create, then default value will be assigned by BigIp. If include_subdomains is commented (or not passed) during the update call, then no changes would be applied and previous value will persist. In order to put default value, we need to pass "enabled" explicitly.
        """
        maximum_age: NotRequired[pulumi.Input[_builtins.int]]
        """
        The Maximum Age value specifies the length of time, in seconds, that HSTS functionality requests that clients only use HTTPS to connect to the current host and any subdomains of the current host's domain name.  The default is 16070400 seconds. If no value is specified during Create, then default value will be assigned by BigIp. If maximum_age is commented (or not passed) during the update call, then no changes would be applied and previous value will persist. In order to put default value , we need to pass 16070400 explicitly.
        """
        mode: NotRequired[pulumi.Input[_builtins.str]]
        """
        The Mode setting enables and disables HSTS functionality within the HTTP profile. The default is "disabled". If no string is specified during Create, then default value will be assigned by BigIp. If mode is commented (or not passed) during the update call, then no changes would be applied and previous value will persist. In order to put default value, we need to pass "disabled" explicitly.
        """
        preload: NotRequired[pulumi.Input[_builtins.str]]
        """
        An HSTS preload list is a list of domains built into a web browser. When you enable the Preload setting, the domain for the web site that this HTTP profile is associated with is submitted for inclusion in the browser's preload list. The default is "disabled". If no string is specified during Create, then default value will be assigned by BigIp. If preload is commented (or not passed) during the update call, then no changes would be applied and previous value will persist. In order to put default value, we need to pass "disabled" explicitly.
        """
elif False:
    ProfileHttpHttpStrictTransportSecurityArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ProfileHttpHttpStrictTransportSecurityArgs:
    def __init__(__self__, *,
                 include_subdomains: Optional[pulumi.Input[_builtins.str]] = None,
                 maximum_age: Optional[pulumi.Input[_builtins.int]] = None,
                 mode: Optional[pulumi.Input[_builtins.str]] = None,
                 preload: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] include_subdomains: The Include Subdomains setting applies the HSTS policy to the HSTS host and its subdomains. The default is "enabled". If no string is specified during Create, then default value will be assigned by BigIp. If include_subdomains is commented (or not passed) during the update call, then no changes would be applied and previous value will persist. In order to put default value, we need to pass "enabled" explicitly.
        :param pulumi.Input[_builtins.int] maximum_age: The Maximum Age value specifies the length of time, in seconds, that HSTS functionality requests that clients only use HTTPS to connect to the current host and any subdomains of the current host's domain name.  The default is 16070400 seconds. If no value is specified during Create, then default value will be assigned by BigIp. If maximum_age is commented (or not passed) during the update call, then no changes would be applied and previous value will persist. In order to put default value , we need to pass 16070400 explicitly.
        :param pulumi.Input[_builtins.str] mode: The Mode setting enables and disables HSTS functionality within the HTTP profile. The default is "disabled". If no string is specified during Create, then default value will be assigned by BigIp. If mode is commented (or not passed) during the update call, then no changes would be applied and previous value will persist. In order to put default value, we need to pass "disabled" explicitly.
        :param pulumi.Input[_builtins.str] preload: An HSTS preload list is a list of domains built into a web browser. When you enable the Preload setting, the domain for the web site that this HTTP profile is associated with is submitted for inclusion in the browser's preload list. The default is "disabled". If no string is specified during Create, then default value will be assigned by BigIp. If preload is commented (or not passed) during the update call, then no changes would be applied and previous value will persist. In order to put default value, we need to pass "disabled" explicitly.
        """
        if include_subdomains is not None:
            pulumi.set(__self__, "include_subdomains", include_subdomains)
        if maximum_age is not None:
            pulumi.set(__self__, "maximum_age", maximum_age)
        if mode is not None:
            pulumi.set(__self__, "mode", mode)
        if preload is not None:
            pulumi.set(__self__, "preload", preload)

    @_builtins.property
    @pulumi.getter(name="includeSubdomains")
    def include_subdomains(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Include Subdomains setting applies the HSTS policy to the HSTS host and its subdomains. The default is "enabled". If no string is specified during Create, then default value will be assigned by BigIp. If include_subdomains is commented (or not passed) during the update call, then no changes would be applied and previous value will persist. In order to put default value, we need to pass "enabled" explicitly.
        """
        return pulumi.get(self, "include_subdomains")

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

    @_builtins.property
    @pulumi.getter(name="maximumAge")
    def maximum_age(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        The Maximum Age value specifies the length of time, in seconds, that HSTS functionality requests that clients only use HTTPS to connect to the current host and any subdomains of the current host's domain name.  The default is 16070400 seconds. If no value is specified during Create, then default value will be assigned by BigIp. If maximum_age is commented (or not passed) during the update call, then no changes would be applied and previous value will persist. In order to put default value , we need to pass 16070400 explicitly.
        """
        return pulumi.get(self, "maximum_age")

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

    @_builtins.property
    @pulumi.getter
    def mode(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Mode setting enables and disables HSTS functionality within the HTTP profile. The default is "disabled". If no string is specified during Create, then default value will be assigned by BigIp. If mode is commented (or not passed) during the update call, then no changes would be applied and previous value will persist. In order to put default value, we need to pass "disabled" explicitly.
        """
        return pulumi.get(self, "mode")

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

    @_builtins.property
    @pulumi.getter
    def preload(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        An HSTS preload list is a list of domains built into a web browser. When you enable the Preload setting, the domain for the web site that this HTTP profile is associated with is submitted for inclusion in the browser's preload list. The default is "disabled". If no string is specified during Create, then default value will be assigned by BigIp. If preload is commented (or not passed) during the update call, then no changes would be applied and previous value will persist. In order to put default value, we need to pass "disabled" explicitly.
        """
        return pulumi.get(self, "preload")

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


if not MYPY:
    class ProfileRewriteCookieRuleArgsDict(TypedDict):
        client_domain: pulumi.Input[_builtins.str]
        client_path: pulumi.Input[_builtins.str]
        rule_name: pulumi.Input[_builtins.str]
        """
        Name of the cookie rewrite rule.
        """
        server_domain: pulumi.Input[_builtins.str]
        server_path: pulumi.Input[_builtins.str]
elif False:
    ProfileRewriteCookieRuleArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ProfileRewriteCookieRuleArgs:
    def __init__(__self__, *,
                 client_domain: pulumi.Input[_builtins.str],
                 client_path: pulumi.Input[_builtins.str],
                 rule_name: pulumi.Input[_builtins.str],
                 server_domain: pulumi.Input[_builtins.str],
                 server_path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] rule_name: Name of the cookie rewrite rule.
        """
        pulumi.set(__self__, "client_domain", client_domain)
        pulumi.set(__self__, "client_path", client_path)
        pulumi.set(__self__, "rule_name", rule_name)
        pulumi.set(__self__, "server_domain", server_domain)
        pulumi.set(__self__, "server_path", server_path)

    @_builtins.property
    @pulumi.getter(name="clientDomain")
    def client_domain(self) -> pulumi.Input[_builtins.str]:
        return pulumi.get(self, "client_domain")

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

    @_builtins.property
    @pulumi.getter(name="clientPath")
    def client_path(self) -> pulumi.Input[_builtins.str]:
        return pulumi.get(self, "client_path")

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

    @_builtins.property
    @pulumi.getter(name="ruleName")
    def rule_name(self) -> pulumi.Input[_builtins.str]:
        """
        Name of the cookie rewrite rule.
        """
        return pulumi.get(self, "rule_name")

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

    @_builtins.property
    @pulumi.getter(name="serverDomain")
    def server_domain(self) -> pulumi.Input[_builtins.str]:
        return pulumi.get(self, "server_domain")

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

    @_builtins.property
    @pulumi.getter(name="serverPath")
    def server_path(self) -> pulumi.Input[_builtins.str]:
        return pulumi.get(self, "server_path")

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


if not MYPY:
    class ProfileRewriteRequestArgsDict(TypedDict):
        insert_xfwd_for: NotRequired[pulumi.Input[_builtins.str]]
        """
        Enable to add the X-Forwarded For (XFF) header, to specify the originating IP address of the client. Valid choices are: `enabled, disabled`
        """
        insert_xfwd_host: NotRequired[pulumi.Input[_builtins.str]]
        """
        Enable to add the X-Forwarded Host header, to specify the originating host of the client. Valid choices are: `enabled, disabled`
        """
        insert_xfwd_protocol: NotRequired[pulumi.Input[_builtins.str]]
        """
        Enable to add the X-Forwarded Proto header, to specify the originating protocol of the client. Valid choices are: `enabled, disabled`
        """
        rewrite_headers: NotRequired[pulumi.Input[_builtins.str]]
        """
        Enable to rewrite headers in Request settings. Valid choices are: `enabled, disabled`
        """
elif False:
    ProfileRewriteRequestArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ProfileRewriteRequestArgs:
    def __init__(__self__, *,
                 insert_xfwd_for: Optional[pulumi.Input[_builtins.str]] = None,
                 insert_xfwd_host: Optional[pulumi.Input[_builtins.str]] = None,
                 insert_xfwd_protocol: Optional[pulumi.Input[_builtins.str]] = None,
                 rewrite_headers: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] insert_xfwd_for: Enable to add the X-Forwarded For (XFF) header, to specify the originating IP address of the client. Valid choices are: `enabled, disabled`
        :param pulumi.Input[_builtins.str] insert_xfwd_host: Enable to add the X-Forwarded Host header, to specify the originating host of the client. Valid choices are: `enabled, disabled`
        :param pulumi.Input[_builtins.str] insert_xfwd_protocol: Enable to add the X-Forwarded Proto header, to specify the originating protocol of the client. Valid choices are: `enabled, disabled`
        :param pulumi.Input[_builtins.str] rewrite_headers: Enable to rewrite headers in Request settings. Valid choices are: `enabled, disabled`
        """
        if insert_xfwd_for is not None:
            pulumi.set(__self__, "insert_xfwd_for", insert_xfwd_for)
        if insert_xfwd_host is not None:
            pulumi.set(__self__, "insert_xfwd_host", insert_xfwd_host)
        if insert_xfwd_protocol is not None:
            pulumi.set(__self__, "insert_xfwd_protocol", insert_xfwd_protocol)
        if rewrite_headers is not None:
            pulumi.set(__self__, "rewrite_headers", rewrite_headers)

    @_builtins.property
    @pulumi.getter(name="insertXfwdFor")
    def insert_xfwd_for(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Enable to add the X-Forwarded For (XFF) header, to specify the originating IP address of the client. Valid choices are: `enabled, disabled`
        """
        return pulumi.get(self, "insert_xfwd_for")

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

    @_builtins.property
    @pulumi.getter(name="insertXfwdHost")
    def insert_xfwd_host(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Enable to add the X-Forwarded Host header, to specify the originating host of the client. Valid choices are: `enabled, disabled`
        """
        return pulumi.get(self, "insert_xfwd_host")

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

    @_builtins.property
    @pulumi.getter(name="insertXfwdProtocol")
    def insert_xfwd_protocol(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Enable to add the X-Forwarded Proto header, to specify the originating protocol of the client. Valid choices are: `enabled, disabled`
        """
        return pulumi.get(self, "insert_xfwd_protocol")

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

    @_builtins.property
    @pulumi.getter(name="rewriteHeaders")
    def rewrite_headers(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Enable to rewrite headers in Request settings. Valid choices are: `enabled, disabled`
        """
        return pulumi.get(self, "rewrite_headers")

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


if not MYPY:
    class ProfileRewriteResponseArgsDict(TypedDict):
        rewrite_content: NotRequired[pulumi.Input[_builtins.str]]
        """
        Enable to rewrite links in content in the response. Valid choices are: `enabled, disabled`
        """
        rewrite_headers: NotRequired[pulumi.Input[_builtins.str]]
        """
        Enable to rewrite headers in the response. Valid choices are: `enabled, disabled`
        """
elif False:
    ProfileRewriteResponseArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ProfileRewriteResponseArgs:
    def __init__(__self__, *,
                 rewrite_content: Optional[pulumi.Input[_builtins.str]] = None,
                 rewrite_headers: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] rewrite_content: Enable to rewrite links in content in the response. Valid choices are: `enabled, disabled`
        :param pulumi.Input[_builtins.str] rewrite_headers: Enable to rewrite headers in the response. Valid choices are: `enabled, disabled`
        """
        if rewrite_content is not None:
            pulumi.set(__self__, "rewrite_content", rewrite_content)
        if rewrite_headers is not None:
            pulumi.set(__self__, "rewrite_headers", rewrite_headers)

    @_builtins.property
    @pulumi.getter(name="rewriteContent")
    def rewrite_content(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Enable to rewrite links in content in the response. Valid choices are: `enabled, disabled`
        """
        return pulumi.get(self, "rewrite_content")

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

    @_builtins.property
    @pulumi.getter(name="rewriteHeaders")
    def rewrite_headers(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Enable to rewrite headers in the response. Valid choices are: `enabled, disabled`
        """
        return pulumi.get(self, "rewrite_headers")

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


if not MYPY:
    class ProfileRewriteUriRulesClientArgsDict(TypedDict):
        host: pulumi.Input[_builtins.str]
        """
        Host part of the uri, e.g. `www.foo.com`.
        """
        scheme: pulumi.Input[_builtins.str]
        """
        Scheme part of the uri, e.g. `https`, `ftp`.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Path part of the uri, must always end with `/`. Default value is: `/`
        """
        port: NotRequired[pulumi.Input[_builtins.str]]
        """
        Port part of the uri. Default value is: `none`
        """
elif False:
    ProfileRewriteUriRulesClientArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ProfileRewriteUriRulesClientArgs:
    def __init__(__self__, *,
                 host: pulumi.Input[_builtins.str],
                 scheme: pulumi.Input[_builtins.str],
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 port: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] host: Host part of the uri, e.g. `www.foo.com`.
        :param pulumi.Input[_builtins.str] scheme: Scheme part of the uri, e.g. `https`, `ftp`.
        :param pulumi.Input[_builtins.str] path: Path part of the uri, must always end with `/`. Default value is: `/`
        :param pulumi.Input[_builtins.str] port: Port part of the uri. Default value is: `none`
        """
        pulumi.set(__self__, "host", host)
        pulumi.set(__self__, "scheme", scheme)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if port is not None:
            pulumi.set(__self__, "port", port)

    @_builtins.property
    @pulumi.getter
    def host(self) -> pulumi.Input[_builtins.str]:
        """
        Host part of the uri, e.g. `www.foo.com`.
        """
        return pulumi.get(self, "host")

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

    @_builtins.property
    @pulumi.getter
    def scheme(self) -> pulumi.Input[_builtins.str]:
        """
        Scheme part of the uri, e.g. `https`, `ftp`.
        """
        return pulumi.get(self, "scheme")

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

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Path part of the uri, must always end with `/`. Default value is: `/`
        """
        return pulumi.get(self, "path")

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

    @_builtins.property
    @pulumi.getter
    def port(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Port part of the uri. Default value is: `none`
        """
        return pulumi.get(self, "port")

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


if not MYPY:
    class ProfileRewriteUriRulesServerArgsDict(TypedDict):
        host: pulumi.Input[_builtins.str]
        """
        Host part of the uri, e.g. `www.foo.com`.
        """
        scheme: pulumi.Input[_builtins.str]
        """
        Scheme part of the uri, e.g. `https`, `ftp`.
        """
        path: NotRequired[pulumi.Input[_builtins.str]]
        """
        Path part of the uri, must always end with `/`. Default value is: `/`
        """
        port: NotRequired[pulumi.Input[_builtins.str]]
        """
        Port part of the uri. Default value is: `none`
        """
elif False:
    ProfileRewriteUriRulesServerArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ProfileRewriteUriRulesServerArgs:
    def __init__(__self__, *,
                 host: pulumi.Input[_builtins.str],
                 scheme: pulumi.Input[_builtins.str],
                 path: Optional[pulumi.Input[_builtins.str]] = None,
                 port: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] host: Host part of the uri, e.g. `www.foo.com`.
        :param pulumi.Input[_builtins.str] scheme: Scheme part of the uri, e.g. `https`, `ftp`.
        :param pulumi.Input[_builtins.str] path: Path part of the uri, must always end with `/`. Default value is: `/`
        :param pulumi.Input[_builtins.str] port: Port part of the uri. Default value is: `none`
        """
        pulumi.set(__self__, "host", host)
        pulumi.set(__self__, "scheme", scheme)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if port is not None:
            pulumi.set(__self__, "port", port)

    @_builtins.property
    @pulumi.getter
    def host(self) -> pulumi.Input[_builtins.str]:
        """
        Host part of the uri, e.g. `www.foo.com`.
        """
        return pulumi.get(self, "host")

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

    @_builtins.property
    @pulumi.getter
    def scheme(self) -> pulumi.Input[_builtins.str]:
        """
        Scheme part of the uri, e.g. `https`, `ftp`.
        """
        return pulumi.get(self, "scheme")

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

    @_builtins.property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Path part of the uri, must always end with `/`. Default value is: `/`
        """
        return pulumi.get(self, "path")

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

    @_builtins.property
    @pulumi.getter
    def port(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Port part of the uri. Default value is: `none`
        """
        return pulumi.get(self, "port")

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


if not MYPY:
    class SnatOriginArgsDict(TypedDict):
        app_service: NotRequired[pulumi.Input[_builtins.str]]
        """
        app service
        """
        name: NotRequired[pulumi.Input[_builtins.str]]
        """
        Name of the SNAT, name of SNAT should be full path. Full path is the combination of the `partition + SNAT name`,For example `/Common/test-snat`.
        """
elif False:
    SnatOriginArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SnatOriginArgs:
    def __init__(__self__, *,
                 app_service: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] app_service: app service
        :param pulumi.Input[_builtins.str] name: Name of the SNAT, name of SNAT should be full path. Full path is the combination of the `partition + SNAT name`,For example `/Common/test-snat`.
        """
        if app_service is not None:
            pulumi.set(__self__, "app_service", app_service)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter(name="appService")
    def app_service(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        app service
        """
        return pulumi.get(self, "app_service")

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

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the SNAT, name of SNAT should be full path. Full path is the combination of the `partition + SNAT name`,For example `/Common/test-snat`.
        """
        return pulumi.get(self, "name")

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


if not MYPY:
    class GetDataGroupRecordArgsDict(TypedDict):
        name: _builtins.str
        """
        Name of the datagroup
        """
        data: NotRequired[_builtins.str]
elif False:
    GetDataGroupRecordArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetDataGroupRecordArgs:
    def __init__(__self__, *,
                 name: _builtins.str,
                 data: Optional[_builtins.str] = None):
        """
        :param _builtins.str name: Name of the datagroup
        """
        pulumi.set(__self__, "name", name)
        if data is not None:
            pulumi.set(__self__, "data", data)

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

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

    @_builtins.property
    @pulumi.getter
    def data(self) -> Optional[_builtins.str]:
        return pulumi.get(self, "data")

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


if not MYPY:
    class GetNodeFqdnArgsDict(TypedDict):
        autopopulate: _builtins.str
        """
        Specifies if the node should scale to the IP address set returned by DNS.
        """
        downinterval: _builtins.int
        """
        The number of attempts to resolve a domain name.
        """
        interval: _builtins.str
        """
        The amount of time before sending the next DNS query.
        """
        address_family: NotRequired[_builtins.str]
        """
        The FQDN node's address family.
        """
        name: NotRequired[_builtins.str]
        """
        Name of the node.
        """
elif False:
    GetNodeFqdnArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetNodeFqdnArgs:
    def __init__(__self__, *,
                 autopopulate: _builtins.str,
                 downinterval: _builtins.int,
                 interval: _builtins.str,
                 address_family: Optional[_builtins.str] = None,
                 name: Optional[_builtins.str] = None):
        """
        :param _builtins.str autopopulate: Specifies if the node should scale to the IP address set returned by DNS.
        :param _builtins.int downinterval: The number of attempts to resolve a domain name.
        :param _builtins.str interval: The amount of time before sending the next DNS query.
        :param _builtins.str address_family: The FQDN node's address family.
        :param _builtins.str name: Name of the node.
        """
        pulumi.set(__self__, "autopopulate", autopopulate)
        pulumi.set(__self__, "downinterval", downinterval)
        pulumi.set(__self__, "interval", interval)
        if address_family is not None:
            pulumi.set(__self__, "address_family", address_family)
        if name is not None:
            pulumi.set(__self__, "name", name)

    @_builtins.property
    @pulumi.getter
    def autopopulate(self) -> _builtins.str:
        """
        Specifies if the node should scale to the IP address set returned by DNS.
        """
        return pulumi.get(self, "autopopulate")

    @autopopulate.setter
    def autopopulate(self, value: _builtins.str):
        pulumi.set(self, "autopopulate", value)

    @_builtins.property
    @pulumi.getter
    def downinterval(self) -> _builtins.int:
        """
        The number of attempts to resolve a domain name.
        """
        return pulumi.get(self, "downinterval")

    @downinterval.setter
    def downinterval(self, value: _builtins.int):
        pulumi.set(self, "downinterval", value)

    @_builtins.property
    @pulumi.getter
    def interval(self) -> _builtins.str:
        """
        The amount of time before sending the next DNS query.
        """
        return pulumi.get(self, "interval")

    @interval.setter
    def interval(self, value: _builtins.str):
        pulumi.set(self, "interval", value)

    @_builtins.property
    @pulumi.getter(name="addressFamily")
    def address_family(self) -> Optional[_builtins.str]:
        """
        The FQDN node's address family.
        """
        return pulumi.get(self, "address_family")

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

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

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


if not MYPY:
    class GetPolicyRuleArgsDict(TypedDict):
        name: _builtins.str
        """
        Name of the policy which includes partion ( /partition/policy-name )
        """
        actions: NotRequired[Sequence['GetPolicyRuleActionArgsDict']]
        conditions: NotRequired[Sequence['GetPolicyRuleConditionArgsDict']]
elif False:
    GetPolicyRuleArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetPolicyRuleArgs:
    def __init__(__self__, *,
                 name: _builtins.str,
                 actions: Optional[Sequence['GetPolicyRuleActionArgs']] = None,
                 conditions: Optional[Sequence['GetPolicyRuleConditionArgs']] = None):
        """
        :param _builtins.str name: Name of the policy which includes partion ( /partition/policy-name )
        """
        pulumi.set(__self__, "name", name)
        if actions is not None:
            pulumi.set(__self__, "actions", actions)
        if conditions is not None:
            pulumi.set(__self__, "conditions", conditions)

    @_builtins.property
    @pulumi.getter
    def name(self) -> _builtins.str:
        """
        Name of the policy which includes partion ( /partition/policy-name )
        """
        return pulumi.get(self, "name")

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

    @_builtins.property
    @pulumi.getter
    def actions(self) -> Optional[Sequence['GetPolicyRuleActionArgs']]:
        return pulumi.get(self, "actions")

    @actions.setter
    def actions(self, value: Optional[Sequence['GetPolicyRuleActionArgs']]):
        pulumi.set(self, "actions", value)

    @_builtins.property
    @pulumi.getter
    def conditions(self) -> Optional[Sequence['GetPolicyRuleConditionArgs']]:
        return pulumi.get(self, "conditions")

    @conditions.setter
    def conditions(self, value: Optional[Sequence['GetPolicyRuleConditionArgs']]):
        pulumi.set(self, "conditions", value)


if not MYPY:
    class GetPolicyRuleActionArgsDict(TypedDict):
        app_service: _builtins.str
        application: _builtins.str
        asm: _builtins.bool
        avr: _builtins.bool
        cache: _builtins.bool
        carp: _builtins.bool
        category: _builtins.str
        classify: _builtins.bool
        clone_pool: _builtins.str
        code: _builtins.int
        compress: _builtins.bool
        connection: _builtins.bool
        content: _builtins.str
        cookie_hash: _builtins.bool
        cookie_insert: _builtins.bool
        cookie_passive: _builtins.bool
        cookie_rewrite: _builtins.bool
        decompress: _builtins.bool
        defer: _builtins.bool
        destination_address: _builtins.bool
        disable: _builtins.bool
        domain: _builtins.str
        enable: _builtins.bool
        expiry: _builtins.str
        expiry_secs: _builtins.int
        expression: _builtins.str
        extension: _builtins.str
        facility: _builtins.str
        from_profile: _builtins.str
        hash: _builtins.bool
        host: _builtins.str
        http: _builtins.bool
        http_basic_auth: _builtins.bool
        http_cookie: _builtins.bool
        http_header: _builtins.bool
        http_referer: _builtins.bool
        http_reply: _builtins.bool
        http_set_cookie: _builtins.bool
        http_uri: _builtins.bool
        ifile: _builtins.str
        insert: _builtins.bool
        internal_virtual: _builtins.str
        ip_address: _builtins.str
        key: _builtins.str
        l7dos: _builtins.bool
        length: _builtins.int
        location: _builtins.str
        log: _builtins.bool
        ltm_policy: _builtins.bool
        member: _builtins.str
        message: _builtins.str
        netmask: _builtins.str
        nexthop: _builtins.str
        node: _builtins.str
        offset: _builtins.int
        path: _builtins.str
        pem: _builtins.bool
        persist: _builtins.bool
        pin: _builtins.bool
        policy: _builtins.str
        pool: _builtins.str
        port: _builtins.int
        priority: _builtins.str
        profile: _builtins.str
        protocol: _builtins.str
        query_string: _builtins.str
        rateclass: _builtins.str
        redirect: _builtins.bool
        remove: _builtins.bool
        replace: _builtins.bool
        request: _builtins.bool
        request_adapt: _builtins.bool
        reset: _builtins.bool
        response: _builtins.bool
        response_adapt: _builtins.bool
        scheme: _builtins.str
        script: _builtins.str
        select: _builtins.bool
        server_ssl: _builtins.bool
        set_variable: _builtins.bool
        shutdown: _builtins.bool
        snat: _builtins.str
        snatpool: _builtins.str
        source_address: _builtins.bool
        ssl_client_hello: _builtins.bool
        ssl_server_handshake: _builtins.bool
        ssl_server_hello: _builtins.bool
        ssl_session_id: _builtins.bool
        status: _builtins.int
        tcl: _builtins.bool
        tcp_nagle: _builtins.bool
        text: _builtins.str
        timeout: _builtins.int
        tm_name: _builtins.str
        uie: _builtins.bool
        universal: _builtins.bool
        value: _builtins.str
        virtual: _builtins.str
        vlan: _builtins.str
        vlan_id: _builtins.int
        wam: _builtins.bool
        write: _builtins.bool
        forward: NotRequired[_builtins.bool]
        http_host: NotRequired[_builtins.bool]
elif False:
    GetPolicyRuleActionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetPolicyRuleActionArgs:
    def __init__(__self__, *,
                 app_service: _builtins.str,
                 application: _builtins.str,
                 asm: _builtins.bool,
                 avr: _builtins.bool,
                 cache: _builtins.bool,
                 carp: _builtins.bool,
                 category: _builtins.str,
                 classify: _builtins.bool,
                 clone_pool: _builtins.str,
                 code: _builtins.int,
                 compress: _builtins.bool,
                 connection: _builtins.bool,
                 content: _builtins.str,
                 cookie_hash: _builtins.bool,
                 cookie_insert: _builtins.bool,
                 cookie_passive: _builtins.bool,
                 cookie_rewrite: _builtins.bool,
                 decompress: _builtins.bool,
                 defer: _builtins.bool,
                 destination_address: _builtins.bool,
                 disable: _builtins.bool,
                 domain: _builtins.str,
                 enable: _builtins.bool,
                 expiry: _builtins.str,
                 expiry_secs: _builtins.int,
                 expression: _builtins.str,
                 extension: _builtins.str,
                 facility: _builtins.str,
                 from_profile: _builtins.str,
                 hash: _builtins.bool,
                 host: _builtins.str,
                 http: _builtins.bool,
                 http_basic_auth: _builtins.bool,
                 http_cookie: _builtins.bool,
                 http_header: _builtins.bool,
                 http_referer: _builtins.bool,
                 http_reply: _builtins.bool,
                 http_set_cookie: _builtins.bool,
                 http_uri: _builtins.bool,
                 ifile: _builtins.str,
                 insert: _builtins.bool,
                 internal_virtual: _builtins.str,
                 ip_address: _builtins.str,
                 key: _builtins.str,
                 l7dos: _builtins.bool,
                 length: _builtins.int,
                 location: _builtins.str,
                 log: _builtins.bool,
                 ltm_policy: _builtins.bool,
                 member: _builtins.str,
                 message: _builtins.str,
                 netmask: _builtins.str,
                 nexthop: _builtins.str,
                 node: _builtins.str,
                 offset: _builtins.int,
                 path: _builtins.str,
                 pem: _builtins.bool,
                 persist: _builtins.bool,
                 pin: _builtins.bool,
                 policy: _builtins.str,
                 pool: _builtins.str,
                 port: _builtins.int,
                 priority: _builtins.str,
                 profile: _builtins.str,
                 protocol: _builtins.str,
                 query_string: _builtins.str,
                 rateclass: _builtins.str,
                 redirect: _builtins.bool,
                 remove: _builtins.bool,
                 replace: _builtins.bool,
                 request: _builtins.bool,
                 request_adapt: _builtins.bool,
                 reset: _builtins.bool,
                 response: _builtins.bool,
                 response_adapt: _builtins.bool,
                 scheme: _builtins.str,
                 script: _builtins.str,
                 select: _builtins.bool,
                 server_ssl: _builtins.bool,
                 set_variable: _builtins.bool,
                 shutdown: _builtins.bool,
                 snat: _builtins.str,
                 snatpool: _builtins.str,
                 source_address: _builtins.bool,
                 ssl_client_hello: _builtins.bool,
                 ssl_server_handshake: _builtins.bool,
                 ssl_server_hello: _builtins.bool,
                 ssl_session_id: _builtins.bool,
                 status: _builtins.int,
                 tcl: _builtins.bool,
                 tcp_nagle: _builtins.bool,
                 text: _builtins.str,
                 timeout: _builtins.int,
                 tm_name: _builtins.str,
                 uie: _builtins.bool,
                 universal: _builtins.bool,
                 value: _builtins.str,
                 virtual: _builtins.str,
                 vlan: _builtins.str,
                 vlan_id: _builtins.int,
                 wam: _builtins.bool,
                 write: _builtins.bool,
                 forward: Optional[_builtins.bool] = None,
                 http_host: Optional[_builtins.bool] = None):
        pulumi.set(__self__, "app_service", app_service)
        pulumi.set(__self__, "application", application)
        pulumi.set(__self__, "asm", asm)
        pulumi.set(__self__, "avr", avr)
        pulumi.set(__self__, "cache", cache)
        pulumi.set(__self__, "carp", carp)
        pulumi.set(__self__, "category", category)
        pulumi.set(__self__, "classify", classify)
        pulumi.set(__self__, "clone_pool", clone_pool)
        pulumi.set(__self__, "code", code)
        pulumi.set(__self__, "compress", compress)
        pulumi.set(__self__, "connection", connection)
        pulumi.set(__self__, "content", content)
        pulumi.set(__self__, "cookie_hash", cookie_hash)
        pulumi.set(__self__, "cookie_insert", cookie_insert)
        pulumi.set(__self__, "cookie_passive", cookie_passive)
        pulumi.set(__self__, "cookie_rewrite", cookie_rewrite)
        pulumi.set(__self__, "decompress", decompress)
        pulumi.set(__self__, "defer", defer)
        pulumi.set(__self__, "destination_address", destination_address)
        pulumi.set(__self__, "disable", disable)
        pulumi.set(__self__, "domain", domain)
        pulumi.set(__self__, "enable", enable)
        pulumi.set(__self__, "expiry", expiry)
        pulumi.set(__self__, "expiry_secs", expiry_secs)
        pulumi.set(__self__, "expression", expression)
        pulumi.set(__self__, "extension", extension)
        pulumi.set(__self__, "facility", facility)
        pulumi.set(__self__, "from_profile", from_profile)
        pulumi.set(__self__, "hash", hash)
        pulumi.set(__self__, "host", host)
        pulumi.set(__self__, "http", http)
        pulumi.set(__self__, "http_basic_auth", http_basic_auth)
        pulumi.set(__self__, "http_cookie", http_cookie)
        pulumi.set(__self__, "http_header", http_header)
        pulumi.set(__self__, "http_referer", http_referer)
        pulumi.set(__self__, "http_reply", http_reply)
        pulumi.set(__self__, "http_set_cookie", http_set_cookie)
        pulumi.set(__self__, "http_uri", http_uri)
        pulumi.set(__self__, "ifile", ifile)
        pulumi.set(__self__, "insert", insert)
        pulumi.set(__self__, "internal_virtual", internal_virtual)
        pulumi.set(__self__, "ip_address", ip_address)
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "l7dos", l7dos)
        pulumi.set(__self__, "length", length)
        pulumi.set(__self__, "location", location)
        pulumi.set(__self__, "log", log)
        pulumi.set(__self__, "ltm_policy", ltm_policy)
        pulumi.set(__self__, "member", member)
        pulumi.set(__self__, "message", message)
        pulumi.set(__self__, "netmask", netmask)
        pulumi.set(__self__, "nexthop", nexthop)
        pulumi.set(__self__, "node", node)
        pulumi.set(__self__, "offset", offset)
        pulumi.set(__self__, "path", path)
        pulumi.set(__self__, "pem", pem)
        pulumi.set(__self__, "persist", persist)
        pulumi.set(__self__, "pin", pin)
        pulumi.set(__self__, "policy", policy)
        pulumi.set(__self__, "pool", pool)
        pulumi.set(__self__, "port", port)
        pulumi.set(__self__, "priority", priority)
        pulumi.set(__self__, "profile", profile)
        pulumi.set(__self__, "protocol", protocol)
        pulumi.set(__self__, "query_string", query_string)
        pulumi.set(__self__, "rateclass", rateclass)
        pulumi.set(__self__, "redirect", redirect)
        pulumi.set(__self__, "remove", remove)
        pulumi.set(__self__, "replace", replace)
        pulumi.set(__self__, "request", request)
        pulumi.set(__self__, "request_adapt", request_adapt)
        pulumi.set(__self__, "reset", reset)
        pulumi.set(__self__, "response", response)
        pulumi.set(__self__, "response_adapt", response_adapt)
        pulumi.set(__self__, "scheme", scheme)
        pulumi.set(__self__, "script", script)
        pulumi.set(__self__, "select", select)
        pulumi.set(__self__, "server_ssl", server_ssl)
        pulumi.set(__self__, "set_variable", set_variable)
        pulumi.set(__self__, "shutdown", shutdown)
        pulumi.set(__self__, "snat", snat)
        pulumi.set(__self__, "snatpool", snatpool)
        pulumi.set(__self__, "source_address", source_address)
        pulumi.set(__self__, "ssl_client_hello", ssl_client_hello)
        pulumi.set(__self__, "ssl_server_handshake", ssl_server_handshake)
        pulumi.set(__self__, "ssl_server_hello", ssl_server_hello)
        pulumi.set(__self__, "ssl_session_id", ssl_session_id)
        pulumi.set(__self__, "status", status)
        pulumi.set(__self__, "tcl", tcl)
        pulumi.set(__self__, "tcp_nagle", tcp_nagle)
        pulumi.set(__self__, "text", text)
        pulumi.set(__self__, "timeout", timeout)
        pulumi.set(__self__, "tm_name", tm_name)
        pulumi.set(__self__, "uie", uie)
        pulumi.set(__self__, "universal", universal)
        pulumi.set(__self__, "value", value)
        pulumi.set(__self__, "virtual", virtual)
        pulumi.set(__self__, "vlan", vlan)
        pulumi.set(__self__, "vlan_id", vlan_id)
        pulumi.set(__self__, "wam", wam)
        pulumi.set(__self__, "write", write)
        if forward is not None:
            pulumi.set(__self__, "forward", forward)
        if http_host is not None:
            pulumi.set(__self__, "http_host", http_host)

    @_builtins.property
    @pulumi.getter(name="appService")
    def app_service(self) -> _builtins.str:
        return pulumi.get(self, "app_service")

    @app_service.setter
    def app_service(self, value: _builtins.str):
        pulumi.set(self, "app_service", value)

    @_builtins.property
    @pulumi.getter
    def application(self) -> _builtins.str:
        return pulumi.get(self, "application")

    @application.setter
    def application(self, value: _builtins.str):
        pulumi.set(self, "application", value)

    @_builtins.property
    @pulumi.getter
    def asm(self) -> _builtins.bool:
        return pulumi.get(self, "asm")

    @asm.setter
    def asm(self, value: _builtins.bool):
        pulumi.set(self, "asm", value)

    @_builtins.property
    @pulumi.getter
    def avr(self) -> _builtins.bool:
        return pulumi.get(self, "avr")

    @avr.setter
    def avr(self, value: _builtins.bool):
        pulumi.set(self, "avr", value)

    @_builtins.property
    @pulumi.getter
    def cache(self) -> _builtins.bool:
        return pulumi.get(self, "cache")

    @cache.setter
    def cache(self, value: _builtins.bool):
        pulumi.set(self, "cache", value)

    @_builtins.property
    @pulumi.getter
    def carp(self) -> _builtins.bool:
        return pulumi.get(self, "carp")

    @carp.setter
    def carp(self, value: _builtins.bool):
        pulumi.set(self, "carp", value)

    @_builtins.property
    @pulumi.getter
    def category(self) -> _builtins.str:
        return pulumi.get(self, "category")

    @category.setter
    def category(self, value: _builtins.str):
        pulumi.set(self, "category", value)

    @_builtins.property
    @pulumi.getter
    def classify(self) -> _builtins.bool:
        return pulumi.get(self, "classify")

    @classify.setter
    def classify(self, value: _builtins.bool):
        pulumi.set(self, "classify", value)

    @_builtins.property
    @pulumi.getter(name="clonePool")
    def clone_pool(self) -> _builtins.str:
        return pulumi.get(self, "clone_pool")

    @clone_pool.setter
    def clone_pool(self, value: _builtins.str):
        pulumi.set(self, "clone_pool", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> _builtins.int:
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: _builtins.int):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter
    def compress(self) -> _builtins.bool:
        return pulumi.get(self, "compress")

    @compress.setter
    def compress(self, value: _builtins.bool):
        pulumi.set(self, "compress", value)

    @_builtins.property
    @pulumi.getter
    def connection(self) -> _builtins.bool:
        return pulumi.get(self, "connection")

    @connection.setter
    def connection(self, value: _builtins.bool):
        pulumi.set(self, "connection", value)

    @_builtins.property
    @pulumi.getter
    def content(self) -> _builtins.str:
        return pulumi.get(self, "content")

    @content.setter
    def content(self, value: _builtins.str):
        pulumi.set(self, "content", value)

    @_builtins.property
    @pulumi.getter(name="cookieHash")
    def cookie_hash(self) -> _builtins.bool:
        return pulumi.get(self, "cookie_hash")

    @cookie_hash.setter
    def cookie_hash(self, value: _builtins.bool):
        pulumi.set(self, "cookie_hash", value)

    @_builtins.property
    @pulumi.getter(name="cookieInsert")
    def cookie_insert(self) -> _builtins.bool:
        return pulumi.get(self, "cookie_insert")

    @cookie_insert.setter
    def cookie_insert(self, value: _builtins.bool):
        pulumi.set(self, "cookie_insert", value)

    @_builtins.property
    @pulumi.getter(name="cookiePassive")
    def cookie_passive(self) -> _builtins.bool:
        return pulumi.get(self, "cookie_passive")

    @cookie_passive.setter
    def cookie_passive(self, value: _builtins.bool):
        pulumi.set(self, "cookie_passive", value)

    @_builtins.property
    @pulumi.getter(name="cookieRewrite")
    def cookie_rewrite(self) -> _builtins.bool:
        return pulumi.get(self, "cookie_rewrite")

    @cookie_rewrite.setter
    def cookie_rewrite(self, value: _builtins.bool):
        pulumi.set(self, "cookie_rewrite", value)

    @_builtins.property
    @pulumi.getter
    def decompress(self) -> _builtins.bool:
        return pulumi.get(self, "decompress")

    @decompress.setter
    def decompress(self, value: _builtins.bool):
        pulumi.set(self, "decompress", value)

    @_builtins.property
    @pulumi.getter
    def defer(self) -> _builtins.bool:
        return pulumi.get(self, "defer")

    @defer.setter
    def defer(self, value: _builtins.bool):
        pulumi.set(self, "defer", value)

    @_builtins.property
    @pulumi.getter(name="destinationAddress")
    def destination_address(self) -> _builtins.bool:
        return pulumi.get(self, "destination_address")

    @destination_address.setter
    def destination_address(self, value: _builtins.bool):
        pulumi.set(self, "destination_address", value)

    @_builtins.property
    @pulumi.getter
    def disable(self) -> _builtins.bool:
        return pulumi.get(self, "disable")

    @disable.setter
    def disable(self, value: _builtins.bool):
        pulumi.set(self, "disable", value)

    @_builtins.property
    @pulumi.getter
    def domain(self) -> _builtins.str:
        return pulumi.get(self, "domain")

    @domain.setter
    def domain(self, value: _builtins.str):
        pulumi.set(self, "domain", value)

    @_builtins.property
    @pulumi.getter
    def enable(self) -> _builtins.bool:
        return pulumi.get(self, "enable")

    @enable.setter
    def enable(self, value: _builtins.bool):
        pulumi.set(self, "enable", value)

    @_builtins.property
    @pulumi.getter
    def expiry(self) -> _builtins.str:
        return pulumi.get(self, "expiry")

    @expiry.setter
    def expiry(self, value: _builtins.str):
        pulumi.set(self, "expiry", value)

    @_builtins.property
    @pulumi.getter(name="expirySecs")
    def expiry_secs(self) -> _builtins.int:
        return pulumi.get(self, "expiry_secs")

    @expiry_secs.setter
    def expiry_secs(self, value: _builtins.int):
        pulumi.set(self, "expiry_secs", value)

    @_builtins.property
    @pulumi.getter
    def expression(self) -> _builtins.str:
        return pulumi.get(self, "expression")

    @expression.setter
    def expression(self, value: _builtins.str):
        pulumi.set(self, "expression", value)

    @_builtins.property
    @pulumi.getter
    def extension(self) -> _builtins.str:
        return pulumi.get(self, "extension")

    @extension.setter
    def extension(self, value: _builtins.str):
        pulumi.set(self, "extension", value)

    @_builtins.property
    @pulumi.getter
    def facility(self) -> _builtins.str:
        return pulumi.get(self, "facility")

    @facility.setter
    def facility(self, value: _builtins.str):
        pulumi.set(self, "facility", value)

    @_builtins.property
    @pulumi.getter(name="fromProfile")
    def from_profile(self) -> _builtins.str:
        return pulumi.get(self, "from_profile")

    @from_profile.setter
    def from_profile(self, value: _builtins.str):
        pulumi.set(self, "from_profile", value)

    @_builtins.property
    @pulumi.getter
    def hash(self) -> _builtins.bool:
        return pulumi.get(self, "hash")

    @hash.setter
    def hash(self, value: _builtins.bool):
        pulumi.set(self, "hash", value)

    @_builtins.property
    @pulumi.getter
    def host(self) -> _builtins.str:
        return pulumi.get(self, "host")

    @host.setter
    def host(self, value: _builtins.str):
        pulumi.set(self, "host", value)

    @_builtins.property
    @pulumi.getter
    def http(self) -> _builtins.bool:
        return pulumi.get(self, "http")

    @http.setter
    def http(self, value: _builtins.bool):
        pulumi.set(self, "http", value)

    @_builtins.property
    @pulumi.getter(name="httpBasicAuth")
    def http_basic_auth(self) -> _builtins.bool:
        return pulumi.get(self, "http_basic_auth")

    @http_basic_auth.setter
    def http_basic_auth(self, value: _builtins.bool):
        pulumi.set(self, "http_basic_auth", value)

    @_builtins.property
    @pulumi.getter(name="httpCookie")
    def http_cookie(self) -> _builtins.bool:
        return pulumi.get(self, "http_cookie")

    @http_cookie.setter
    def http_cookie(self, value: _builtins.bool):
        pulumi.set(self, "http_cookie", value)

    @_builtins.property
    @pulumi.getter(name="httpHeader")
    def http_header(self) -> _builtins.bool:
        return pulumi.get(self, "http_header")

    @http_header.setter
    def http_header(self, value: _builtins.bool):
        pulumi.set(self, "http_header", value)

    @_builtins.property
    @pulumi.getter(name="httpReferer")
    def http_referer(self) -> _builtins.bool:
        return pulumi.get(self, "http_referer")

    @http_referer.setter
    def http_referer(self, value: _builtins.bool):
        pulumi.set(self, "http_referer", value)

    @_builtins.property
    @pulumi.getter(name="httpReply")
    def http_reply(self) -> _builtins.bool:
        return pulumi.get(self, "http_reply")

    @http_reply.setter
    def http_reply(self, value: _builtins.bool):
        pulumi.set(self, "http_reply", value)

    @_builtins.property
    @pulumi.getter(name="httpSetCookie")
    def http_set_cookie(self) -> _builtins.bool:
        return pulumi.get(self, "http_set_cookie")

    @http_set_cookie.setter
    def http_set_cookie(self, value: _builtins.bool):
        pulumi.set(self, "http_set_cookie", value)

    @_builtins.property
    @pulumi.getter(name="httpUri")
    def http_uri(self) -> _builtins.bool:
        return pulumi.get(self, "http_uri")

    @http_uri.setter
    def http_uri(self, value: _builtins.bool):
        pulumi.set(self, "http_uri", value)

    @_builtins.property
    @pulumi.getter
    def ifile(self) -> _builtins.str:
        return pulumi.get(self, "ifile")

    @ifile.setter
    def ifile(self, value: _builtins.str):
        pulumi.set(self, "ifile", value)

    @_builtins.property
    @pulumi.getter
    def insert(self) -> _builtins.bool:
        return pulumi.get(self, "insert")

    @insert.setter
    def insert(self, value: _builtins.bool):
        pulumi.set(self, "insert", value)

    @_builtins.property
    @pulumi.getter(name="internalVirtual")
    def internal_virtual(self) -> _builtins.str:
        return pulumi.get(self, "internal_virtual")

    @internal_virtual.setter
    def internal_virtual(self, value: _builtins.str):
        pulumi.set(self, "internal_virtual", value)

    @_builtins.property
    @pulumi.getter(name="ipAddress")
    def ip_address(self) -> _builtins.str:
        return pulumi.get(self, "ip_address")

    @ip_address.setter
    def ip_address(self, value: _builtins.str):
        pulumi.set(self, "ip_address", value)

    @_builtins.property
    @pulumi.getter
    def key(self) -> _builtins.str:
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: _builtins.str):
        pulumi.set(self, "key", value)

    @_builtins.property
    @pulumi.getter
    def l7dos(self) -> _builtins.bool:
        return pulumi.get(self, "l7dos")

    @l7dos.setter
    def l7dos(self, value: _builtins.bool):
        pulumi.set(self, "l7dos", value)

    @_builtins.property
    @pulumi.getter
    def length(self) -> _builtins.int:
        return pulumi.get(self, "length")

    @length.setter
    def length(self, value: _builtins.int):
        pulumi.set(self, "length", value)

    @_builtins.property
    @pulumi.getter
    def location(self) -> _builtins.str:
        return pulumi.get(self, "location")

    @location.setter
    def location(self, value: _builtins.str):
        pulumi.set(self, "location", value)

    @_builtins.property
    @pulumi.getter
    def log(self) -> _builtins.bool:
        return pulumi.get(self, "log")

    @log.setter
    def log(self, value: _builtins.bool):
        pulumi.set(self, "log", value)

    @_builtins.property
    @pulumi.getter(name="ltmPolicy")
    def ltm_policy(self) -> _builtins.bool:
        return pulumi.get(self, "ltm_policy")

    @ltm_policy.setter
    def ltm_policy(self, value: _builtins.bool):
        pulumi.set(self, "ltm_policy", value)

    @_builtins.property
    @pulumi.getter
    def member(self) -> _builtins.str:
        return pulumi.get(self, "member")

    @member.setter
    def member(self, value: _builtins.str):
        pulumi.set(self, "member", value)

    @_builtins.property
    @pulumi.getter
    def message(self) -> _builtins.str:
        return pulumi.get(self, "message")

    @message.setter
    def message(self, value: _builtins.str):
        pulumi.set(self, "message", value)

    @_builtins.property
    @pulumi.getter
    def netmask(self) -> _builtins.str:
        return pulumi.get(self, "netmask")

    @netmask.setter
    def netmask(self, value: _builtins.str):
        pulumi.set(self, "netmask", value)

    @_builtins.property
    @pulumi.getter
    def nexthop(self) -> _builtins.str:
        return pulumi.get(self, "nexthop")

    @nexthop.setter
    def nexthop(self, value: _builtins.str):
        pulumi.set(self, "nexthop", value)

    @_builtins.property
    @pulumi.getter
    def node(self) -> _builtins.str:
        return pulumi.get(self, "node")

    @node.setter
    def node(self, value: _builtins.str):
        pulumi.set(self, "node", value)

    @_builtins.property
    @pulumi.getter
    def offset(self) -> _builtins.int:
        return pulumi.get(self, "offset")

    @offset.setter
    def offset(self, value: _builtins.int):
        pulumi.set(self, "offset", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> _builtins.str:
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: _builtins.str):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter
    def pem(self) -> _builtins.bool:
        return pulumi.get(self, "pem")

    @pem.setter
    def pem(self, value: _builtins.bool):
        pulumi.set(self, "pem", value)

    @_builtins.property
    @pulumi.getter
    def persist(self) -> _builtins.bool:
        return pulumi.get(self, "persist")

    @persist.setter
    def persist(self, value: _builtins.bool):
        pulumi.set(self, "persist", value)

    @_builtins.property
    @pulumi.getter
    def pin(self) -> _builtins.bool:
        return pulumi.get(self, "pin")

    @pin.setter
    def pin(self, value: _builtins.bool):
        pulumi.set(self, "pin", value)

    @_builtins.property
    @pulumi.getter
    def policy(self) -> _builtins.str:
        return pulumi.get(self, "policy")

    @policy.setter
    def policy(self, value: _builtins.str):
        pulumi.set(self, "policy", value)

    @_builtins.property
    @pulumi.getter
    def pool(self) -> _builtins.str:
        return pulumi.get(self, "pool")

    @pool.setter
    def pool(self, value: _builtins.str):
        pulumi.set(self, "pool", value)

    @_builtins.property
    @pulumi.getter
    def port(self) -> _builtins.int:
        return pulumi.get(self, "port")

    @port.setter
    def port(self, value: _builtins.int):
        pulumi.set(self, "port", value)

    @_builtins.property
    @pulumi.getter
    def priority(self) -> _builtins.str:
        return pulumi.get(self, "priority")

    @priority.setter
    def priority(self, value: _builtins.str):
        pulumi.set(self, "priority", value)

    @_builtins.property
    @pulumi.getter
    def profile(self) -> _builtins.str:
        return pulumi.get(self, "profile")

    @profile.setter
    def profile(self, value: _builtins.str):
        pulumi.set(self, "profile", value)

    @_builtins.property
    @pulumi.getter
    def protocol(self) -> _builtins.str:
        return pulumi.get(self, "protocol")

    @protocol.setter
    def protocol(self, value: _builtins.str):
        pulumi.set(self, "protocol", value)

    @_builtins.property
    @pulumi.getter(name="queryString")
    def query_string(self) -> _builtins.str:
        return pulumi.get(self, "query_string")

    @query_string.setter
    def query_string(self, value: _builtins.str):
        pulumi.set(self, "query_string", value)

    @_builtins.property
    @pulumi.getter
    def rateclass(self) -> _builtins.str:
        return pulumi.get(self, "rateclass")

    @rateclass.setter
    def rateclass(self, value: _builtins.str):
        pulumi.set(self, "rateclass", value)

    @_builtins.property
    @pulumi.getter
    def redirect(self) -> _builtins.bool:
        return pulumi.get(self, "redirect")

    @redirect.setter
    def redirect(self, value: _builtins.bool):
        pulumi.set(self, "redirect", value)

    @_builtins.property
    @pulumi.getter
    def remove(self) -> _builtins.bool:
        return pulumi.get(self, "remove")

    @remove.setter
    def remove(self, value: _builtins.bool):
        pulumi.set(self, "remove", value)

    @_builtins.property
    @pulumi.getter
    def replace(self) -> _builtins.bool:
        return pulumi.get(self, "replace")

    @replace.setter
    def replace(self, value: _builtins.bool):
        pulumi.set(self, "replace", value)

    @_builtins.property
    @pulumi.getter
    def request(self) -> _builtins.bool:
        return pulumi.get(self, "request")

    @request.setter
    def request(self, value: _builtins.bool):
        pulumi.set(self, "request", value)

    @_builtins.property
    @pulumi.getter(name="requestAdapt")
    def request_adapt(self) -> _builtins.bool:
        return pulumi.get(self, "request_adapt")

    @request_adapt.setter
    def request_adapt(self, value: _builtins.bool):
        pulumi.set(self, "request_adapt", value)

    @_builtins.property
    @pulumi.getter
    def reset(self) -> _builtins.bool:
        return pulumi.get(self, "reset")

    @reset.setter
    def reset(self, value: _builtins.bool):
        pulumi.set(self, "reset", value)

    @_builtins.property
    @pulumi.getter
    def response(self) -> _builtins.bool:
        return pulumi.get(self, "response")

    @response.setter
    def response(self, value: _builtins.bool):
        pulumi.set(self, "response", value)

    @_builtins.property
    @pulumi.getter(name="responseAdapt")
    def response_adapt(self) -> _builtins.bool:
        return pulumi.get(self, "response_adapt")

    @response_adapt.setter
    def response_adapt(self, value: _builtins.bool):
        pulumi.set(self, "response_adapt", value)

    @_builtins.property
    @pulumi.getter
    def scheme(self) -> _builtins.str:
        return pulumi.get(self, "scheme")

    @scheme.setter
    def scheme(self, value: _builtins.str):
        pulumi.set(self, "scheme", value)

    @_builtins.property
    @pulumi.getter
    def script(self) -> _builtins.str:
        return pulumi.get(self, "script")

    @script.setter
    def script(self, value: _builtins.str):
        pulumi.set(self, "script", value)

    @_builtins.property
    @pulumi.getter
    def select(self) -> _builtins.bool:
        return pulumi.get(self, "select")

    @select.setter
    def select(self, value: _builtins.bool):
        pulumi.set(self, "select", value)

    @_builtins.property
    @pulumi.getter(name="serverSsl")
    def server_ssl(self) -> _builtins.bool:
        return pulumi.get(self, "server_ssl")

    @server_ssl.setter
    def server_ssl(self, value: _builtins.bool):
        pulumi.set(self, "server_ssl", value)

    @_builtins.property
    @pulumi.getter(name="setVariable")
    def set_variable(self) -> _builtins.bool:
        return pulumi.get(self, "set_variable")

    @set_variable.setter
    def set_variable(self, value: _builtins.bool):
        pulumi.set(self, "set_variable", value)

    @_builtins.property
    @pulumi.getter
    def shutdown(self) -> _builtins.bool:
        return pulumi.get(self, "shutdown")

    @shutdown.setter
    def shutdown(self, value: _builtins.bool):
        pulumi.set(self, "shutdown", value)

    @_builtins.property
    @pulumi.getter
    def snat(self) -> _builtins.str:
        return pulumi.get(self, "snat")

    @snat.setter
    def snat(self, value: _builtins.str):
        pulumi.set(self, "snat", value)

    @_builtins.property
    @pulumi.getter
    def snatpool(self) -> _builtins.str:
        return pulumi.get(self, "snatpool")

    @snatpool.setter
    def snatpool(self, value: _builtins.str):
        pulumi.set(self, "snatpool", value)

    @_builtins.property
    @pulumi.getter(name="sourceAddress")
    def source_address(self) -> _builtins.bool:
        return pulumi.get(self, "source_address")

    @source_address.setter
    def source_address(self, value: _builtins.bool):
        pulumi.set(self, "source_address", value)

    @_builtins.property
    @pulumi.getter(name="sslClientHello")
    def ssl_client_hello(self) -> _builtins.bool:
        return pulumi.get(self, "ssl_client_hello")

    @ssl_client_hello.setter
    def ssl_client_hello(self, value: _builtins.bool):
        pulumi.set(self, "ssl_client_hello", value)

    @_builtins.property
    @pulumi.getter(name="sslServerHandshake")
    def ssl_server_handshake(self) -> _builtins.bool:
        return pulumi.get(self, "ssl_server_handshake")

    @ssl_server_handshake.setter
    def ssl_server_handshake(self, value: _builtins.bool):
        pulumi.set(self, "ssl_server_handshake", value)

    @_builtins.property
    @pulumi.getter(name="sslServerHello")
    def ssl_server_hello(self) -> _builtins.bool:
        return pulumi.get(self, "ssl_server_hello")

    @ssl_server_hello.setter
    def ssl_server_hello(self, value: _builtins.bool):
        pulumi.set(self, "ssl_server_hello", value)

    @_builtins.property
    @pulumi.getter(name="sslSessionId")
    def ssl_session_id(self) -> _builtins.bool:
        return pulumi.get(self, "ssl_session_id")

    @ssl_session_id.setter
    def ssl_session_id(self, value: _builtins.bool):
        pulumi.set(self, "ssl_session_id", value)

    @_builtins.property
    @pulumi.getter
    def status(self) -> _builtins.int:
        return pulumi.get(self, "status")

    @status.setter
    def status(self, value: _builtins.int):
        pulumi.set(self, "status", value)

    @_builtins.property
    @pulumi.getter
    def tcl(self) -> _builtins.bool:
        return pulumi.get(self, "tcl")

    @tcl.setter
    def tcl(self, value: _builtins.bool):
        pulumi.set(self, "tcl", value)

    @_builtins.property
    @pulumi.getter(name="tcpNagle")
    def tcp_nagle(self) -> _builtins.bool:
        return pulumi.get(self, "tcp_nagle")

    @tcp_nagle.setter
    def tcp_nagle(self, value: _builtins.bool):
        pulumi.set(self, "tcp_nagle", value)

    @_builtins.property
    @pulumi.getter
    def text(self) -> _builtins.str:
        return pulumi.get(self, "text")

    @text.setter
    def text(self, value: _builtins.str):
        pulumi.set(self, "text", value)

    @_builtins.property
    @pulumi.getter
    def timeout(self) -> _builtins.int:
        return pulumi.get(self, "timeout")

    @timeout.setter
    def timeout(self, value: _builtins.int):
        pulumi.set(self, "timeout", value)

    @_builtins.property
    @pulumi.getter(name="tmName")
    def tm_name(self) -> _builtins.str:
        return pulumi.get(self, "tm_name")

    @tm_name.setter
    def tm_name(self, value: _builtins.str):
        pulumi.set(self, "tm_name", value)

    @_builtins.property
    @pulumi.getter
    def uie(self) -> _builtins.bool:
        return pulumi.get(self, "uie")

    @uie.setter
    def uie(self, value: _builtins.bool):
        pulumi.set(self, "uie", value)

    @_builtins.property
    @pulumi.getter
    def universal(self) -> _builtins.bool:
        return pulumi.get(self, "universal")

    @universal.setter
    def universal(self, value: _builtins.bool):
        pulumi.set(self, "universal", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> _builtins.str:
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: _builtins.str):
        pulumi.set(self, "value", value)

    @_builtins.property
    @pulumi.getter
    def virtual(self) -> _builtins.str:
        return pulumi.get(self, "virtual")

    @virtual.setter
    def virtual(self, value: _builtins.str):
        pulumi.set(self, "virtual", value)

    @_builtins.property
    @pulumi.getter
    def vlan(self) -> _builtins.str:
        return pulumi.get(self, "vlan")

    @vlan.setter
    def vlan(self, value: _builtins.str):
        pulumi.set(self, "vlan", value)

    @_builtins.property
    @pulumi.getter(name="vlanId")
    def vlan_id(self) -> _builtins.int:
        return pulumi.get(self, "vlan_id")

    @vlan_id.setter
    def vlan_id(self, value: _builtins.int):
        pulumi.set(self, "vlan_id", value)

    @_builtins.property
    @pulumi.getter
    def wam(self) -> _builtins.bool:
        return pulumi.get(self, "wam")

    @wam.setter
    def wam(self, value: _builtins.bool):
        pulumi.set(self, "wam", value)

    @_builtins.property
    @pulumi.getter
    def write(self) -> _builtins.bool:
        return pulumi.get(self, "write")

    @write.setter
    def write(self, value: _builtins.bool):
        pulumi.set(self, "write", value)

    @_builtins.property
    @pulumi.getter
    def forward(self) -> Optional[_builtins.bool]:
        return pulumi.get(self, "forward")

    @forward.setter
    def forward(self, value: Optional[_builtins.bool]):
        pulumi.set(self, "forward", value)

    @_builtins.property
    @pulumi.getter(name="httpHost")
    def http_host(self) -> Optional[_builtins.bool]:
        return pulumi.get(self, "http_host")

    @http_host.setter
    def http_host(self, value: Optional[_builtins.bool]):
        pulumi.set(self, "http_host", value)


if not MYPY:
    class GetPolicyRuleConditionArgsDict(TypedDict):
        address: _builtins.bool
        all: _builtins.bool
        app_service: _builtins.str
        browser_type: _builtins.bool
        browser_version: _builtins.bool
        case_insensitive: _builtins.bool
        case_sensitive: _builtins.bool
        cipher: _builtins.bool
        cipher_bits: _builtins.bool
        client_ssl: _builtins.bool
        code: _builtins.bool
        common_name: _builtins.bool
        contains: _builtins.bool
        continent: _builtins.bool
        country_code: _builtins.bool
        country_name: _builtins.bool
        cpu_usage: _builtins.bool
        datagroup: _builtins.str
        device_make: _builtins.bool
        device_model: _builtins.bool
        domain: _builtins.bool
        ends_with: _builtins.bool
        equals: _builtins.bool
        expiry: _builtins.bool
        extension: _builtins.bool
        external: _builtins.bool
        geoip: _builtins.bool
        greater: _builtins.bool
        greater_or_equal: _builtins.bool
        host: _builtins.bool
        http_basic_auth: _builtins.bool
        http_cookie: _builtins.bool
        http_header: _builtins.bool
        http_host: _builtins.bool
        http_method: _builtins.bool
        http_referer: _builtins.bool
        http_set_cookie: _builtins.bool
        http_status: _builtins.bool
        http_uri: _builtins.bool
        http_user_agent: _builtins.bool
        http_version: _builtins.bool
        index: _builtins.int
        internal: _builtins.bool
        isp: _builtins.bool
        last15secs: _builtins.bool
        last1min: _builtins.bool
        last5mins: _builtins.bool
        less: _builtins.bool
        less_or_equal: _builtins.bool
        local: _builtins.bool
        major: _builtins.bool
        matches: _builtins.bool
        minor: _builtins.bool
        missing: _builtins.bool
        mss: _builtins.bool
        not_: _builtins.bool
        org: _builtins.bool
        password: _builtins.bool
        path: _builtins.bool
        path_segment: _builtins.bool
        port: _builtins.bool
        present: _builtins.bool
        protocol: _builtins.bool
        query_parameter: _builtins.bool
        query_string: _builtins.bool
        region_code: _builtins.bool
        region_name: _builtins.bool
        remote: _builtins.bool
        request: _builtins.bool
        response: _builtins.bool
        route_domain: _builtins.bool
        rtt: _builtins.bool
        scheme: _builtins.bool
        server_name: _builtins.bool
        ssl_cert: _builtins.bool
        ssl_client_hello: _builtins.bool
        ssl_extension: _builtins.bool
        ssl_server_handshake: _builtins.bool
        ssl_server_hello: _builtins.bool
        starts_with: _builtins.bool
        tcp: _builtins.bool
        text: _builtins.bool
        tm_name: _builtins.str
        unnamed_query_parameter: _builtins.bool
        user_agent_token: _builtins.bool
        username: _builtins.bool
        value: _builtins.bool
        values: Sequence[_builtins.str]
        version: _builtins.bool
        vlan: _builtins.bool
        vlan_id: _builtins.bool
elif False:
    GetPolicyRuleConditionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetPolicyRuleConditionArgs:
    def __init__(__self__, *,
                 address: _builtins.bool,
                 all: _builtins.bool,
                 app_service: _builtins.str,
                 browser_type: _builtins.bool,
                 browser_version: _builtins.bool,
                 case_insensitive: _builtins.bool,
                 case_sensitive: _builtins.bool,
                 cipher: _builtins.bool,
                 cipher_bits: _builtins.bool,
                 client_ssl: _builtins.bool,
                 code: _builtins.bool,
                 common_name: _builtins.bool,
                 contains: _builtins.bool,
                 continent: _builtins.bool,
                 country_code: _builtins.bool,
                 country_name: _builtins.bool,
                 cpu_usage: _builtins.bool,
                 datagroup: _builtins.str,
                 device_make: _builtins.bool,
                 device_model: _builtins.bool,
                 domain: _builtins.bool,
                 ends_with: _builtins.bool,
                 equals: _builtins.bool,
                 expiry: _builtins.bool,
                 extension: _builtins.bool,
                 external: _builtins.bool,
                 geoip: _builtins.bool,
                 greater: _builtins.bool,
                 greater_or_equal: _builtins.bool,
                 host: _builtins.bool,
                 http_basic_auth: _builtins.bool,
                 http_cookie: _builtins.bool,
                 http_header: _builtins.bool,
                 http_host: _builtins.bool,
                 http_method: _builtins.bool,
                 http_referer: _builtins.bool,
                 http_set_cookie: _builtins.bool,
                 http_status: _builtins.bool,
                 http_uri: _builtins.bool,
                 http_user_agent: _builtins.bool,
                 http_version: _builtins.bool,
                 index: _builtins.int,
                 internal: _builtins.bool,
                 isp: _builtins.bool,
                 last15secs: _builtins.bool,
                 last1min: _builtins.bool,
                 last5mins: _builtins.bool,
                 less: _builtins.bool,
                 less_or_equal: _builtins.bool,
                 local: _builtins.bool,
                 major: _builtins.bool,
                 matches: _builtins.bool,
                 minor: _builtins.bool,
                 missing: _builtins.bool,
                 mss: _builtins.bool,
                 not_: _builtins.bool,
                 org: _builtins.bool,
                 password: _builtins.bool,
                 path: _builtins.bool,
                 path_segment: _builtins.bool,
                 port: _builtins.bool,
                 present: _builtins.bool,
                 protocol: _builtins.bool,
                 query_parameter: _builtins.bool,
                 query_string: _builtins.bool,
                 region_code: _builtins.bool,
                 region_name: _builtins.bool,
                 remote: _builtins.bool,
                 request: _builtins.bool,
                 response: _builtins.bool,
                 route_domain: _builtins.bool,
                 rtt: _builtins.bool,
                 scheme: _builtins.bool,
                 server_name: _builtins.bool,
                 ssl_cert: _builtins.bool,
                 ssl_client_hello: _builtins.bool,
                 ssl_extension: _builtins.bool,
                 ssl_server_handshake: _builtins.bool,
                 ssl_server_hello: _builtins.bool,
                 starts_with: _builtins.bool,
                 tcp: _builtins.bool,
                 text: _builtins.bool,
                 tm_name: _builtins.str,
                 unnamed_query_parameter: _builtins.bool,
                 user_agent_token: _builtins.bool,
                 username: _builtins.bool,
                 value: _builtins.bool,
                 values: Sequence[_builtins.str],
                 version: _builtins.bool,
                 vlan: _builtins.bool,
                 vlan_id: _builtins.bool):
        pulumi.set(__self__, "address", address)
        pulumi.set(__self__, "all", all)
        pulumi.set(__self__, "app_service", app_service)
        pulumi.set(__self__, "browser_type", browser_type)
        pulumi.set(__self__, "browser_version", browser_version)
        pulumi.set(__self__, "case_insensitive", case_insensitive)
        pulumi.set(__self__, "case_sensitive", case_sensitive)
        pulumi.set(__self__, "cipher", cipher)
        pulumi.set(__self__, "cipher_bits", cipher_bits)
        pulumi.set(__self__, "client_ssl", client_ssl)
        pulumi.set(__self__, "code", code)
        pulumi.set(__self__, "common_name", common_name)
        pulumi.set(__self__, "contains", contains)
        pulumi.set(__self__, "continent", continent)
        pulumi.set(__self__, "country_code", country_code)
        pulumi.set(__self__, "country_name", country_name)
        pulumi.set(__self__, "cpu_usage", cpu_usage)
        pulumi.set(__self__, "datagroup", datagroup)
        pulumi.set(__self__, "device_make", device_make)
        pulumi.set(__self__, "device_model", device_model)
        pulumi.set(__self__, "domain", domain)
        pulumi.set(__self__, "ends_with", ends_with)
        pulumi.set(__self__, "equals", equals)
        pulumi.set(__self__, "expiry", expiry)
        pulumi.set(__self__, "extension", extension)
        pulumi.set(__self__, "external", external)
        pulumi.set(__self__, "geoip", geoip)
        pulumi.set(__self__, "greater", greater)
        pulumi.set(__self__, "greater_or_equal", greater_or_equal)
        pulumi.set(__self__, "host", host)
        pulumi.set(__self__, "http_basic_auth", http_basic_auth)
        pulumi.set(__self__, "http_cookie", http_cookie)
        pulumi.set(__self__, "http_header", http_header)
        pulumi.set(__self__, "http_host", http_host)
        pulumi.set(__self__, "http_method", http_method)
        pulumi.set(__self__, "http_referer", http_referer)
        pulumi.set(__self__, "http_set_cookie", http_set_cookie)
        pulumi.set(__self__, "http_status", http_status)
        pulumi.set(__self__, "http_uri", http_uri)
        pulumi.set(__self__, "http_user_agent", http_user_agent)
        pulumi.set(__self__, "http_version", http_version)
        pulumi.set(__self__, "index", index)
        pulumi.set(__self__, "internal", internal)
        pulumi.set(__self__, "isp", isp)
        pulumi.set(__self__, "last15secs", last15secs)
        pulumi.set(__self__, "last1min", last1min)
        pulumi.set(__self__, "last5mins", last5mins)
        pulumi.set(__self__, "less", less)
        pulumi.set(__self__, "less_or_equal", less_or_equal)
        pulumi.set(__self__, "local", local)
        pulumi.set(__self__, "major", major)
        pulumi.set(__self__, "matches", matches)
        pulumi.set(__self__, "minor", minor)
        pulumi.set(__self__, "missing", missing)
        pulumi.set(__self__, "mss", mss)
        pulumi.set(__self__, "not_", not_)
        pulumi.set(__self__, "org", org)
        pulumi.set(__self__, "password", password)
        pulumi.set(__self__, "path", path)
        pulumi.set(__self__, "path_segment", path_segment)
        pulumi.set(__self__, "port", port)
        pulumi.set(__self__, "present", present)
        pulumi.set(__self__, "protocol", protocol)
        pulumi.set(__self__, "query_parameter", query_parameter)
        pulumi.set(__self__, "query_string", query_string)
        pulumi.set(__self__, "region_code", region_code)
        pulumi.set(__self__, "region_name", region_name)
        pulumi.set(__self__, "remote", remote)
        pulumi.set(__self__, "request", request)
        pulumi.set(__self__, "response", response)
        pulumi.set(__self__, "route_domain", route_domain)
        pulumi.set(__self__, "rtt", rtt)
        pulumi.set(__self__, "scheme", scheme)
        pulumi.set(__self__, "server_name", server_name)
        pulumi.set(__self__, "ssl_cert", ssl_cert)
        pulumi.set(__self__, "ssl_client_hello", ssl_client_hello)
        pulumi.set(__self__, "ssl_extension", ssl_extension)
        pulumi.set(__self__, "ssl_server_handshake", ssl_server_handshake)
        pulumi.set(__self__, "ssl_server_hello", ssl_server_hello)
        pulumi.set(__self__, "starts_with", starts_with)
        pulumi.set(__self__, "tcp", tcp)
        pulumi.set(__self__, "text", text)
        pulumi.set(__self__, "tm_name", tm_name)
        pulumi.set(__self__, "unnamed_query_parameter", unnamed_query_parameter)
        pulumi.set(__self__, "user_agent_token", user_agent_token)
        pulumi.set(__self__, "username", username)
        pulumi.set(__self__, "value", value)
        pulumi.set(__self__, "values", values)
        pulumi.set(__self__, "version", version)
        pulumi.set(__self__, "vlan", vlan)
        pulumi.set(__self__, "vlan_id", vlan_id)

    @_builtins.property
    @pulumi.getter
    def address(self) -> _builtins.bool:
        return pulumi.get(self, "address")

    @address.setter
    def address(self, value: _builtins.bool):
        pulumi.set(self, "address", value)

    @_builtins.property
    @pulumi.getter
    def all(self) -> _builtins.bool:
        return pulumi.get(self, "all")

    @all.setter
    def all(self, value: _builtins.bool):
        pulumi.set(self, "all", value)

    @_builtins.property
    @pulumi.getter(name="appService")
    def app_service(self) -> _builtins.str:
        return pulumi.get(self, "app_service")

    @app_service.setter
    def app_service(self, value: _builtins.str):
        pulumi.set(self, "app_service", value)

    @_builtins.property
    @pulumi.getter(name="browserType")
    def browser_type(self) -> _builtins.bool:
        return pulumi.get(self, "browser_type")

    @browser_type.setter
    def browser_type(self, value: _builtins.bool):
        pulumi.set(self, "browser_type", value)

    @_builtins.property
    @pulumi.getter(name="browserVersion")
    def browser_version(self) -> _builtins.bool:
        return pulumi.get(self, "browser_version")

    @browser_version.setter
    def browser_version(self, value: _builtins.bool):
        pulumi.set(self, "browser_version", value)

    @_builtins.property
    @pulumi.getter(name="caseInsensitive")
    def case_insensitive(self) -> _builtins.bool:
        return pulumi.get(self, "case_insensitive")

    @case_insensitive.setter
    def case_insensitive(self, value: _builtins.bool):
        pulumi.set(self, "case_insensitive", value)

    @_builtins.property
    @pulumi.getter(name="caseSensitive")
    def case_sensitive(self) -> _builtins.bool:
        return pulumi.get(self, "case_sensitive")

    @case_sensitive.setter
    def case_sensitive(self, value: _builtins.bool):
        pulumi.set(self, "case_sensitive", value)

    @_builtins.property
    @pulumi.getter
    def cipher(self) -> _builtins.bool:
        return pulumi.get(self, "cipher")

    @cipher.setter
    def cipher(self, value: _builtins.bool):
        pulumi.set(self, "cipher", value)

    @_builtins.property
    @pulumi.getter(name="cipherBits")
    def cipher_bits(self) -> _builtins.bool:
        return pulumi.get(self, "cipher_bits")

    @cipher_bits.setter
    def cipher_bits(self, value: _builtins.bool):
        pulumi.set(self, "cipher_bits", value)

    @_builtins.property
    @pulumi.getter(name="clientSsl")
    def client_ssl(self) -> _builtins.bool:
        return pulumi.get(self, "client_ssl")

    @client_ssl.setter
    def client_ssl(self, value: _builtins.bool):
        pulumi.set(self, "client_ssl", value)

    @_builtins.property
    @pulumi.getter
    def code(self) -> _builtins.bool:
        return pulumi.get(self, "code")

    @code.setter
    def code(self, value: _builtins.bool):
        pulumi.set(self, "code", value)

    @_builtins.property
    @pulumi.getter(name="commonName")
    def common_name(self) -> _builtins.bool:
        return pulumi.get(self, "common_name")

    @common_name.setter
    def common_name(self, value: _builtins.bool):
        pulumi.set(self, "common_name", value)

    @_builtins.property
    @pulumi.getter
    def contains(self) -> _builtins.bool:
        return pulumi.get(self, "contains")

    @contains.setter
    def contains(self, value: _builtins.bool):
        pulumi.set(self, "contains", value)

    @_builtins.property
    @pulumi.getter
    def continent(self) -> _builtins.bool:
        return pulumi.get(self, "continent")

    @continent.setter
    def continent(self, value: _builtins.bool):
        pulumi.set(self, "continent", value)

    @_builtins.property
    @pulumi.getter(name="countryCode")
    def country_code(self) -> _builtins.bool:
        return pulumi.get(self, "country_code")

    @country_code.setter
    def country_code(self, value: _builtins.bool):
        pulumi.set(self, "country_code", value)

    @_builtins.property
    @pulumi.getter(name="countryName")
    def country_name(self) -> _builtins.bool:
        return pulumi.get(self, "country_name")

    @country_name.setter
    def country_name(self, value: _builtins.bool):
        pulumi.set(self, "country_name", value)

    @_builtins.property
    @pulumi.getter(name="cpuUsage")
    def cpu_usage(self) -> _builtins.bool:
        return pulumi.get(self, "cpu_usage")

    @cpu_usage.setter
    def cpu_usage(self, value: _builtins.bool):
        pulumi.set(self, "cpu_usage", value)

    @_builtins.property
    @pulumi.getter
    def datagroup(self) -> _builtins.str:
        return pulumi.get(self, "datagroup")

    @datagroup.setter
    def datagroup(self, value: _builtins.str):
        pulumi.set(self, "datagroup", value)

    @_builtins.property
    @pulumi.getter(name="deviceMake")
    def device_make(self) -> _builtins.bool:
        return pulumi.get(self, "device_make")

    @device_make.setter
    def device_make(self, value: _builtins.bool):
        pulumi.set(self, "device_make", value)

    @_builtins.property
    @pulumi.getter(name="deviceModel")
    def device_model(self) -> _builtins.bool:
        return pulumi.get(self, "device_model")

    @device_model.setter
    def device_model(self, value: _builtins.bool):
        pulumi.set(self, "device_model", value)

    @_builtins.property
    @pulumi.getter
    def domain(self) -> _builtins.bool:
        return pulumi.get(self, "domain")

    @domain.setter
    def domain(self, value: _builtins.bool):
        pulumi.set(self, "domain", value)

    @_builtins.property
    @pulumi.getter(name="endsWith")
    def ends_with(self) -> _builtins.bool:
        return pulumi.get(self, "ends_with")

    @ends_with.setter
    def ends_with(self, value: _builtins.bool):
        pulumi.set(self, "ends_with", value)

    @_builtins.property
    @pulumi.getter
    def equals(self) -> _builtins.bool:
        return pulumi.get(self, "equals")

    @equals.setter
    def equals(self, value: _builtins.bool):
        pulumi.set(self, "equals", value)

    @_builtins.property
    @pulumi.getter
    def expiry(self) -> _builtins.bool:
        return pulumi.get(self, "expiry")

    @expiry.setter
    def expiry(self, value: _builtins.bool):
        pulumi.set(self, "expiry", value)

    @_builtins.property
    @pulumi.getter
    def extension(self) -> _builtins.bool:
        return pulumi.get(self, "extension")

    @extension.setter
    def extension(self, value: _builtins.bool):
        pulumi.set(self, "extension", value)

    @_builtins.property
    @pulumi.getter
    def external(self) -> _builtins.bool:
        return pulumi.get(self, "external")

    @external.setter
    def external(self, value: _builtins.bool):
        pulumi.set(self, "external", value)

    @_builtins.property
    @pulumi.getter
    def geoip(self) -> _builtins.bool:
        return pulumi.get(self, "geoip")

    @geoip.setter
    def geoip(self, value: _builtins.bool):
        pulumi.set(self, "geoip", value)

    @_builtins.property
    @pulumi.getter
    def greater(self) -> _builtins.bool:
        return pulumi.get(self, "greater")

    @greater.setter
    def greater(self, value: _builtins.bool):
        pulumi.set(self, "greater", value)

    @_builtins.property
    @pulumi.getter(name="greaterOrEqual")
    def greater_or_equal(self) -> _builtins.bool:
        return pulumi.get(self, "greater_or_equal")

    @greater_or_equal.setter
    def greater_or_equal(self, value: _builtins.bool):
        pulumi.set(self, "greater_or_equal", value)

    @_builtins.property
    @pulumi.getter
    def host(self) -> _builtins.bool:
        return pulumi.get(self, "host")

    @host.setter
    def host(self, value: _builtins.bool):
        pulumi.set(self, "host", value)

    @_builtins.property
    @pulumi.getter(name="httpBasicAuth")
    def http_basic_auth(self) -> _builtins.bool:
        return pulumi.get(self, "http_basic_auth")

    @http_basic_auth.setter
    def http_basic_auth(self, value: _builtins.bool):
        pulumi.set(self, "http_basic_auth", value)

    @_builtins.property
    @pulumi.getter(name="httpCookie")
    def http_cookie(self) -> _builtins.bool:
        return pulumi.get(self, "http_cookie")

    @http_cookie.setter
    def http_cookie(self, value: _builtins.bool):
        pulumi.set(self, "http_cookie", value)

    @_builtins.property
    @pulumi.getter(name="httpHeader")
    def http_header(self) -> _builtins.bool:
        return pulumi.get(self, "http_header")

    @http_header.setter
    def http_header(self, value: _builtins.bool):
        pulumi.set(self, "http_header", value)

    @_builtins.property
    @pulumi.getter(name="httpHost")
    def http_host(self) -> _builtins.bool:
        return pulumi.get(self, "http_host")

    @http_host.setter
    def http_host(self, value: _builtins.bool):
        pulumi.set(self, "http_host", value)

    @_builtins.property
    @pulumi.getter(name="httpMethod")
    def http_method(self) -> _builtins.bool:
        return pulumi.get(self, "http_method")

    @http_method.setter
    def http_method(self, value: _builtins.bool):
        pulumi.set(self, "http_method", value)

    @_builtins.property
    @pulumi.getter(name="httpReferer")
    def http_referer(self) -> _builtins.bool:
        return pulumi.get(self, "http_referer")

    @http_referer.setter
    def http_referer(self, value: _builtins.bool):
        pulumi.set(self, "http_referer", value)

    @_builtins.property
    @pulumi.getter(name="httpSetCookie")
    def http_set_cookie(self) -> _builtins.bool:
        return pulumi.get(self, "http_set_cookie")

    @http_set_cookie.setter
    def http_set_cookie(self, value: _builtins.bool):
        pulumi.set(self, "http_set_cookie", value)

    @_builtins.property
    @pulumi.getter(name="httpStatus")
    def http_status(self) -> _builtins.bool:
        return pulumi.get(self, "http_status")

    @http_status.setter
    def http_status(self, value: _builtins.bool):
        pulumi.set(self, "http_status", value)

    @_builtins.property
    @pulumi.getter(name="httpUri")
    def http_uri(self) -> _builtins.bool:
        return pulumi.get(self, "http_uri")

    @http_uri.setter
    def http_uri(self, value: _builtins.bool):
        pulumi.set(self, "http_uri", value)

    @_builtins.property
    @pulumi.getter(name="httpUserAgent")
    def http_user_agent(self) -> _builtins.bool:
        return pulumi.get(self, "http_user_agent")

    @http_user_agent.setter
    def http_user_agent(self, value: _builtins.bool):
        pulumi.set(self, "http_user_agent", value)

    @_builtins.property
    @pulumi.getter(name="httpVersion")
    def http_version(self) -> _builtins.bool:
        return pulumi.get(self, "http_version")

    @http_version.setter
    def http_version(self, value: _builtins.bool):
        pulumi.set(self, "http_version", value)

    @_builtins.property
    @pulumi.getter
    def index(self) -> _builtins.int:
        return pulumi.get(self, "index")

    @index.setter
    def index(self, value: _builtins.int):
        pulumi.set(self, "index", value)

    @_builtins.property
    @pulumi.getter
    def internal(self) -> _builtins.bool:
        return pulumi.get(self, "internal")

    @internal.setter
    def internal(self, value: _builtins.bool):
        pulumi.set(self, "internal", value)

    @_builtins.property
    @pulumi.getter
    def isp(self) -> _builtins.bool:
        return pulumi.get(self, "isp")

    @isp.setter
    def isp(self, value: _builtins.bool):
        pulumi.set(self, "isp", value)

    @_builtins.property
    @pulumi.getter
    def last15secs(self) -> _builtins.bool:
        return pulumi.get(self, "last15secs")

    @last15secs.setter
    def last15secs(self, value: _builtins.bool):
        pulumi.set(self, "last15secs", value)

    @_builtins.property
    @pulumi.getter
    def last1min(self) -> _builtins.bool:
        return pulumi.get(self, "last1min")

    @last1min.setter
    def last1min(self, value: _builtins.bool):
        pulumi.set(self, "last1min", value)

    @_builtins.property
    @pulumi.getter
    def last5mins(self) -> _builtins.bool:
        return pulumi.get(self, "last5mins")

    @last5mins.setter
    def last5mins(self, value: _builtins.bool):
        pulumi.set(self, "last5mins", value)

    @_builtins.property
    @pulumi.getter
    def less(self) -> _builtins.bool:
        return pulumi.get(self, "less")

    @less.setter
    def less(self, value: _builtins.bool):
        pulumi.set(self, "less", value)

    @_builtins.property
    @pulumi.getter(name="lessOrEqual")
    def less_or_equal(self) -> _builtins.bool:
        return pulumi.get(self, "less_or_equal")

    @less_or_equal.setter
    def less_or_equal(self, value: _builtins.bool):
        pulumi.set(self, "less_or_equal", value)

    @_builtins.property
    @pulumi.getter
    def local(self) -> _builtins.bool:
        return pulumi.get(self, "local")

    @local.setter
    def local(self, value: _builtins.bool):
        pulumi.set(self, "local", value)

    @_builtins.property
    @pulumi.getter
    def major(self) -> _builtins.bool:
        return pulumi.get(self, "major")

    @major.setter
    def major(self, value: _builtins.bool):
        pulumi.set(self, "major", value)

    @_builtins.property
    @pulumi.getter
    def matches(self) -> _builtins.bool:
        return pulumi.get(self, "matches")

    @matches.setter
    def matches(self, value: _builtins.bool):
        pulumi.set(self, "matches", value)

    @_builtins.property
    @pulumi.getter
    def minor(self) -> _builtins.bool:
        return pulumi.get(self, "minor")

    @minor.setter
    def minor(self, value: _builtins.bool):
        pulumi.set(self, "minor", value)

    @_builtins.property
    @pulumi.getter
    def missing(self) -> _builtins.bool:
        return pulumi.get(self, "missing")

    @missing.setter
    def missing(self, value: _builtins.bool):
        pulumi.set(self, "missing", value)

    @_builtins.property
    @pulumi.getter
    def mss(self) -> _builtins.bool:
        return pulumi.get(self, "mss")

    @mss.setter
    def mss(self, value: _builtins.bool):
        pulumi.set(self, "mss", value)

    @_builtins.property
    @pulumi.getter(name="not")
    def not_(self) -> _builtins.bool:
        return pulumi.get(self, "not_")

    @not_.setter
    def not_(self, value: _builtins.bool):
        pulumi.set(self, "not_", value)

    @_builtins.property
    @pulumi.getter
    def org(self) -> _builtins.bool:
        return pulumi.get(self, "org")

    @org.setter
    def org(self, value: _builtins.bool):
        pulumi.set(self, "org", value)

    @_builtins.property
    @pulumi.getter
    def password(self) -> _builtins.bool:
        return pulumi.get(self, "password")

    @password.setter
    def password(self, value: _builtins.bool):
        pulumi.set(self, "password", value)

    @_builtins.property
    @pulumi.getter
    def path(self) -> _builtins.bool:
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: _builtins.bool):
        pulumi.set(self, "path", value)

    @_builtins.property
    @pulumi.getter(name="pathSegment")
    def path_segment(self) -> _builtins.bool:
        return pulumi.get(self, "path_segment")

    @path_segment.setter
    def path_segment(self, value: _builtins.bool):
        pulumi.set(self, "path_segment", value)

    @_builtins.property
    @pulumi.getter
    def port(self) -> _builtins.bool:
        return pulumi.get(self, "port")

    @port.setter
    def port(self, value: _builtins.bool):
        pulumi.set(self, "port", value)

    @_builtins.property
    @pulumi.getter
    def present(self) -> _builtins.bool:
        return pulumi.get(self, "present")

    @present.setter
    def present(self, value: _builtins.bool):
        pulumi.set(self, "present", value)

    @_builtins.property
    @pulumi.getter
    def protocol(self) -> _builtins.bool:
        return pulumi.get(self, "protocol")

    @protocol.setter
    def protocol(self, value: _builtins.bool):
        pulumi.set(self, "protocol", value)

    @_builtins.property
    @pulumi.getter(name="queryParameter")
    def query_parameter(self) -> _builtins.bool:
        return pulumi.get(self, "query_parameter")

    @query_parameter.setter
    def query_parameter(self, value: _builtins.bool):
        pulumi.set(self, "query_parameter", value)

    @_builtins.property
    @pulumi.getter(name="queryString")
    def query_string(self) -> _builtins.bool:
        return pulumi.get(self, "query_string")

    @query_string.setter
    def query_string(self, value: _builtins.bool):
        pulumi.set(self, "query_string", value)

    @_builtins.property
    @pulumi.getter(name="regionCode")
    def region_code(self) -> _builtins.bool:
        return pulumi.get(self, "region_code")

    @region_code.setter
    def region_code(self, value: _builtins.bool):
        pulumi.set(self, "region_code", value)

    @_builtins.property
    @pulumi.getter(name="regionName")
    def region_name(self) -> _builtins.bool:
        return pulumi.get(self, "region_name")

    @region_name.setter
    def region_name(self, value: _builtins.bool):
        pulumi.set(self, "region_name", value)

    @_builtins.property
    @pulumi.getter
    def remote(self) -> _builtins.bool:
        return pulumi.get(self, "remote")

    @remote.setter
    def remote(self, value: _builtins.bool):
        pulumi.set(self, "remote", value)

    @_builtins.property
    @pulumi.getter
    def request(self) -> _builtins.bool:
        return pulumi.get(self, "request")

    @request.setter
    def request(self, value: _builtins.bool):
        pulumi.set(self, "request", value)

    @_builtins.property
    @pulumi.getter
    def response(self) -> _builtins.bool:
        return pulumi.get(self, "response")

    @response.setter
    def response(self, value: _builtins.bool):
        pulumi.set(self, "response", value)

    @_builtins.property
    @pulumi.getter(name="routeDomain")
    def route_domain(self) -> _builtins.bool:
        return pulumi.get(self, "route_domain")

    @route_domain.setter
    def route_domain(self, value: _builtins.bool):
        pulumi.set(self, "route_domain", value)

    @_builtins.property
    @pulumi.getter
    def rtt(self) -> _builtins.bool:
        return pulumi.get(self, "rtt")

    @rtt.setter
    def rtt(self, value: _builtins.bool):
        pulumi.set(self, "rtt", value)

    @_builtins.property
    @pulumi.getter
    def scheme(self) -> _builtins.bool:
        return pulumi.get(self, "scheme")

    @scheme.setter
    def scheme(self, value: _builtins.bool):
        pulumi.set(self, "scheme", value)

    @_builtins.property
    @pulumi.getter(name="serverName")
    def server_name(self) -> _builtins.bool:
        return pulumi.get(self, "server_name")

    @server_name.setter
    def server_name(self, value: _builtins.bool):
        pulumi.set(self, "server_name", value)

    @_builtins.property
    @pulumi.getter(name="sslCert")
    def ssl_cert(self) -> _builtins.bool:
        return pulumi.get(self, "ssl_cert")

    @ssl_cert.setter
    def ssl_cert(self, value: _builtins.bool):
        pulumi.set(self, "ssl_cert", value)

    @_builtins.property
    @pulumi.getter(name="sslClientHello")
    def ssl_client_hello(self) -> _builtins.bool:
        return pulumi.get(self, "ssl_client_hello")

    @ssl_client_hello.setter
    def ssl_client_hello(self, value: _builtins.bool):
        pulumi.set(self, "ssl_client_hello", value)

    @_builtins.property
    @pulumi.getter(name="sslExtension")
    def ssl_extension(self) -> _builtins.bool:
        return pulumi.get(self, "ssl_extension")

    @ssl_extension.setter
    def ssl_extension(self, value: _builtins.bool):
        pulumi.set(self, "ssl_extension", value)

    @_builtins.property
    @pulumi.getter(name="sslServerHandshake")
    def ssl_server_handshake(self) -> _builtins.bool:
        return pulumi.get(self, "ssl_server_handshake")

    @ssl_server_handshake.setter
    def ssl_server_handshake(self, value: _builtins.bool):
        pulumi.set(self, "ssl_server_handshake", value)

    @_builtins.property
    @pulumi.getter(name="sslServerHello")
    def ssl_server_hello(self) -> _builtins.bool:
        return pulumi.get(self, "ssl_server_hello")

    @ssl_server_hello.setter
    def ssl_server_hello(self, value: _builtins.bool):
        pulumi.set(self, "ssl_server_hello", value)

    @_builtins.property
    @pulumi.getter(name="startsWith")
    def starts_with(self) -> _builtins.bool:
        return pulumi.get(self, "starts_with")

    @starts_with.setter
    def starts_with(self, value: _builtins.bool):
        pulumi.set(self, "starts_with", value)

    @_builtins.property
    @pulumi.getter
    def tcp(self) -> _builtins.bool:
        return pulumi.get(self, "tcp")

    @tcp.setter
    def tcp(self, value: _builtins.bool):
        pulumi.set(self, "tcp", value)

    @_builtins.property
    @pulumi.getter
    def text(self) -> _builtins.bool:
        return pulumi.get(self, "text")

    @text.setter
    def text(self, value: _builtins.bool):
        pulumi.set(self, "text", value)

    @_builtins.property
    @pulumi.getter(name="tmName")
    def tm_name(self) -> _builtins.str:
        return pulumi.get(self, "tm_name")

    @tm_name.setter
    def tm_name(self, value: _builtins.str):
        pulumi.set(self, "tm_name", value)

    @_builtins.property
    @pulumi.getter(name="unnamedQueryParameter")
    def unnamed_query_parameter(self) -> _builtins.bool:
        return pulumi.get(self, "unnamed_query_parameter")

    @unnamed_query_parameter.setter
    def unnamed_query_parameter(self, value: _builtins.bool):
        pulumi.set(self, "unnamed_query_parameter", value)

    @_builtins.property
    @pulumi.getter(name="userAgentToken")
    def user_agent_token(self) -> _builtins.bool:
        return pulumi.get(self, "user_agent_token")

    @user_agent_token.setter
    def user_agent_token(self, value: _builtins.bool):
        pulumi.set(self, "user_agent_token", value)

    @_builtins.property
    @pulumi.getter
    def username(self) -> _builtins.bool:
        return pulumi.get(self, "username")

    @username.setter
    def username(self, value: _builtins.bool):
        pulumi.set(self, "username", value)

    @_builtins.property
    @pulumi.getter
    def value(self) -> _builtins.bool:
        return pulumi.get(self, "value")

    @value.setter
    def value(self, value: _builtins.bool):
        pulumi.set(self, "value", value)

    @_builtins.property
    @pulumi.getter
    def values(self) -> Sequence[_builtins.str]:
        return pulumi.get(self, "values")

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

    @_builtins.property
    @pulumi.getter
    def version(self) -> _builtins.bool:
        return pulumi.get(self, "version")

    @version.setter
    def version(self, value: _builtins.bool):
        pulumi.set(self, "version", value)

    @_builtins.property
    @pulumi.getter
    def vlan(self) -> _builtins.bool:
        return pulumi.get(self, "vlan")

    @vlan.setter
    def vlan(self, value: _builtins.bool):
        pulumi.set(self, "vlan", value)

    @_builtins.property
    @pulumi.getter(name="vlanId")
    def vlan_id(self) -> _builtins.bool:
        return pulumi.get(self, "vlan_id")

    @vlan_id.setter
    def vlan_id(self, value: _builtins.bool):
        pulumi.set(self, "vlan_id", value)


