# 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 builtins
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__ = [
    'KafkaTriggerKafkaCredentialsArgs',
    'KafkaTriggerKafkaCredentialsArgsDict',
    'SandboxEnvArgs',
    'SandboxEnvArgsDict',
    'SandboxInstanceImageInfoArgs',
    'SandboxInstanceImageInfoArgsDict',
    'SandboxInstanceTosMountConfigArgs',
    'SandboxInstanceTosMountConfigArgsDict',
    'SandboxInstanceTosMountConfigTosMountPointArgs',
    'SandboxInstanceTosMountConfigTosMountPointArgsDict',
    'SandboxMetadataArgs',
    'SandboxMetadataArgsDict',
]

MYPY = False

if not MYPY:
    class KafkaTriggerKafkaCredentialsArgsDict(TypedDict):
        mechanism: NotRequired[pulumi.Input[builtins.str]]
        """
        Kafka 认证机制。取值：PLAIN，SCRAM-SHA-256。
        """
        password: NotRequired[pulumi.Input[builtins.str]]
        """
        创建 Kafka 实例时设置的 SASL/PLAIN 用户密码。
        """
        username: NotRequired[pulumi.Input[builtins.str]]
        """
        创建 Kafka 实例时设置的 SASL/PLAIN 用户名称。
        """
elif False:
    KafkaTriggerKafkaCredentialsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class KafkaTriggerKafkaCredentialsArgs:
    def __init__(__self__, *,
                 mechanism: Optional[pulumi.Input[builtins.str]] = None,
                 password: Optional[pulumi.Input[builtins.str]] = None,
                 username: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] mechanism: Kafka 认证机制。取值：PLAIN，SCRAM-SHA-256。
        :param pulumi.Input[builtins.str] password: 创建 Kafka 实例时设置的 SASL/PLAIN 用户密码。
        :param pulumi.Input[builtins.str] username: 创建 Kafka 实例时设置的 SASL/PLAIN 用户名称。
        """
        if mechanism is not None:
            pulumi.set(__self__, "mechanism", mechanism)
        if password is not None:
            pulumi.set(__self__, "password", password)
        if username is not None:
            pulumi.set(__self__, "username", username)

    @property
    @pulumi.getter
    def mechanism(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        Kafka 认证机制。取值：PLAIN，SCRAM-SHA-256。
        """
        return pulumi.get(self, "mechanism")

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

    @property
    @pulumi.getter
    def password(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        创建 Kafka 实例时设置的 SASL/PLAIN 用户密码。
        """
        return pulumi.get(self, "password")

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

    @property
    @pulumi.getter
    def username(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        创建 Kafka 实例时设置的 SASL/PLAIN 用户名称。
        """
        return pulumi.get(self, "username")

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


if not MYPY:
    class SandboxEnvArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[builtins.str]]
        """
        环境变量键。
        """
        value: NotRequired[pulumi.Input[builtins.str]]
        """
        环境变量值。
        """
elif False:
    SandboxEnvArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SandboxEnvArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[builtins.str]] = None,
                 value: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] key: 环境变量键。
        :param pulumi.Input[builtins.str] value: 环境变量值。
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @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)

    @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)


if not MYPY:
    class SandboxInstanceImageInfoArgsDict(TypedDict):
        command: NotRequired[pulumi.Input[builtins.str]]
        """
        沙箱实例程序的启动命令。如需指定脚本文件，请使用绝对路径，并确保脚本具有相应的可执行权限。
        """
        image: NotRequired[pulumi.Input[builtins.str]]
        """
        沙箱实例使用的已预热镜像地址。
        """
        image_id: NotRequired[pulumi.Input[builtins.str]]
        """
        沙箱实例使用的已预热镜像 ID。
        """
        port: NotRequired[pulumi.Input[builtins.int]]
        """
        沙箱实例镜像监听端口。
        """
elif False:
    SandboxInstanceImageInfoArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SandboxInstanceImageInfoArgs:
    def __init__(__self__, *,
                 command: Optional[pulumi.Input[builtins.str]] = None,
                 image: Optional[pulumi.Input[builtins.str]] = None,
                 image_id: Optional[pulumi.Input[builtins.str]] = None,
                 port: Optional[pulumi.Input[builtins.int]] = None):
        """
        :param pulumi.Input[builtins.str] command: 沙箱实例程序的启动命令。如需指定脚本文件，请使用绝对路径，并确保脚本具有相应的可执行权限。
        :param pulumi.Input[builtins.str] image: 沙箱实例使用的已预热镜像地址。
        :param pulumi.Input[builtins.str] image_id: 沙箱实例使用的已预热镜像 ID。
        :param pulumi.Input[builtins.int] port: 沙箱实例镜像监听端口。
        """
        if command is not None:
            pulumi.set(__self__, "command", command)
        if image is not None:
            pulumi.set(__self__, "image", image)
        if image_id is not None:
            pulumi.set(__self__, "image_id", image_id)
        if port is not None:
            pulumi.set(__self__, "port", port)

    @property
    @pulumi.getter
    def command(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        沙箱实例程序的启动命令。如需指定脚本文件，请使用绝对路径，并确保脚本具有相应的可执行权限。
        """
        return pulumi.get(self, "command")

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

    @property
    @pulumi.getter
    def image(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        沙箱实例使用的已预热镜像地址。
        """
        return pulumi.get(self, "image")

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

    @property
    @pulumi.getter(name="imageId")
    def image_id(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        沙箱实例使用的已预热镜像 ID。
        """
        return pulumi.get(self, "image_id")

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

    @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)


if not MYPY:
    class SandboxInstanceTosMountConfigArgsDict(TypedDict):
        enable: NotRequired[pulumi.Input[builtins.bool]]
        """
        沙箱实例是否启用了实例级别的 TOS 挂载，参数值说明：true：是，false：否。
        """
        tos_mount_points: NotRequired[pulumi.Input[Sequence[pulumi.Input['SandboxInstanceTosMountConfigTosMountPointArgsDict']]]]
elif False:
    SandboxInstanceTosMountConfigArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SandboxInstanceTosMountConfigArgs:
    def __init__(__self__, *,
                 enable: Optional[pulumi.Input[builtins.bool]] = None,
                 tos_mount_points: Optional[pulumi.Input[Sequence[pulumi.Input['SandboxInstanceTosMountConfigTosMountPointArgs']]]] = None):
        """
        :param pulumi.Input[builtins.bool] enable: 沙箱实例是否启用了实例级别的 TOS 挂载，参数值说明：true：是，false：否。
        """
        if enable is not None:
            pulumi.set(__self__, "enable", enable)
        if tos_mount_points is not None:
            pulumi.set(__self__, "tos_mount_points", tos_mount_points)

    @property
    @pulumi.getter
    def enable(self) -> Optional[pulumi.Input[builtins.bool]]:
        """
        沙箱实例是否启用了实例级别的 TOS 挂载，参数值说明：true：是，false：否。
        """
        return pulumi.get(self, "enable")

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

    @property
    @pulumi.getter(name="tosMountPoints")
    def tos_mount_points(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SandboxInstanceTosMountConfigTosMountPointArgs']]]]:
        return pulumi.get(self, "tos_mount_points")

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


if not MYPY:
    class SandboxInstanceTosMountConfigTosMountPointArgsDict(TypedDict):
        bucket_path: NotRequired[pulumi.Input[builtins.str]]
        """
        沙箱实例挂载的 TOS 远端目录。
        """
        local_mount_path: NotRequired[pulumi.Input[builtins.str]]
        """
        沙箱实例挂载的 TOS 存储桶本地目录。该目录为沙箱应用已配置的 TOS 存储挂载的本地目录时，系统根据指定的本地目录，修改与之对应的 TOS BucketPath。
        """
elif False:
    SandboxInstanceTosMountConfigTosMountPointArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SandboxInstanceTosMountConfigTosMountPointArgs:
    def __init__(__self__, *,
                 bucket_path: Optional[pulumi.Input[builtins.str]] = None,
                 local_mount_path: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] bucket_path: 沙箱实例挂载的 TOS 远端目录。
        :param pulumi.Input[builtins.str] local_mount_path: 沙箱实例挂载的 TOS 存储桶本地目录。该目录为沙箱应用已配置的 TOS 存储挂载的本地目录时，系统根据指定的本地目录，修改与之对应的 TOS BucketPath。
        """
        if bucket_path is not None:
            pulumi.set(__self__, "bucket_path", bucket_path)
        if local_mount_path is not None:
            pulumi.set(__self__, "local_mount_path", local_mount_path)

    @property
    @pulumi.getter(name="bucketPath")
    def bucket_path(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        沙箱实例挂载的 TOS 远端目录。
        """
        return pulumi.get(self, "bucket_path")

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

    @property
    @pulumi.getter(name="localMountPath")
    def local_mount_path(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        沙箱实例挂载的 TOS 存储桶本地目录。该目录为沙箱应用已配置的 TOS 存储挂载的本地目录时，系统根据指定的本地目录，修改与之对应的 TOS BucketPath。
        """
        return pulumi.get(self, "local_mount_path")

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


if not MYPY:
    class SandboxMetadataArgsDict(TypedDict):
        key: NotRequired[pulumi.Input[builtins.str]]
        """
        标签键。
        """
        value: NotRequired[pulumi.Input[builtins.str]]
        """
        标签值。
        """
elif False:
    SandboxMetadataArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SandboxMetadataArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[builtins.str]] = None,
                 value: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] key: 标签键。
        :param pulumi.Input[builtins.str] value: 标签值。
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @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)

    @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)


