# 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__ = [
    'PrivateCloudCircuitArgs',
    'PrivateCloudCircuitArgsDict',
    'PrivateCloudManagementClusterArgs',
    'PrivateCloudManagementClusterArgsDict',
]

MYPY = False

if not MYPY:
    class PrivateCloudCircuitArgsDict(TypedDict):
        express_route_id: NotRequired[pulumi.Input[str]]
        """
        The ID of the ExpressRoute Circuit.
        """
        express_route_private_peering_id: NotRequired[pulumi.Input[str]]
        """
        The ID of the ExpressRoute Circuit private peering.
        """
        primary_subnet_cidr: NotRequired[pulumi.Input[str]]
        """
        The CIDR of the primary subnet.
        """
        secondary_subnet_cidr: NotRequired[pulumi.Input[str]]
        """
        The CIDR of the secondary subnet.
        """
elif False:
    PrivateCloudCircuitArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PrivateCloudCircuitArgs:
    def __init__(__self__, *,
                 express_route_id: Optional[pulumi.Input[str]] = None,
                 express_route_private_peering_id: Optional[pulumi.Input[str]] = None,
                 primary_subnet_cidr: Optional[pulumi.Input[str]] = None,
                 secondary_subnet_cidr: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] express_route_id: The ID of the ExpressRoute Circuit.
        :param pulumi.Input[str] express_route_private_peering_id: The ID of the ExpressRoute Circuit private peering.
        :param pulumi.Input[str] primary_subnet_cidr: The CIDR of the primary subnet.
        :param pulumi.Input[str] secondary_subnet_cidr: The CIDR of the secondary subnet.
        """
        if express_route_id is not None:
            pulumi.set(__self__, "express_route_id", express_route_id)
        if express_route_private_peering_id is not None:
            pulumi.set(__self__, "express_route_private_peering_id", express_route_private_peering_id)
        if primary_subnet_cidr is not None:
            pulumi.set(__self__, "primary_subnet_cidr", primary_subnet_cidr)
        if secondary_subnet_cidr is not None:
            pulumi.set(__self__, "secondary_subnet_cidr", secondary_subnet_cidr)

    @property
    @pulumi.getter(name="expressRouteId")
    def express_route_id(self) -> Optional[pulumi.Input[str]]:
        """
        The ID of the ExpressRoute Circuit.
        """
        return pulumi.get(self, "express_route_id")

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

    @property
    @pulumi.getter(name="expressRoutePrivatePeeringId")
    def express_route_private_peering_id(self) -> Optional[pulumi.Input[str]]:
        """
        The ID of the ExpressRoute Circuit private peering.
        """
        return pulumi.get(self, "express_route_private_peering_id")

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

    @property
    @pulumi.getter(name="primarySubnetCidr")
    def primary_subnet_cidr(self) -> Optional[pulumi.Input[str]]:
        """
        The CIDR of the primary subnet.
        """
        return pulumi.get(self, "primary_subnet_cidr")

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

    @property
    @pulumi.getter(name="secondarySubnetCidr")
    def secondary_subnet_cidr(self) -> Optional[pulumi.Input[str]]:
        """
        The CIDR of the secondary subnet.
        """
        return pulumi.get(self, "secondary_subnet_cidr")

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


if not MYPY:
    class PrivateCloudManagementClusterArgsDict(TypedDict):
        size: pulumi.Input[int]
        """
        The size of the management cluster. This field can not updated with `internet_connection_enabled` together.
        """
        hosts: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
        """
        A list of hosts in the management cluster.
        """
        id: NotRequired[pulumi.Input[int]]
        """
        The ID of the management cluster.
        """
elif False:
    PrivateCloudManagementClusterArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class PrivateCloudManagementClusterArgs:
    def __init__(__self__, *,
                 size: pulumi.Input[int],
                 hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 id: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[int] size: The size of the management cluster. This field can not updated with `internet_connection_enabled` together.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] hosts: A list of hosts in the management cluster.
        :param pulumi.Input[int] id: The ID of the management cluster.
        """
        pulumi.set(__self__, "size", size)
        if hosts is not None:
            pulumi.set(__self__, "hosts", hosts)
        if id is not None:
            pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def size(self) -> pulumi.Input[int]:
        """
        The size of the management cluster. This field can not updated with `internet_connection_enabled` together.
        """
        return pulumi.get(self, "size")

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

    @property
    @pulumi.getter
    def hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        A list of hosts in the management cluster.
        """
        return pulumi.get(self, "hosts")

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

    @property
    @pulumi.getter
    def id(self) -> Optional[pulumi.Input[int]]:
        """
        The ID of the management cluster.
        """
        return pulumi.get(self, "id")

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


