# 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__ = [
    'InstanceConfluentConfig',
    'InstanceServerlessConfig',
]

@pulumi.output_type
class InstanceConfluentConfig(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectCu":
            suggest = "connect_cu"
        elif key == "connectReplica":
            suggest = "connect_replica"
        elif key == "controlCenterCu":
            suggest = "control_center_cu"
        elif key == "controlCenterReplica":
            suggest = "control_center_replica"
        elif key == "controlCenterStorage":
            suggest = "control_center_storage"
        elif key == "kafkaCu":
            suggest = "kafka_cu"
        elif key == "kafkaReplica":
            suggest = "kafka_replica"
        elif key == "kafkaRestProxyCu":
            suggest = "kafka_rest_proxy_cu"
        elif key == "kafkaRestProxyReplica":
            suggest = "kafka_rest_proxy_replica"
        elif key == "kafkaStorage":
            suggest = "kafka_storage"
        elif key == "ksqlCu":
            suggest = "ksql_cu"
        elif key == "ksqlReplica":
            suggest = "ksql_replica"
        elif key == "ksqlStorage":
            suggest = "ksql_storage"
        elif key == "schemaRegistryCu":
            suggest = "schema_registry_cu"
        elif key == "schemaRegistryReplica":
            suggest = "schema_registry_replica"
        elif key == "zookeeperCu":
            suggest = "zookeeper_cu"
        elif key == "zookeeperReplica":
            suggest = "zookeeper_replica"
        elif key == "zookeeperStorage":
            suggest = "zookeeper_storage"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in InstanceConfluentConfig. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        InstanceConfluentConfig.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        InstanceConfluentConfig.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 connect_cu: Optional[_builtins.int] = None,
                 connect_replica: Optional[_builtins.int] = None,
                 control_center_cu: Optional[_builtins.int] = None,
                 control_center_replica: Optional[_builtins.int] = None,
                 control_center_storage: Optional[_builtins.int] = None,
                 kafka_cu: Optional[_builtins.int] = None,
                 kafka_replica: Optional[_builtins.int] = None,
                 kafka_rest_proxy_cu: Optional[_builtins.int] = None,
                 kafka_rest_proxy_replica: Optional[_builtins.int] = None,
                 kafka_storage: Optional[_builtins.int] = None,
                 ksql_cu: Optional[_builtins.int] = None,
                 ksql_replica: Optional[_builtins.int] = None,
                 ksql_storage: Optional[_builtins.int] = None,
                 schema_registry_cu: Optional[_builtins.int] = None,
                 schema_registry_replica: Optional[_builtins.int] = None,
                 zookeeper_cu: Optional[_builtins.int] = None,
                 zookeeper_replica: Optional[_builtins.int] = None,
                 zookeeper_storage: Optional[_builtins.int] = None):
        """
        :param _builtins.int connect_cu: The number of CPU cores of Connect.
        :param _builtins.int connect_replica: The number of replicas of Connect.
        :param _builtins.int control_center_cu: The number of CPU cores of Control Center.
        :param _builtins.int control_center_replica: The number of replicas of Control Center.
        :param _builtins.int control_center_storage: The disk capacity of Control Center.
        :param _builtins.int kafka_cu: The number of CPU cores of the Kafka broker.
        :param _builtins.int kafka_replica: The number of replicas of the Kafka broker.
        :param _builtins.int kafka_rest_proxy_cu: The number of CPU cores of Kafka Rest Proxy.
        :param _builtins.int kafka_rest_proxy_replica: The number of replicas of Kafka Rest Proxy.
        :param _builtins.int kafka_storage: The disk capacity of the Kafka broker.
        :param _builtins.int ksql_cu: The number of CPU cores of ksqlDB.
        :param _builtins.int ksql_replica: The number of replicas of ksqlDB.
        :param _builtins.int ksql_storage: The disk capacity of ksqlDB.
        :param _builtins.int schema_registry_cu: The number of CPU cores of Schema Registry.
        :param _builtins.int schema_registry_replica: The number of replicas of Schema Registry.
        :param _builtins.int zookeeper_cu: The number of CPU cores of ZooKeeper.
        :param _builtins.int zookeeper_replica: The number of replicas of ZooKeeper.
        :param _builtins.int zookeeper_storage: The disk capacity of ZooKeeper.
        """
        if connect_cu is not None:
            pulumi.set(__self__, "connect_cu", connect_cu)
        if connect_replica is not None:
            pulumi.set(__self__, "connect_replica", connect_replica)
        if control_center_cu is not None:
            pulumi.set(__self__, "control_center_cu", control_center_cu)
        if control_center_replica is not None:
            pulumi.set(__self__, "control_center_replica", control_center_replica)
        if control_center_storage is not None:
            pulumi.set(__self__, "control_center_storage", control_center_storage)
        if kafka_cu is not None:
            pulumi.set(__self__, "kafka_cu", kafka_cu)
        if kafka_replica is not None:
            pulumi.set(__self__, "kafka_replica", kafka_replica)
        if kafka_rest_proxy_cu is not None:
            pulumi.set(__self__, "kafka_rest_proxy_cu", kafka_rest_proxy_cu)
        if kafka_rest_proxy_replica is not None:
            pulumi.set(__self__, "kafka_rest_proxy_replica", kafka_rest_proxy_replica)
        if kafka_storage is not None:
            pulumi.set(__self__, "kafka_storage", kafka_storage)
        if ksql_cu is not None:
            pulumi.set(__self__, "ksql_cu", ksql_cu)
        if ksql_replica is not None:
            pulumi.set(__self__, "ksql_replica", ksql_replica)
        if ksql_storage is not None:
            pulumi.set(__self__, "ksql_storage", ksql_storage)
        if schema_registry_cu is not None:
            pulumi.set(__self__, "schema_registry_cu", schema_registry_cu)
        if schema_registry_replica is not None:
            pulumi.set(__self__, "schema_registry_replica", schema_registry_replica)
        if zookeeper_cu is not None:
            pulumi.set(__self__, "zookeeper_cu", zookeeper_cu)
        if zookeeper_replica is not None:
            pulumi.set(__self__, "zookeeper_replica", zookeeper_replica)
        if zookeeper_storage is not None:
            pulumi.set(__self__, "zookeeper_storage", zookeeper_storage)

    @_builtins.property
    @pulumi.getter(name="connectCu")
    def connect_cu(self) -> Optional[_builtins.int]:
        """
        The number of CPU cores of Connect.
        """
        return pulumi.get(self, "connect_cu")

    @_builtins.property
    @pulumi.getter(name="connectReplica")
    def connect_replica(self) -> Optional[_builtins.int]:
        """
        The number of replicas of Connect.
        """
        return pulumi.get(self, "connect_replica")

    @_builtins.property
    @pulumi.getter(name="controlCenterCu")
    def control_center_cu(self) -> Optional[_builtins.int]:
        """
        The number of CPU cores of Control Center.
        """
        return pulumi.get(self, "control_center_cu")

    @_builtins.property
    @pulumi.getter(name="controlCenterReplica")
    def control_center_replica(self) -> Optional[_builtins.int]:
        """
        The number of replicas of Control Center.
        """
        return pulumi.get(self, "control_center_replica")

    @_builtins.property
    @pulumi.getter(name="controlCenterStorage")
    def control_center_storage(self) -> Optional[_builtins.int]:
        """
        The disk capacity of Control Center.
        """
        return pulumi.get(self, "control_center_storage")

    @_builtins.property
    @pulumi.getter(name="kafkaCu")
    def kafka_cu(self) -> Optional[_builtins.int]:
        """
        The number of CPU cores of the Kafka broker.
        """
        return pulumi.get(self, "kafka_cu")

    @_builtins.property
    @pulumi.getter(name="kafkaReplica")
    def kafka_replica(self) -> Optional[_builtins.int]:
        """
        The number of replicas of the Kafka broker.
        """
        return pulumi.get(self, "kafka_replica")

    @_builtins.property
    @pulumi.getter(name="kafkaRestProxyCu")
    def kafka_rest_proxy_cu(self) -> Optional[_builtins.int]:
        """
        The number of CPU cores of Kafka Rest Proxy.
        """
        return pulumi.get(self, "kafka_rest_proxy_cu")

    @_builtins.property
    @pulumi.getter(name="kafkaRestProxyReplica")
    def kafka_rest_proxy_replica(self) -> Optional[_builtins.int]:
        """
        The number of replicas of Kafka Rest Proxy.
        """
        return pulumi.get(self, "kafka_rest_proxy_replica")

    @_builtins.property
    @pulumi.getter(name="kafkaStorage")
    def kafka_storage(self) -> Optional[_builtins.int]:
        """
        The disk capacity of the Kafka broker.
        """
        return pulumi.get(self, "kafka_storage")

    @_builtins.property
    @pulumi.getter(name="ksqlCu")
    def ksql_cu(self) -> Optional[_builtins.int]:
        """
        The number of CPU cores of ksqlDB.
        """
        return pulumi.get(self, "ksql_cu")

    @_builtins.property
    @pulumi.getter(name="ksqlReplica")
    def ksql_replica(self) -> Optional[_builtins.int]:
        """
        The number of replicas of ksqlDB.
        """
        return pulumi.get(self, "ksql_replica")

    @_builtins.property
    @pulumi.getter(name="ksqlStorage")
    def ksql_storage(self) -> Optional[_builtins.int]:
        """
        The disk capacity of ksqlDB.
        """
        return pulumi.get(self, "ksql_storage")

    @_builtins.property
    @pulumi.getter(name="schemaRegistryCu")
    def schema_registry_cu(self) -> Optional[_builtins.int]:
        """
        The number of CPU cores of Schema Registry.
        """
        return pulumi.get(self, "schema_registry_cu")

    @_builtins.property
    @pulumi.getter(name="schemaRegistryReplica")
    def schema_registry_replica(self) -> Optional[_builtins.int]:
        """
        The number of replicas of Schema Registry.
        """
        return pulumi.get(self, "schema_registry_replica")

    @_builtins.property
    @pulumi.getter(name="zookeeperCu")
    def zookeeper_cu(self) -> Optional[_builtins.int]:
        """
        The number of CPU cores of ZooKeeper.
        """
        return pulumi.get(self, "zookeeper_cu")

    @_builtins.property
    @pulumi.getter(name="zookeeperReplica")
    def zookeeper_replica(self) -> Optional[_builtins.int]:
        """
        The number of replicas of ZooKeeper.
        """
        return pulumi.get(self, "zookeeper_replica")

    @_builtins.property
    @pulumi.getter(name="zookeeperStorage")
    def zookeeper_storage(self) -> Optional[_builtins.int]:
        """
        The disk capacity of ZooKeeper.
        """
        return pulumi.get(self, "zookeeper_storage")


@pulumi.output_type
class InstanceServerlessConfig(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "reservedPublishCapacity":
            suggest = "reserved_publish_capacity"
        elif key == "reservedSubscribeCapacity":
            suggest = "reserved_subscribe_capacity"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in InstanceServerlessConfig. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        InstanceServerlessConfig.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        InstanceServerlessConfig.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 reserved_publish_capacity: Optional[_builtins.int] = None,
                 reserved_subscribe_capacity: Optional[_builtins.int] = None):
        """
        :param _builtins.int reserved_publish_capacity: The reserved capacity for publishing messages.
        :param _builtins.int reserved_subscribe_capacity: The reserved capacity for subscribing to message.
        """
        if reserved_publish_capacity is not None:
            pulumi.set(__self__, "reserved_publish_capacity", reserved_publish_capacity)
        if reserved_subscribe_capacity is not None:
            pulumi.set(__self__, "reserved_subscribe_capacity", reserved_subscribe_capacity)

    @_builtins.property
    @pulumi.getter(name="reservedPublishCapacity")
    def reserved_publish_capacity(self) -> Optional[_builtins.int]:
        """
        The reserved capacity for publishing messages.
        """
        return pulumi.get(self, "reserved_publish_capacity")

    @_builtins.property
    @pulumi.getter(name="reservedSubscribeCapacity")
    def reserved_subscribe_capacity(self) -> Optional[_builtins.int]:
        """
        The reserved capacity for subscribing to message.
        """
        return pulumi.get(self, "reserved_subscribe_capacity")


