# 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__ = [
    'DeploymentPrivateEndpointArgs',
    'DeploymentPrivateEndpointArgsDict',
    'DeploymentPrivateIpArgs',
    'DeploymentPrivateIpArgsDict',
    'DeploymentPublicEndpointArgs',
    'DeploymentPublicEndpointArgsDict',
    'ModelNodesSupportArgs',
    'ModelNodesSupportArgsDict',
    'ModelNodesSupportQuantizationArgs',
    'ModelNodesSupportQuantizationArgsDict',
]

MYPY = False

if not MYPY:
    class DeploymentPrivateEndpointArgsDict(TypedDict):
        disable_auth: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Disable the authentication on the endpoint.
        """
        id: NotRequired[pulumi.Input[_builtins.str]]
        """
        (Optional) The id of the public endpoint.
        """
        private_network_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        The ID of the private network to use.
        """
        url: NotRequired[pulumi.Input[_builtins.str]]
        """
        (Optional) The URL of the endpoint.
        """
elif False:
    DeploymentPrivateEndpointArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class DeploymentPrivateEndpointArgs:
    def __init__(__self__, *,
                 disable_auth: Optional[pulumi.Input[_builtins.bool]] = None,
                 id: Optional[pulumi.Input[_builtins.str]] = None,
                 private_network_id: Optional[pulumi.Input[_builtins.str]] = None,
                 url: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] disable_auth: Disable the authentication on the endpoint.
        :param pulumi.Input[_builtins.str] id: (Optional) The id of the public endpoint.
        :param pulumi.Input[_builtins.str] private_network_id: The ID of the private network to use.
        :param pulumi.Input[_builtins.str] url: (Optional) The URL of the endpoint.
        """
        if disable_auth is not None:
            pulumi.set(__self__, "disable_auth", disable_auth)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if private_network_id is not None:
            pulumi.set(__self__, "private_network_id", private_network_id)
        if url is not None:
            pulumi.set(__self__, "url", url)

    @_builtins.property
    @pulumi.getter(name="disableAuth")
    def disable_auth(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Disable the authentication on the endpoint.
        """
        return pulumi.get(self, "disable_auth")

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

    @_builtins.property
    @pulumi.getter
    def id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        (Optional) The id of the public endpoint.
        """
        return pulumi.get(self, "id")

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

    @_builtins.property
    @pulumi.getter(name="privateNetworkId")
    def private_network_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The ID of the private network to use.
        """
        return pulumi.get(self, "private_network_id")

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

    @_builtins.property
    @pulumi.getter
    def url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        (Optional) The URL of the endpoint.
        """
        return pulumi.get(self, "url")

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


if not MYPY:
    class DeploymentPrivateIpArgsDict(TypedDict):
        address: NotRequired[pulumi.Input[_builtins.str]]
        """
        The private IPv4 address.
        """
        id: NotRequired[pulumi.Input[_builtins.str]]
        """
        (Optional) The id of the public endpoint.
        """
elif False:
    DeploymentPrivateIpArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class DeploymentPrivateIpArgs:
    def __init__(__self__, *,
                 address: Optional[pulumi.Input[_builtins.str]] = None,
                 id: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] address: The private IPv4 address.
        :param pulumi.Input[_builtins.str] id: (Optional) The id of the public endpoint.
        """
        if address is not None:
            pulumi.set(__self__, "address", address)
        if id is not None:
            pulumi.set(__self__, "id", id)

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

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

    @_builtins.property
    @pulumi.getter
    def id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        (Optional) The id of the public endpoint.
        """
        return pulumi.get(self, "id")

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


if not MYPY:
    class DeploymentPublicEndpointArgsDict(TypedDict):
        disable_auth: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Disable the authentication on the endpoint.
        """
        id: NotRequired[pulumi.Input[_builtins.str]]
        """
        (Optional) The id of the public endpoint.
        """
        is_enabled: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Enable or disable public endpoint.
        """
        url: NotRequired[pulumi.Input[_builtins.str]]
        """
        (Optional) The URL of the endpoint.
        """
elif False:
    DeploymentPublicEndpointArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class DeploymentPublicEndpointArgs:
    def __init__(__self__, *,
                 disable_auth: Optional[pulumi.Input[_builtins.bool]] = None,
                 id: Optional[pulumi.Input[_builtins.str]] = None,
                 is_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
                 url: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.bool] disable_auth: Disable the authentication on the endpoint.
        :param pulumi.Input[_builtins.str] id: (Optional) The id of the public endpoint.
        :param pulumi.Input[_builtins.bool] is_enabled: Enable or disable public endpoint.
        :param pulumi.Input[_builtins.str] url: (Optional) The URL of the endpoint.
        """
        if disable_auth is not None:
            pulumi.set(__self__, "disable_auth", disable_auth)
        if id is not None:
            pulumi.set(__self__, "id", id)
        if is_enabled is not None:
            pulumi.set(__self__, "is_enabled", is_enabled)
        if url is not None:
            pulumi.set(__self__, "url", url)

    @_builtins.property
    @pulumi.getter(name="disableAuth")
    def disable_auth(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Disable the authentication on the endpoint.
        """
        return pulumi.get(self, "disable_auth")

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

    @_builtins.property
    @pulumi.getter
    def id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        (Optional) The id of the public endpoint.
        """
        return pulumi.get(self, "id")

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

    @_builtins.property
    @pulumi.getter(name="isEnabled")
    def is_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Enable or disable public endpoint.
        """
        return pulumi.get(self, "is_enabled")

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

    @_builtins.property
    @pulumi.getter
    def url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        (Optional) The URL of the endpoint.
        """
        return pulumi.get(self, "url")

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


if not MYPY:
    class ModelNodesSupportArgsDict(TypedDict):
        node_type_name: NotRequired[pulumi.Input[_builtins.str]]
        """
        The type of node supported.
        """
        quantizations: NotRequired[pulumi.Input[Sequence[pulumi.Input['ModelNodesSupportQuantizationArgsDict']]]]
        """
        A list of supported quantization options, including:
        """
elif False:
    ModelNodesSupportArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ModelNodesSupportArgs:
    def __init__(__self__, *,
                 node_type_name: Optional[pulumi.Input[_builtins.str]] = None,
                 quantizations: Optional[pulumi.Input[Sequence[pulumi.Input['ModelNodesSupportQuantizationArgs']]]] = None):
        """
        :param pulumi.Input[_builtins.str] node_type_name: The type of node supported.
        :param pulumi.Input[Sequence[pulumi.Input['ModelNodesSupportQuantizationArgs']]] quantizations: A list of supported quantization options, including:
        """
        if node_type_name is not None:
            pulumi.set(__self__, "node_type_name", node_type_name)
        if quantizations is not None:
            pulumi.set(__self__, "quantizations", quantizations)

    @_builtins.property
    @pulumi.getter(name="nodeTypeName")
    def node_type_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The type of node supported.
        """
        return pulumi.get(self, "node_type_name")

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

    @_builtins.property
    @pulumi.getter
    def quantizations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ModelNodesSupportQuantizationArgs']]]]:
        """
        A list of supported quantization options, including:
        """
        return pulumi.get(self, "quantizations")

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


if not MYPY:
    class ModelNodesSupportQuantizationArgsDict(TypedDict):
        allowed: NotRequired[pulumi.Input[_builtins.bool]]
        """
        Whether this quantization is allowed.
        """
        max_context_size: NotRequired[pulumi.Input[_builtins.int]]
        """
        Maximum context length supported by this quantization.
        """
        quantization_bits: NotRequired[pulumi.Input[_builtins.int]]
        """
        Number of bits used for quantization (e.g., 8, 16).
        """
elif False:
    ModelNodesSupportQuantizationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ModelNodesSupportQuantizationArgs:
    def __init__(__self__, *,
                 allowed: Optional[pulumi.Input[_builtins.bool]] = None,
                 max_context_size: Optional[pulumi.Input[_builtins.int]] = None,
                 quantization_bits: Optional[pulumi.Input[_builtins.int]] = None):
        """
        :param pulumi.Input[_builtins.bool] allowed: Whether this quantization is allowed.
        :param pulumi.Input[_builtins.int] max_context_size: Maximum context length supported by this quantization.
        :param pulumi.Input[_builtins.int] quantization_bits: Number of bits used for quantization (e.g., 8, 16).
        """
        if allowed is not None:
            pulumi.set(__self__, "allowed", allowed)
        if max_context_size is not None:
            pulumi.set(__self__, "max_context_size", max_context_size)
        if quantization_bits is not None:
            pulumi.set(__self__, "quantization_bits", quantization_bits)

    @_builtins.property
    @pulumi.getter
    def allowed(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Whether this quantization is allowed.
        """
        return pulumi.get(self, "allowed")

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

    @_builtins.property
    @pulumi.getter(name="maxContextSize")
    def max_context_size(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Maximum context length supported by this quantization.
        """
        return pulumi.get(self, "max_context_size")

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

    @_builtins.property
    @pulumi.getter(name="quantizationBits")
    def quantization_bits(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Number of bits used for quantization (e.g., 8, 16).
        """
        return pulumi.get(self, "quantization_bits")

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


