# 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__ = [
    'PolicyNetRedirectPolicyArgs',
    'PolicyNetRedirectPolicyArgsDict',
]

MYPY = False

if not MYPY:
    class PolicyNetRedirectPolicyArgsDict(TypedDict):
        custom_proxy: NotRequired[pulumi.Input[_builtins.str]]
        """
        Whether to manually configure the transparent proxy.
        """
        host_addr: NotRequired[pulumi.Input[_builtins.str]]
        """
        The transparent proxy IP address. The format is IPv4 address.
        """
        net_redirect: NotRequired[pulumi.Input[_builtins.str]]
        """
        Whether to enable network redirection.
        """
        port: NotRequired[pulumi.Input[_builtins.str]]
        """
        Transparent proxy port. The Port value range is 1\\~ 65535.
        """
        proxy_password: NotRequired[pulumi.Input[_builtins.str]]
        """
        The proxy password. The length range is 1\\~ 256. Chinese characters and white space characters are not allowed.
        """
        proxy_type: NotRequired[pulumi.Input[_builtins.str]]
        """
        Agent protocol type.
        """
        proxy_user_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The proxy user name. The length range is 1\\~ 256. Chinese characters and white space characters are not allowed.
        """
elif False:
    PolicyNetRedirectPolicyArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PolicyNetRedirectPolicyArgs:
    def __init__(__self__, *,
                 custom_proxy: Optional[pulumi.Input[_builtins.str]] = None,
                 host_addr: Optional[pulumi.Input[_builtins.str]] = None,
                 net_redirect: Optional[pulumi.Input[_builtins.str]] = None,
                 port: Optional[pulumi.Input[_builtins.str]] = None,
                 proxy_password: Optional[pulumi.Input[_builtins.str]] = None,
                 proxy_type: Optional[pulumi.Input[_builtins.str]] = None,
                 proxy_user_name: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] custom_proxy: Whether to manually configure the transparent proxy.
        :param pulumi.Input[_builtins.str] host_addr: The transparent proxy IP address. The format is IPv4 address.
        :param pulumi.Input[_builtins.str] net_redirect: Whether to enable network redirection.
        :param pulumi.Input[_builtins.str] port: Transparent proxy port. The Port value range is 1\\~ 65535.
        :param pulumi.Input[_builtins.str] proxy_password: The proxy password. The length range is 1\\~ 256. Chinese characters and white space characters are not allowed.
        :param pulumi.Input[_builtins.str] proxy_type: Agent protocol type.
        :param pulumi.Input[_builtins.str] proxy_user_name: The proxy user name. The length range is 1\\~ 256. Chinese characters and white space characters are not allowed.
        """
        if custom_proxy is not None:
            pulumi.set(__self__, "custom_proxy", custom_proxy)
        if host_addr is not None:
            pulumi.set(__self__, "host_addr", host_addr)
        if net_redirect is not None:
            pulumi.set(__self__, "net_redirect", net_redirect)
        if port is not None:
            pulumi.set(__self__, "port", port)
        if proxy_password is not None:
            pulumi.set(__self__, "proxy_password", proxy_password)
        if proxy_type is not None:
            pulumi.set(__self__, "proxy_type", proxy_type)
        if proxy_user_name is not None:
            pulumi.set(__self__, "proxy_user_name", proxy_user_name)

    @_builtins.property
    @pulumi.getter(name="customProxy")
    def custom_proxy(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Whether to manually configure the transparent proxy.
        """
        return pulumi.get(self, "custom_proxy")

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

    @_builtins.property
    @pulumi.getter(name="hostAddr")
    def host_addr(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The transparent proxy IP address. The format is IPv4 address.
        """
        return pulumi.get(self, "host_addr")

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

    @_builtins.property
    @pulumi.getter(name="netRedirect")
    def net_redirect(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Whether to enable network redirection.
        """
        return pulumi.get(self, "net_redirect")

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

    @_builtins.property
    @pulumi.getter
    def port(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Transparent proxy port. The Port value range is 1\\~ 65535.
        """
        return pulumi.get(self, "port")

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

    @_builtins.property
    @pulumi.getter(name="proxyPassword")
    def proxy_password(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The proxy password. The length range is 1\\~ 256. Chinese characters and white space characters are not allowed.
        """
        return pulumi.get(self, "proxy_password")

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

    @_builtins.property
    @pulumi.getter(name="proxyType")
    def proxy_type(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Agent protocol type.
        """
        return pulumi.get(self, "proxy_type")

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

    @_builtins.property
    @pulumi.getter(name="proxyUserName")
    def proxy_user_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The proxy user name. The length range is 1\\~ 256. Chinese characters and white space characters are not allowed.
        """
        return pulumi.get(self, "proxy_user_name")

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


