# 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__ = [
    'AccessControlListAclEntryArgs',
    'AccessControlListAclEntryArgsDict',
    'ApiConstantParameterArgs',
    'ApiConstantParameterArgsDict',
    'ApiFcServiceConfigArgs',
    'ApiFcServiceConfigArgsDict',
    'ApiHttpServiceConfigArgs',
    'ApiHttpServiceConfigArgsDict',
    'ApiHttpVpcServiceConfigArgs',
    'ApiHttpVpcServiceConfigArgsDict',
    'ApiMockServiceConfigArgs',
    'ApiMockServiceConfigArgsDict',
    'ApiRequestConfigArgs',
    'ApiRequestConfigArgsDict',
    'ApiRequestParameterArgs',
    'ApiRequestParameterArgsDict',
    'ApiSystemParameterArgs',
    'ApiSystemParameterArgsDict',
    'InstanceToConnectVpcIpBlockArgs',
    'InstanceToConnectVpcIpBlockArgsDict',
    'InstanceZoneVswitchSecurityGroupArgs',
    'InstanceZoneVswitchSecurityGroupArgsDict',
]

MYPY = False

if not MYPY:
    class AccessControlListAclEntryArgsDict(TypedDict):
        acl_entry_comment: NotRequired[pulumi.Input[str]]
        """
        The description of the ACL.
        """
        acl_entry_ip: NotRequired[pulumi.Input[str]]
        """
        The entries that you want to add to the ACL. You can add CIDR blocks. Separate multiple CIDR blocks with commas (,).
        """
elif False:
    AccessControlListAclEntryArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class AccessControlListAclEntryArgs:
    def __init__(__self__, *,
                 acl_entry_comment: Optional[pulumi.Input[str]] = None,
                 acl_entry_ip: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] acl_entry_comment: The description of the ACL.
        :param pulumi.Input[str] acl_entry_ip: The entries that you want to add to the ACL. You can add CIDR blocks. Separate multiple CIDR blocks with commas (,).
        """
        if acl_entry_comment is not None:
            pulumi.set(__self__, "acl_entry_comment", acl_entry_comment)
        if acl_entry_ip is not None:
            pulumi.set(__self__, "acl_entry_ip", acl_entry_ip)

    @property
    @pulumi.getter(name="aclEntryComment")
    def acl_entry_comment(self) -> Optional[pulumi.Input[str]]:
        """
        The description of the ACL.
        """
        return pulumi.get(self, "acl_entry_comment")

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

    @property
    @pulumi.getter(name="aclEntryIp")
    def acl_entry_ip(self) -> Optional[pulumi.Input[str]]:
        """
        The entries that you want to add to the ACL. You can add CIDR blocks. Separate multiple CIDR blocks with commas (,).
        """
        return pulumi.get(self, "acl_entry_ip")

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


if not MYPY:
    class ApiConstantParameterArgsDict(TypedDict):
        in_: pulumi.Input[str]
        """
        Constant parameter location; values: 'HEAD' and 'QUERY'.
        """
        name: pulumi.Input[str]
        """
        Constant parameter name.
        """
        value: pulumi.Input[str]
        """
        Constant parameter value.
        """
        description: NotRequired[pulumi.Input[str]]
        """
        The description of Constant parameter.
        """
elif False:
    ApiConstantParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ApiConstantParameterArgs:
    def __init__(__self__, *,
                 in_: pulumi.Input[str],
                 name: pulumi.Input[str],
                 value: pulumi.Input[str],
                 description: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] in_: Constant parameter location; values: 'HEAD' and 'QUERY'.
        :param pulumi.Input[str] name: Constant parameter name.
        :param pulumi.Input[str] value: Constant parameter value.
        :param pulumi.Input[str] description: The description of Constant parameter.
        """
        pulumi.set(__self__, "in_", in_)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)
        if description is not None:
            pulumi.set(__self__, "description", description)

    @property
    @pulumi.getter(name="in")
    def in_(self) -> pulumi.Input[str]:
        """
        Constant parameter location; values: 'HEAD' and 'QUERY'.
        """
        return pulumi.get(self, "in_")

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

    @property
    @pulumi.getter
    def name(self) -> pulumi.Input[str]:
        """
        Constant parameter name.
        """
        return pulumi.get(self, "name")

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

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

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

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[str]]:
        """
        The description of Constant parameter.
        """
        return pulumi.get(self, "description")

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


if not MYPY:
    class ApiFcServiceConfigArgsDict(TypedDict):
        arn_role: pulumi.Input[str]
        """
        RAM role arn attached to the Function Compute service. This governs both who / what can invoke your Function, as well as what resources our Function has access to. See [User Permissions](https://www.alibabacloud.com/help/doc-detail/52885.htm) for more details.
        """
        region: pulumi.Input[str]
        """
        The region that the function compute service belongs to.
        """
        timeout: pulumi.Input[int]
        """
        Backend service time-out time; unit: millisecond.
        """
        function_base_url: NotRequired[pulumi.Input[str]]
        """
        The base url of function compute service. Required if `function_type` is `HttpTrigger`.
        """
        function_name: NotRequired[pulumi.Input[str]]
        """
        The function name of function compute service. Required if `function_type` is `FCEvent`.
        """
        function_type: NotRequired[pulumi.Input[str]]
        """
        The type of function compute service. Supports values of `FCEvent`,`HttpTrigger`. Default value: `FCEvent`.
        """
        method: NotRequired[pulumi.Input[str]]
        """
        The http method of function compute service. Required if `function_type` is `HttpTrigger`.
        """
        only_business_path: NotRequired[pulumi.Input[bool]]
        """
        Whether to filter path in `function_base_url`. Optional if `function_type` is `HttpTrigger`.
        """
        path: NotRequired[pulumi.Input[str]]
        """
        The path of function compute service. Required if `function_type` is `HttpTrigger`.
        """
        qualifier: NotRequired[pulumi.Input[str]]
        """
        The qualifier of function name of compute service.
        """
        service_name: NotRequired[pulumi.Input[str]]
        """
        The service name of function compute service. Required if `function_type` is `FCEvent`.
        """
elif False:
    ApiFcServiceConfigArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ApiFcServiceConfigArgs:
    def __init__(__self__, *,
                 arn_role: pulumi.Input[str],
                 region: pulumi.Input[str],
                 timeout: pulumi.Input[int],
                 function_base_url: Optional[pulumi.Input[str]] = None,
                 function_name: Optional[pulumi.Input[str]] = None,
                 function_type: Optional[pulumi.Input[str]] = None,
                 method: Optional[pulumi.Input[str]] = None,
                 only_business_path: Optional[pulumi.Input[bool]] = None,
                 path: Optional[pulumi.Input[str]] = None,
                 qualifier: Optional[pulumi.Input[str]] = None,
                 service_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] arn_role: RAM role arn attached to the Function Compute service. This governs both who / what can invoke your Function, as well as what resources our Function has access to. See [User Permissions](https://www.alibabacloud.com/help/doc-detail/52885.htm) for more details.
        :param pulumi.Input[str] region: The region that the function compute service belongs to.
        :param pulumi.Input[int] timeout: Backend service time-out time; unit: millisecond.
        :param pulumi.Input[str] function_base_url: The base url of function compute service. Required if `function_type` is `HttpTrigger`.
        :param pulumi.Input[str] function_name: The function name of function compute service. Required if `function_type` is `FCEvent`.
        :param pulumi.Input[str] function_type: The type of function compute service. Supports values of `FCEvent`,`HttpTrigger`. Default value: `FCEvent`.
        :param pulumi.Input[str] method: The http method of function compute service. Required if `function_type` is `HttpTrigger`.
        :param pulumi.Input[bool] only_business_path: Whether to filter path in `function_base_url`. Optional if `function_type` is `HttpTrigger`.
        :param pulumi.Input[str] path: The path of function compute service. Required if `function_type` is `HttpTrigger`.
        :param pulumi.Input[str] qualifier: The qualifier of function name of compute service.
        :param pulumi.Input[str] service_name: The service name of function compute service. Required if `function_type` is `FCEvent`.
        """
        pulumi.set(__self__, "arn_role", arn_role)
        pulumi.set(__self__, "region", region)
        pulumi.set(__self__, "timeout", timeout)
        if function_base_url is not None:
            pulumi.set(__self__, "function_base_url", function_base_url)
        if function_name is not None:
            pulumi.set(__self__, "function_name", function_name)
        if function_type is not None:
            pulumi.set(__self__, "function_type", function_type)
        if method is not None:
            pulumi.set(__self__, "method", method)
        if only_business_path is not None:
            pulumi.set(__self__, "only_business_path", only_business_path)
        if path is not None:
            pulumi.set(__self__, "path", path)
        if qualifier is not None:
            pulumi.set(__self__, "qualifier", qualifier)
        if service_name is not None:
            pulumi.set(__self__, "service_name", service_name)

    @property
    @pulumi.getter(name="arnRole")
    def arn_role(self) -> pulumi.Input[str]:
        """
        RAM role arn attached to the Function Compute service. This governs both who / what can invoke your Function, as well as what resources our Function has access to. See [User Permissions](https://www.alibabacloud.com/help/doc-detail/52885.htm) for more details.
        """
        return pulumi.get(self, "arn_role")

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

    @property
    @pulumi.getter
    def region(self) -> pulumi.Input[str]:
        """
        The region that the function compute service belongs to.
        """
        return pulumi.get(self, "region")

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

    @property
    @pulumi.getter
    def timeout(self) -> pulumi.Input[int]:
        """
        Backend service time-out time; unit: millisecond.
        """
        return pulumi.get(self, "timeout")

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

    @property
    @pulumi.getter(name="functionBaseUrl")
    def function_base_url(self) -> Optional[pulumi.Input[str]]:
        """
        The base url of function compute service. Required if `function_type` is `HttpTrigger`.
        """
        return pulumi.get(self, "function_base_url")

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

    @property
    @pulumi.getter(name="functionName")
    def function_name(self) -> Optional[pulumi.Input[str]]:
        """
        The function name of function compute service. Required if `function_type` is `FCEvent`.
        """
        return pulumi.get(self, "function_name")

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

    @property
    @pulumi.getter(name="functionType")
    def function_type(self) -> Optional[pulumi.Input[str]]:
        """
        The type of function compute service. Supports values of `FCEvent`,`HttpTrigger`. Default value: `FCEvent`.
        """
        return pulumi.get(self, "function_type")

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

    @property
    @pulumi.getter
    def method(self) -> Optional[pulumi.Input[str]]:
        """
        The http method of function compute service. Required if `function_type` is `HttpTrigger`.
        """
        return pulumi.get(self, "method")

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

    @property
    @pulumi.getter(name="onlyBusinessPath")
    def only_business_path(self) -> Optional[pulumi.Input[bool]]:
        """
        Whether to filter path in `function_base_url`. Optional if `function_type` is `HttpTrigger`.
        """
        return pulumi.get(self, "only_business_path")

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

    @property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[str]]:
        """
        The path of function compute service. Required if `function_type` is `HttpTrigger`.
        """
        return pulumi.get(self, "path")

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

    @property
    @pulumi.getter
    def qualifier(self) -> Optional[pulumi.Input[str]]:
        """
        The qualifier of function name of compute service.
        """
        return pulumi.get(self, "qualifier")

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

    @property
    @pulumi.getter(name="serviceName")
    def service_name(self) -> Optional[pulumi.Input[str]]:
        """
        The service name of function compute service. Required if `function_type` is `FCEvent`.
        """
        return pulumi.get(self, "service_name")

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


if not MYPY:
    class ApiHttpServiceConfigArgsDict(TypedDict):
        address: pulumi.Input[str]
        """
        The address of backend service.
        """
        method: pulumi.Input[str]
        """
        The http method of backend service.
        """
        path: pulumi.Input[str]
        """
        The path of backend service.
        """
        timeout: pulumi.Input[int]
        """
        Backend service time-out time; unit: millisecond.
        """
        aone_name: NotRequired[pulumi.Input[str]]
        """
        The name of aone.
        """
        content_type_category: NotRequired[pulumi.Input[str]]
        """
        The content type category of backend service which supports values of 'DEFAULT','CUSTOM' and 'CLIENT'.
        """
        content_type_value: NotRequired[pulumi.Input[str]]
        """
        The content type value of backend service.
        """
elif False:
    ApiHttpServiceConfigArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ApiHttpServiceConfigArgs:
    def __init__(__self__, *,
                 address: pulumi.Input[str],
                 method: pulumi.Input[str],
                 path: pulumi.Input[str],
                 timeout: pulumi.Input[int],
                 aone_name: Optional[pulumi.Input[str]] = None,
                 content_type_category: Optional[pulumi.Input[str]] = None,
                 content_type_value: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] address: The address of backend service.
        :param pulumi.Input[str] method: The http method of backend service.
        :param pulumi.Input[str] path: The path of backend service.
        :param pulumi.Input[int] timeout: Backend service time-out time; unit: millisecond.
        :param pulumi.Input[str] aone_name: The name of aone.
        :param pulumi.Input[str] content_type_category: The content type category of backend service which supports values of 'DEFAULT','CUSTOM' and 'CLIENT'.
        :param pulumi.Input[str] content_type_value: The content type value of backend service.
        """
        pulumi.set(__self__, "address", address)
        pulumi.set(__self__, "method", method)
        pulumi.set(__self__, "path", path)
        pulumi.set(__self__, "timeout", timeout)
        if aone_name is not None:
            pulumi.set(__self__, "aone_name", aone_name)
        if content_type_category is not None:
            pulumi.set(__self__, "content_type_category", content_type_category)
        if content_type_value is not None:
            pulumi.set(__self__, "content_type_value", content_type_value)

    @property
    @pulumi.getter
    def address(self) -> pulumi.Input[str]:
        """
        The address of backend service.
        """
        return pulumi.get(self, "address")

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

    @property
    @pulumi.getter
    def method(self) -> pulumi.Input[str]:
        """
        The http method of backend service.
        """
        return pulumi.get(self, "method")

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

    @property
    @pulumi.getter
    def path(self) -> pulumi.Input[str]:
        """
        The path of backend service.
        """
        return pulumi.get(self, "path")

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

    @property
    @pulumi.getter
    def timeout(self) -> pulumi.Input[int]:
        """
        Backend service time-out time; unit: millisecond.
        """
        return pulumi.get(self, "timeout")

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

    @property
    @pulumi.getter(name="aoneName")
    def aone_name(self) -> Optional[pulumi.Input[str]]:
        """
        The name of aone.
        """
        return pulumi.get(self, "aone_name")

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

    @property
    @pulumi.getter(name="contentTypeCategory")
    def content_type_category(self) -> Optional[pulumi.Input[str]]:
        """
        The content type category of backend service which supports values of 'DEFAULT','CUSTOM' and 'CLIENT'.
        """
        return pulumi.get(self, "content_type_category")

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

    @property
    @pulumi.getter(name="contentTypeValue")
    def content_type_value(self) -> Optional[pulumi.Input[str]]:
        """
        The content type value of backend service.
        """
        return pulumi.get(self, "content_type_value")

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


if not MYPY:
    class ApiHttpVpcServiceConfigArgsDict(TypedDict):
        method: pulumi.Input[str]
        """
        The http method of backend service.
        """
        name: pulumi.Input[str]
        """
        The name of vpc instance.
        """
        path: pulumi.Input[str]
        """
        The path of backend service.
        """
        timeout: pulumi.Input[int]
        """
        Backend service time-out time. Unit: millisecond.
        """
        aone_name: NotRequired[pulumi.Input[str]]
        """
        The name of aone.
        """
        content_type_category: NotRequired[pulumi.Input[str]]
        """
        The content type category of backend service which supports values of 'DEFAULT','CUSTOM' and 'CLIENT'.
        """
        content_type_value: NotRequired[pulumi.Input[str]]
        """
        The content type value of backend service.
        """
        vpc_scheme: NotRequired[pulumi.Input[str]]
        """
        The vpc scheme of backend service which supports values of `HTTP` and `HTTPS`.
        """
elif False:
    ApiHttpVpcServiceConfigArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ApiHttpVpcServiceConfigArgs:
    def __init__(__self__, *,
                 method: pulumi.Input[str],
                 name: pulumi.Input[str],
                 path: pulumi.Input[str],
                 timeout: pulumi.Input[int],
                 aone_name: Optional[pulumi.Input[str]] = None,
                 content_type_category: Optional[pulumi.Input[str]] = None,
                 content_type_value: Optional[pulumi.Input[str]] = None,
                 vpc_scheme: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] method: The http method of backend service.
        :param pulumi.Input[str] name: The name of vpc instance.
        :param pulumi.Input[str] path: The path of backend service.
        :param pulumi.Input[int] timeout: Backend service time-out time. Unit: millisecond.
        :param pulumi.Input[str] aone_name: The name of aone.
        :param pulumi.Input[str] content_type_category: The content type category of backend service which supports values of 'DEFAULT','CUSTOM' and 'CLIENT'.
        :param pulumi.Input[str] content_type_value: The content type value of backend service.
        :param pulumi.Input[str] vpc_scheme: The vpc scheme of backend service which supports values of `HTTP` and `HTTPS`.
        """
        pulumi.set(__self__, "method", method)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "path", path)
        pulumi.set(__self__, "timeout", timeout)
        if aone_name is not None:
            pulumi.set(__self__, "aone_name", aone_name)
        if content_type_category is not None:
            pulumi.set(__self__, "content_type_category", content_type_category)
        if content_type_value is not None:
            pulumi.set(__self__, "content_type_value", content_type_value)
        if vpc_scheme is not None:
            pulumi.set(__self__, "vpc_scheme", vpc_scheme)

    @property
    @pulumi.getter
    def method(self) -> pulumi.Input[str]:
        """
        The http method of backend service.
        """
        return pulumi.get(self, "method")

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

    @property
    @pulumi.getter
    def name(self) -> pulumi.Input[str]:
        """
        The name of vpc instance.
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter
    def path(self) -> pulumi.Input[str]:
        """
        The path of backend service.
        """
        return pulumi.get(self, "path")

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

    @property
    @pulumi.getter
    def timeout(self) -> pulumi.Input[int]:
        """
        Backend service time-out time. Unit: millisecond.
        """
        return pulumi.get(self, "timeout")

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

    @property
    @pulumi.getter(name="aoneName")
    def aone_name(self) -> Optional[pulumi.Input[str]]:
        """
        The name of aone.
        """
        return pulumi.get(self, "aone_name")

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

    @property
    @pulumi.getter(name="contentTypeCategory")
    def content_type_category(self) -> Optional[pulumi.Input[str]]:
        """
        The content type category of backend service which supports values of 'DEFAULT','CUSTOM' and 'CLIENT'.
        """
        return pulumi.get(self, "content_type_category")

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

    @property
    @pulumi.getter(name="contentTypeValue")
    def content_type_value(self) -> Optional[pulumi.Input[str]]:
        """
        The content type value of backend service.
        """
        return pulumi.get(self, "content_type_value")

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

    @property
    @pulumi.getter(name="vpcScheme")
    def vpc_scheme(self) -> Optional[pulumi.Input[str]]:
        """
        The vpc scheme of backend service which supports values of `HTTP` and `HTTPS`.
        """
        return pulumi.get(self, "vpc_scheme")

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


if not MYPY:
    class ApiMockServiceConfigArgsDict(TypedDict):
        result: pulumi.Input[str]
        """
        The result of the mock service.
        """
        aone_name: NotRequired[pulumi.Input[str]]
        """
        The name of aone.
        """
elif False:
    ApiMockServiceConfigArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ApiMockServiceConfigArgs:
    def __init__(__self__, *,
                 result: pulumi.Input[str],
                 aone_name: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] result: The result of the mock service.
        :param pulumi.Input[str] aone_name: The name of aone.
        """
        pulumi.set(__self__, "result", result)
        if aone_name is not None:
            pulumi.set(__self__, "aone_name", aone_name)

    @property
    @pulumi.getter
    def result(self) -> pulumi.Input[str]:
        """
        The result of the mock service.
        """
        return pulumi.get(self, "result")

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

    @property
    @pulumi.getter(name="aoneName")
    def aone_name(self) -> Optional[pulumi.Input[str]]:
        """
        The name of aone.
        """
        return pulumi.get(self, "aone_name")

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


if not MYPY:
    class ApiRequestConfigArgsDict(TypedDict):
        method: pulumi.Input[str]
        """
        The method of the api, including 'GET','POST','PUT' etc.
        """
        mode: pulumi.Input[str]
        """
        The mode of the parameters between request parameters and service parameters, which support the values of 'MAPPING' and 'PASSTHROUGH'.
        """
        path: pulumi.Input[str]
        """
        The request path of the api.
        """
        protocol: pulumi.Input[str]
        """
        The protocol of api which supports values of 'HTTP','HTTPS' or 'HTTP,HTTPS'.
        """
        body_format: NotRequired[pulumi.Input[str]]
        """
        The body format of the api, which support the values of 'STREAM' and 'FORM'.
        """
elif False:
    ApiRequestConfigArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ApiRequestConfigArgs:
    def __init__(__self__, *,
                 method: pulumi.Input[str],
                 mode: pulumi.Input[str],
                 path: pulumi.Input[str],
                 protocol: pulumi.Input[str],
                 body_format: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] method: The method of the api, including 'GET','POST','PUT' etc.
        :param pulumi.Input[str] mode: The mode of the parameters between request parameters and service parameters, which support the values of 'MAPPING' and 'PASSTHROUGH'.
        :param pulumi.Input[str] path: The request path of the api.
        :param pulumi.Input[str] protocol: The protocol of api which supports values of 'HTTP','HTTPS' or 'HTTP,HTTPS'.
        :param pulumi.Input[str] body_format: The body format of the api, which support the values of 'STREAM' and 'FORM'.
        """
        pulumi.set(__self__, "method", method)
        pulumi.set(__self__, "mode", mode)
        pulumi.set(__self__, "path", path)
        pulumi.set(__self__, "protocol", protocol)
        if body_format is not None:
            pulumi.set(__self__, "body_format", body_format)

    @property
    @pulumi.getter
    def method(self) -> pulumi.Input[str]:
        """
        The method of the api, including 'GET','POST','PUT' etc.
        """
        return pulumi.get(self, "method")

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

    @property
    @pulumi.getter
    def mode(self) -> pulumi.Input[str]:
        """
        The mode of the parameters between request parameters and service parameters, which support the values of 'MAPPING' and 'PASSTHROUGH'.
        """
        return pulumi.get(self, "mode")

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

    @property
    @pulumi.getter
    def path(self) -> pulumi.Input[str]:
        """
        The request path of the api.
        """
        return pulumi.get(self, "path")

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

    @property
    @pulumi.getter
    def protocol(self) -> pulumi.Input[str]:
        """
        The protocol of api which supports values of 'HTTP','HTTPS' or 'HTTP,HTTPS'.
        """
        return pulumi.get(self, "protocol")

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

    @property
    @pulumi.getter(name="bodyFormat")
    def body_format(self) -> Optional[pulumi.Input[str]]:
        """
        The body format of the api, which support the values of 'STREAM' and 'FORM'.
        """
        return pulumi.get(self, "body_format")

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


if not MYPY:
    class ApiRequestParameterArgsDict(TypedDict):
        in_: pulumi.Input[str]
        """
        Request's parameter location; values: BODY, HEAD, QUERY, and PATH.
        """
        in_service: pulumi.Input[str]
        """
        Backend service's parameter location; values: BODY, HEAD, QUERY, and PATH.
        """
        name: pulumi.Input[str]
        """
        Request's parameter name.
        """
        name_service: pulumi.Input[str]
        """
        Backend service's parameter name.
        """
        required: pulumi.Input[str]
        """
        Parameter required or not; values: REQUIRED and OPTIONAL.
        """
        type: pulumi.Input[str]
        """
        Parameter type which supports values of 'STRING','INT','BOOLEAN','LONG',"FLOAT" and "DOUBLE".
        """
        default_value: NotRequired[pulumi.Input[str]]
        """
        The default value of the parameter.
        """
        description: NotRequired[pulumi.Input[str]]
        """
        The description of parameter.
        """
elif False:
    ApiRequestParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ApiRequestParameterArgs:
    def __init__(__self__, *,
                 in_: pulumi.Input[str],
                 in_service: pulumi.Input[str],
                 name: pulumi.Input[str],
                 name_service: pulumi.Input[str],
                 required: pulumi.Input[str],
                 type: pulumi.Input[str],
                 default_value: Optional[pulumi.Input[str]] = None,
                 description: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] in_: Request's parameter location; values: BODY, HEAD, QUERY, and PATH.
        :param pulumi.Input[str] in_service: Backend service's parameter location; values: BODY, HEAD, QUERY, and PATH.
        :param pulumi.Input[str] name: Request's parameter name.
        :param pulumi.Input[str] name_service: Backend service's parameter name.
        :param pulumi.Input[str] required: Parameter required or not; values: REQUIRED and OPTIONAL.
        :param pulumi.Input[str] type: Parameter type which supports values of 'STRING','INT','BOOLEAN','LONG',"FLOAT" and "DOUBLE".
        :param pulumi.Input[str] default_value: The default value of the parameter.
        :param pulumi.Input[str] description: The description of parameter.
        """
        pulumi.set(__self__, "in_", in_)
        pulumi.set(__self__, "in_service", in_service)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "name_service", name_service)
        pulumi.set(__self__, "required", required)
        pulumi.set(__self__, "type", type)
        if default_value is not None:
            pulumi.set(__self__, "default_value", default_value)
        if description is not None:
            pulumi.set(__self__, "description", description)

    @property
    @pulumi.getter(name="in")
    def in_(self) -> pulumi.Input[str]:
        """
        Request's parameter location; values: BODY, HEAD, QUERY, and PATH.
        """
        return pulumi.get(self, "in_")

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

    @property
    @pulumi.getter(name="inService")
    def in_service(self) -> pulumi.Input[str]:
        """
        Backend service's parameter location; values: BODY, HEAD, QUERY, and PATH.
        """
        return pulumi.get(self, "in_service")

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

    @property
    @pulumi.getter
    def name(self) -> pulumi.Input[str]:
        """
        Request's parameter name.
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter(name="nameService")
    def name_service(self) -> pulumi.Input[str]:
        """
        Backend service's parameter name.
        """
        return pulumi.get(self, "name_service")

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

    @property
    @pulumi.getter
    def required(self) -> pulumi.Input[str]:
        """
        Parameter required or not; values: REQUIRED and OPTIONAL.
        """
        return pulumi.get(self, "required")

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

    @property
    @pulumi.getter
    def type(self) -> pulumi.Input[str]:
        """
        Parameter type which supports values of 'STRING','INT','BOOLEAN','LONG',"FLOAT" and "DOUBLE".
        """
        return pulumi.get(self, "type")

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

    @property
    @pulumi.getter(name="defaultValue")
    def default_value(self) -> Optional[pulumi.Input[str]]:
        """
        The default value of the parameter.
        """
        return pulumi.get(self, "default_value")

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

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[str]]:
        """
        The description of parameter.
        """
        return pulumi.get(self, "description")

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


if not MYPY:
    class ApiSystemParameterArgsDict(TypedDict):
        in_: pulumi.Input[str]
        """
        System parameter location; values: 'HEAD' and 'QUERY'.
        """
        name: pulumi.Input[str]
        """
        System parameter name which supports values including in [system parameter list](https://www.alibabacloud.com/help/doc-detail/43677.html).
        """
        name_service: pulumi.Input[str]
        """
        Backend service's parameter name.
        """
elif False:
    ApiSystemParameterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ApiSystemParameterArgs:
    def __init__(__self__, *,
                 in_: pulumi.Input[str],
                 name: pulumi.Input[str],
                 name_service: pulumi.Input[str]):
        """
        :param pulumi.Input[str] in_: System parameter location; values: 'HEAD' and 'QUERY'.
        :param pulumi.Input[str] name: System parameter name which supports values including in [system parameter list](https://www.alibabacloud.com/help/doc-detail/43677.html).
        :param pulumi.Input[str] name_service: Backend service's parameter name.
        """
        pulumi.set(__self__, "in_", in_)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "name_service", name_service)

    @property
    @pulumi.getter(name="in")
    def in_(self) -> pulumi.Input[str]:
        """
        System parameter location; values: 'HEAD' and 'QUERY'.
        """
        return pulumi.get(self, "in_")

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

    @property
    @pulumi.getter
    def name(self) -> pulumi.Input[str]:
        """
        System parameter name which supports values including in [system parameter list](https://www.alibabacloud.com/help/doc-detail/43677.html).
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter(name="nameService")
    def name_service(self) -> pulumi.Input[str]:
        """
        Backend service's parameter name.
        """
        return pulumi.get(self, "name_service")

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


if not MYPY:
    class InstanceToConnectVpcIpBlockArgsDict(TypedDict):
        cidr_block: pulumi.Input[str]
        """
        The CIDR block of the VSwitch.
        """
        customized: NotRequired[pulumi.Input[bool]]
        """
        Specifies whether the IP block is customized.
        """
        vswitch_id: NotRequired[pulumi.Input[str]]
        """
        The VSwitch ID.
        """
        zone_id: NotRequired[pulumi.Input[str]]
        """
        The zone ID.
        """
elif False:
    InstanceToConnectVpcIpBlockArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class InstanceToConnectVpcIpBlockArgs:
    def __init__(__self__, *,
                 cidr_block: pulumi.Input[str],
                 customized: Optional[pulumi.Input[bool]] = None,
                 vswitch_id: Optional[pulumi.Input[str]] = None,
                 zone_id: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] cidr_block: The CIDR block of the VSwitch.
        :param pulumi.Input[bool] customized: Specifies whether the IP block is customized.
        :param pulumi.Input[str] vswitch_id: The VSwitch ID.
        :param pulumi.Input[str] zone_id: The zone ID.
        """
        pulumi.set(__self__, "cidr_block", cidr_block)
        if customized is not None:
            pulumi.set(__self__, "customized", customized)
        if vswitch_id is not None:
            pulumi.set(__self__, "vswitch_id", vswitch_id)
        if zone_id is not None:
            pulumi.set(__self__, "zone_id", zone_id)

    @property
    @pulumi.getter(name="cidrBlock")
    def cidr_block(self) -> pulumi.Input[str]:
        """
        The CIDR block of the VSwitch.
        """
        return pulumi.get(self, "cidr_block")

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

    @property
    @pulumi.getter
    def customized(self) -> Optional[pulumi.Input[bool]]:
        """
        Specifies whether the IP block is customized.
        """
        return pulumi.get(self, "customized")

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

    @property
    @pulumi.getter(name="vswitchId")
    def vswitch_id(self) -> Optional[pulumi.Input[str]]:
        """
        The VSwitch ID.
        """
        return pulumi.get(self, "vswitch_id")

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

    @property
    @pulumi.getter(name="zoneId")
    def zone_id(self) -> Optional[pulumi.Input[str]]:
        """
        The zone ID.
        """
        return pulumi.get(self, "zone_id")

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


if not MYPY:
    class InstanceZoneVswitchSecurityGroupArgsDict(TypedDict):
        cidr_block: pulumi.Input[str]
        """
        The CIDR block of the VSwitch.
        """
        security_group: pulumi.Input[str]
        """
        The ID of the security group.
        """
        vswitch_id: pulumi.Input[str]
        """
        The VSwitch ID.
        """
        zone_id: pulumi.Input[str]
        """
        The zone ID.
        """
elif False:
    InstanceZoneVswitchSecurityGroupArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class InstanceZoneVswitchSecurityGroupArgs:
    def __init__(__self__, *,
                 cidr_block: pulumi.Input[str],
                 security_group: pulumi.Input[str],
                 vswitch_id: pulumi.Input[str],
                 zone_id: pulumi.Input[str]):
        """
        :param pulumi.Input[str] cidr_block: The CIDR block of the VSwitch.
        :param pulumi.Input[str] security_group: The ID of the security group.
        :param pulumi.Input[str] vswitch_id: The VSwitch ID.
        :param pulumi.Input[str] zone_id: The zone ID.
        """
        pulumi.set(__self__, "cidr_block", cidr_block)
        pulumi.set(__self__, "security_group", security_group)
        pulumi.set(__self__, "vswitch_id", vswitch_id)
        pulumi.set(__self__, "zone_id", zone_id)

    @property
    @pulumi.getter(name="cidrBlock")
    def cidr_block(self) -> pulumi.Input[str]:
        """
        The CIDR block of the VSwitch.
        """
        return pulumi.get(self, "cidr_block")

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

    @property
    @pulumi.getter(name="securityGroup")
    def security_group(self) -> pulumi.Input[str]:
        """
        The ID of the security group.
        """
        return pulumi.get(self, "security_group")

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

    @property
    @pulumi.getter(name="vswitchId")
    def vswitch_id(self) -> pulumi.Input[str]:
        """
        The VSwitch ID.
        """
        return pulumi.get(self, "vswitch_id")

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

    @property
    @pulumi.getter(name="zoneId")
    def zone_id(self) -> pulumi.Input[str]:
        """
        The zone ID.
        """
        return pulumi.get(self, "zone_id")

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


