# coding=utf-8
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import copy
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__ = [
    'GetWafEntityParameterUrlArgs',
    'GetWafEntityParameterUrlArgsDict',
    'GetWafEntityUrlCrossOriginRequestsEnforcementArgs',
    'GetWafEntityUrlCrossOriginRequestsEnforcementArgsDict',
    'GetWafEntityUrlMethodOverrideArgs',
    'GetWafEntityUrlMethodOverrideArgsDict',
]

MYPY = False

if not MYPY:
    class GetWafEntityParameterUrlArgsDict(TypedDict):
        method: str
        name: str
        protocol: str
        type: str
elif False:
    GetWafEntityParameterUrlArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetWafEntityParameterUrlArgs:
    def __init__(__self__, *,
                 method: str,
                 name: str,
                 protocol: str,
                 type: str):
        pulumi.set(__self__, "method", method)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "protocol", protocol)
        pulumi.set(__self__, "type", type)

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

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

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

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

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

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

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

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


if not MYPY:
    class GetWafEntityUrlCrossOriginRequestsEnforcementArgsDict(TypedDict):
        origin_name: str
        """
        Specifies the name of the origin with which you want to share your data.
        """
        origin_port: str
        """
        Specifies the port that other web applications are allowed to use to request data from your web application.
        """
        origin_protocol: str
        """
        Specifies the protocol that other web applications are allowed to use to request data from your web application.
        """
        include_subdomains: NotRequired[bool]
        """
        Determines whether the subdomains are allowed to receive data from the web application.
        """
elif False:
    GetWafEntityUrlCrossOriginRequestsEnforcementArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetWafEntityUrlCrossOriginRequestsEnforcementArgs:
    def __init__(__self__, *,
                 origin_name: str,
                 origin_port: str,
                 origin_protocol: str,
                 include_subdomains: Optional[bool] = None):
        """
        :param str origin_name: Specifies the name of the origin with which you want to share your data.
        :param str origin_port: Specifies the port that other web applications are allowed to use to request data from your web application.
        :param str origin_protocol: Specifies the protocol that other web applications are allowed to use to request data from your web application.
        :param bool include_subdomains: Determines whether the subdomains are allowed to receive data from the web application.
        """
        pulumi.set(__self__, "origin_name", origin_name)
        pulumi.set(__self__, "origin_port", origin_port)
        pulumi.set(__self__, "origin_protocol", origin_protocol)
        if include_subdomains is not None:
            pulumi.set(__self__, "include_subdomains", include_subdomains)

    @property
    @pulumi.getter(name="originName")
    def origin_name(self) -> str:
        """
        Specifies the name of the origin with which you want to share your data.
        """
        return pulumi.get(self, "origin_name")

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

    @property
    @pulumi.getter(name="originPort")
    def origin_port(self) -> str:
        """
        Specifies the port that other web applications are allowed to use to request data from your web application.
        """
        return pulumi.get(self, "origin_port")

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

    @property
    @pulumi.getter(name="originProtocol")
    def origin_protocol(self) -> str:
        """
        Specifies the protocol that other web applications are allowed to use to request data from your web application.
        """
        return pulumi.get(self, "origin_protocol")

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

    @property
    @pulumi.getter(name="includeSubdomains")
    def include_subdomains(self) -> Optional[bool]:
        """
        Determines whether the subdomains are allowed to receive data from the web application.
        """
        return pulumi.get(self, "include_subdomains")

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


if not MYPY:
    class GetWafEntityUrlMethodOverrideArgsDict(TypedDict):
        allow: bool
        """
        Specifies that the system allows or disallows a method for this URL
        """
        method: str
        """
        Specifies an HTTP method.
        """
elif False:
    GetWafEntityUrlMethodOverrideArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class GetWafEntityUrlMethodOverrideArgs:
    def __init__(__self__, *,
                 allow: bool,
                 method: str):
        """
        :param bool allow: Specifies that the system allows or disallows a method for this URL
        :param str method: Specifies an HTTP method.
        """
        pulumi.set(__self__, "allow", allow)
        pulumi.set(__self__, "method", method)

    @property
    @pulumi.getter
    def allow(self) -> bool:
        """
        Specifies that the system allows or disallows a method for this URL
        """
        return pulumi.get(self, "allow")

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

    @property
    @pulumi.getter
    def method(self) -> str:
        """
        Specifies an HTTP method.
        """
        return pulumi.get(self, "method")

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


