# 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 warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from . import _utilities

__all__ = [
    'ApiKeyManagedResourceArgs',
    'ApiKeyManagedResourceEnvironmentArgs',
    'ApiKeyOwnerArgs',
    'ConnectorEnvironmentArgs',
    'ConnectorKafkaClusterArgs',
    'KafkaAclCredentialsArgs',
    'KafkaAclKafkaClusterArgs',
    'KafkaClusterBasicArgs',
    'KafkaClusterDedicatedArgs',
    'KafkaClusterEnvironmentArgs',
    'KafkaClusterNetworkArgs',
    'KafkaClusterStandardArgs',
    'KafkaTopicCredentialsArgs',
    'KafkaTopicKafkaClusterArgs',
    'NetworkAwArgs',
    'NetworkAzureArgs',
    'NetworkEnvironmentArgs',
    'NetworkGcpArgs',
    'PeeringAwsArgs',
    'PeeringAzureArgs',
    'PeeringEnvironmentArgs',
    'PeeringGcpArgs',
    'PeeringNetworkArgs',
    'PrivateLinkAccessAwsArgs',
    'PrivateLinkAccessAzureArgs',
    'PrivateLinkAccessEnvironmentArgs',
    'PrivateLinkAccessNetworkArgs',
    'GetKafkaClusterBasicArgs',
    'GetKafkaClusterDedicatedArgs',
    'GetKafkaClusterEnvironmentArgs',
    'GetKafkaClusterStandardArgs',
    'GetKafkaTopicCredentialsArgs',
    'GetKafkaTopicKafkaClusterArgs',
    'GetNetworkAwArgs',
    'GetNetworkAzureArgs',
    'GetNetworkEnvironmentArgs',
    'GetNetworkGcpArgs',
]

@pulumi.input_type
class ApiKeyManagedResourceArgs:
    def __init__(__self__, *,
                 api_version: pulumi.Input[str],
                 environment: pulumi.Input['ApiKeyManagedResourceEnvironmentArgs'],
                 id: pulumi.Input[str],
                 kind: pulumi.Input[str]):
        """
        :param pulumi.Input[str] api_version: The API group and version of the managed resource that the API Key associated with, for example, `cmk/v2`.
        :param pulumi.Input[str] id: The ID of the Environment that the managed resource belongs to, for example, `env-abc123`.
        :param pulumi.Input[str] kind: The kind of the managed resource that the API Key associated with, for example, `Cluster`.
        """
        pulumi.set(__self__, "api_version", api_version)
        pulumi.set(__self__, "environment", environment)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "kind", kind)

    @property
    @pulumi.getter(name="apiVersion")
    def api_version(self) -> pulumi.Input[str]:
        """
        The API group and version of the managed resource that the API Key associated with, for example, `cmk/v2`.
        """
        return pulumi.get(self, "api_version")

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

    @property
    @pulumi.getter
    def environment(self) -> pulumi.Input['ApiKeyManagedResourceEnvironmentArgs']:
        return pulumi.get(self, "environment")

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

    @property
    @pulumi.getter
    def id(self) -> pulumi.Input[str]:
        """
        The ID of the Environment that the managed resource belongs to, for example, `env-abc123`.
        """
        return pulumi.get(self, "id")

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

    @property
    @pulumi.getter
    def kind(self) -> pulumi.Input[str]:
        """
        The kind of the managed resource that the API Key associated with, for example, `Cluster`.
        """
        return pulumi.get(self, "kind")

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


@pulumi.input_type
class ApiKeyManagedResourceEnvironmentArgs:
    def __init__(__self__, *,
                 id: pulumi.Input[str]):
        """
        :param pulumi.Input[str] id: The ID of the Environment that the managed resource belongs to, for example, `env-abc123`.
        """
        pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def id(self) -> pulumi.Input[str]:
        """
        The ID of the Environment that the managed resource belongs to, for example, `env-abc123`.
        """
        return pulumi.get(self, "id")

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


@pulumi.input_type
class ApiKeyOwnerArgs:
    def __init__(__self__, *,
                 api_version: pulumi.Input[str],
                 id: pulumi.Input[str],
                 kind: pulumi.Input[str]):
        """
        :param pulumi.Input[str] api_version: The API group and version of the managed resource that the API Key associated with, for example, `cmk/v2`.
        :param pulumi.Input[str] id: The ID of the Environment that the managed resource belongs to, for example, `env-abc123`.
        :param pulumi.Input[str] kind: The kind of the managed resource that the API Key associated with, for example, `Cluster`.
        """
        pulumi.set(__self__, "api_version", api_version)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "kind", kind)

    @property
    @pulumi.getter(name="apiVersion")
    def api_version(self) -> pulumi.Input[str]:
        """
        The API group and version of the managed resource that the API Key associated with, for example, `cmk/v2`.
        """
        return pulumi.get(self, "api_version")

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

    @property
    @pulumi.getter
    def id(self) -> pulumi.Input[str]:
        """
        The ID of the Environment that the managed resource belongs to, for example, `env-abc123`.
        """
        return pulumi.get(self, "id")

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

    @property
    @pulumi.getter
    def kind(self) -> pulumi.Input[str]:
        """
        The kind of the managed resource that the API Key associated with, for example, `Cluster`.
        """
        return pulumi.get(self, "kind")

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


@pulumi.input_type
class ConnectorEnvironmentArgs:
    def __init__(__self__, *,
                 id: pulumi.Input[str]):
        """
        :param pulumi.Input[str] id: The ID of the Kafka cluster that the connector belongs to, for example, `lkc-abc123`.
        """
        pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def id(self) -> pulumi.Input[str]:
        """
        The ID of the Kafka cluster that the connector belongs to, for example, `lkc-abc123`.
        """
        return pulumi.get(self, "id")

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


@pulumi.input_type
class ConnectorKafkaClusterArgs:
    def __init__(__self__, *,
                 id: pulumi.Input[str]):
        """
        :param pulumi.Input[str] id: The ID of the Kafka cluster that the connector belongs to, for example, `lkc-abc123`.
        """
        pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def id(self) -> pulumi.Input[str]:
        """
        The ID of the Kafka cluster that the connector belongs to, for example, `lkc-abc123`.
        """
        return pulumi.get(self, "id")

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


@pulumi.input_type
class KafkaAclCredentialsArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[str],
                 secret: pulumi.Input[str]):
        """
        :param pulumi.Input[str] key: The Kafka API Key.
        :param pulumi.Input[str] secret: The Kafka API Secret.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret", secret)

    @property
    @pulumi.getter
    def key(self) -> pulumi.Input[str]:
        """
        The Kafka API Key.
        """
        return pulumi.get(self, "key")

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

    @property
    @pulumi.getter
    def secret(self) -> pulumi.Input[str]:
        """
        The Kafka API Secret.
        """
        return pulumi.get(self, "secret")

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


@pulumi.input_type
class KafkaAclKafkaClusterArgs:
    def __init__(__self__, *,
                 id: pulumi.Input[str]):
        """
        :param pulumi.Input[str] id: The ID of the Kafka cluster, for example, `lkc-abc123`.
        """
        pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def id(self) -> pulumi.Input[str]:
        """
        The ID of the Kafka cluster, for example, `lkc-abc123`.
        """
        return pulumi.get(self, "id")

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


@pulumi.input_type
class KafkaClusterBasicArgs:
    def __init__(__self__):
        pass


@pulumi.input_type
class KafkaClusterDedicatedArgs:
    def __init__(__self__, *,
                 cku: pulumi.Input[int],
                 encryption_key: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[int] cku: The number of Confluent Kafka Units (CKUs) for Dedicated cluster types. The minimum number of CKUs for `SINGLE_ZONE` dedicated clusters is `1` whereas `MULTI_ZONE` dedicated clusters must have more than `2` CKUs.
        :param pulumi.Input[str] encryption_key: The ID of the encryption key that is used to encrypt the data in the Kafka cluster, for example, `arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` (key Amazon Resource Name) for AWS or `projects/my-test-project/locations/global/keyRings/test-byok/cryptoKeys/test` for GCP. Append required permissions to the key policy before creating a Kafka cluster, see [Encrypt Confluent Cloud Clusters using Self-Managed Keys](https://docs.confluent.io/cloud/current/clusters/byok/index.html) for more details. At the moment, self-managed encryption keys are only available for the Dedicated clusters on AWS or GCP.
        """
        pulumi.set(__self__, "cku", cku)
        if encryption_key is not None:
            pulumi.set(__self__, "encryption_key", encryption_key)

    @property
    @pulumi.getter
    def cku(self) -> pulumi.Input[int]:
        """
        The number of Confluent Kafka Units (CKUs) for Dedicated cluster types. The minimum number of CKUs for `SINGLE_ZONE` dedicated clusters is `1` whereas `MULTI_ZONE` dedicated clusters must have more than `2` CKUs.
        """
        return pulumi.get(self, "cku")

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

    @property
    @pulumi.getter(name="encryptionKey")
    def encryption_key(self) -> Optional[pulumi.Input[str]]:
        """
        The ID of the encryption key that is used to encrypt the data in the Kafka cluster, for example, `arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` (key Amazon Resource Name) for AWS or `projects/my-test-project/locations/global/keyRings/test-byok/cryptoKeys/test` for GCP. Append required permissions to the key policy before creating a Kafka cluster, see [Encrypt Confluent Cloud Clusters using Self-Managed Keys](https://docs.confluent.io/cloud/current/clusters/byok/index.html) for more details. At the moment, self-managed encryption keys are only available for the Dedicated clusters on AWS or GCP.
        """
        return pulumi.get(self, "encryption_key")

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


@pulumi.input_type
class KafkaClusterEnvironmentArgs:
    def __init__(__self__, *,
                 id: pulumi.Input[str]):
        """
        :param pulumi.Input[str] id: The ID of the Network that the Kafka cluster belongs to, for example, `n-abc123`.
        """
        pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def id(self) -> pulumi.Input[str]:
        """
        The ID of the Network that the Kafka cluster belongs to, for example, `n-abc123`.
        """
        return pulumi.get(self, "id")

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


@pulumi.input_type
class KafkaClusterNetworkArgs:
    def __init__(__self__, *,
                 id: pulumi.Input[str]):
        """
        :param pulumi.Input[str] id: The ID of the Network that the Kafka cluster belongs to, for example, `n-abc123`.
        """
        pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def id(self) -> pulumi.Input[str]:
        """
        The ID of the Network that the Kafka cluster belongs to, for example, `n-abc123`.
        """
        return pulumi.get(self, "id")

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


@pulumi.input_type
class KafkaClusterStandardArgs:
    def __init__(__self__):
        pass


@pulumi.input_type
class KafkaTopicCredentialsArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[str],
                 secret: pulumi.Input[str]):
        """
        :param pulumi.Input[str] key: The Kafka API Key.
        :param pulumi.Input[str] secret: The Kafka API Secret.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret", secret)

    @property
    @pulumi.getter
    def key(self) -> pulumi.Input[str]:
        """
        The Kafka API Key.
        """
        return pulumi.get(self, "key")

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

    @property
    @pulumi.getter
    def secret(self) -> pulumi.Input[str]:
        """
        The Kafka API Secret.
        """
        return pulumi.get(self, "secret")

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


@pulumi.input_type
class KafkaTopicKafkaClusterArgs:
    def __init__(__self__, *,
                 id: pulumi.Input[str]):
        """
        :param pulumi.Input[str] id: The ID of the Kafka cluster, for example, `lkc-abc123`.
        """
        pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def id(self) -> pulumi.Input[str]:
        """
        The ID of the Kafka cluster, for example, `lkc-abc123`.
        """
        return pulumi.get(self, "id")

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


@pulumi.input_type
class NetworkAwArgs:
    def __init__(__self__, *,
                 private_link_endpoint_service: Optional[pulumi.Input[str]] = None,
                 vpc: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] private_link_endpoint_service: (Optional String) The AWS VPC endpoint service for the network (used for Private Link) if available.
        :param pulumi.Input[str] vpc: (Required String) The AWS VPC ID for the network.
        """
        if private_link_endpoint_service is not None:
            pulumi.set(__self__, "private_link_endpoint_service", private_link_endpoint_service)
        if vpc is not None:
            pulumi.set(__self__, "vpc", vpc)

    @property
    @pulumi.getter(name="privateLinkEndpointService")
    def private_link_endpoint_service(self) -> Optional[pulumi.Input[str]]:
        """
        (Optional String) The AWS VPC endpoint service for the network (used for Private Link) if available.
        """
        return pulumi.get(self, "private_link_endpoint_service")

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

    @property
    @pulumi.getter
    def vpc(self) -> Optional[pulumi.Input[str]]:
        """
        (Required String) The AWS VPC ID for the network.
        """
        return pulumi.get(self, "vpc")

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


@pulumi.input_type
class NetworkAzureArgs:
    def __init__(__self__, *,
                 private_link_service_aliases: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None):
        """
        :param pulumi.Input[Mapping[str, pulumi.Input[str]]] private_link_service_aliases: (Optional Map) The mapping of zones to Private Link Service Aliases if available. Keys are zone names, for example, `1` and values are [Azure Private Link Service Aliases](https://docs.microsoft.com/en-us/azure/private-link/private-link-service-overview#share-your-service), for example, `s-nk99e-privatelink-1.8c43dcd0-695c-1234-bc35-11fe6abb303a.centralus.azure.privatelinkservice`.
        """
        if private_link_service_aliases is not None:
            pulumi.set(__self__, "private_link_service_aliases", private_link_service_aliases)

    @property
    @pulumi.getter(name="privateLinkServiceAliases")
    def private_link_service_aliases(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
        """
        (Optional Map) The mapping of zones to Private Link Service Aliases if available. Keys are zone names, for example, `1` and values are [Azure Private Link Service Aliases](https://docs.microsoft.com/en-us/azure/private-link/private-link-service-overview#share-your-service), for example, `s-nk99e-privatelink-1.8c43dcd0-695c-1234-bc35-11fe6abb303a.centralus.azure.privatelinkservice`.
        """
        return pulumi.get(self, "private_link_service_aliases")

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


@pulumi.input_type
class NetworkEnvironmentArgs:
    def __init__(__self__, *,
                 id: pulumi.Input[str]):
        """
        :param pulumi.Input[str] id: The ID of the Environment that the Network belongs to, for example, `env-abc123`.
        """
        pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def id(self) -> pulumi.Input[str]:
        """
        The ID of the Environment that the Network belongs to, for example, `env-abc123`.
        """
        return pulumi.get(self, "id")

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


@pulumi.input_type
class NetworkGcpArgs:
    def __init__(__self__, *,
                 project: Optional[pulumi.Input[str]] = None,
                 vpc_network: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] project: (Required String) The GCP project.
        :param pulumi.Input[str] vpc_network: (Required String) The GCP VPC network name.
        """
        if project is not None:
            pulumi.set(__self__, "project", project)
        if vpc_network is not None:
            pulumi.set(__self__, "vpc_network", vpc_network)

    @property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[str]]:
        """
        (Required String) The GCP project.
        """
        return pulumi.get(self, "project")

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

    @property
    @pulumi.getter(name="vpcNetwork")
    def vpc_network(self) -> Optional[pulumi.Input[str]]:
        """
        (Required String) The GCP VPC network name.
        """
        return pulumi.get(self, "vpc_network")

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


@pulumi.input_type
class PeeringAwsArgs:
    def __init__(__self__, *,
                 account: pulumi.Input[str],
                 customer_region: pulumi.Input[str],
                 routes: pulumi.Input[Sequence[pulumi.Input[str]]],
                 vpc: pulumi.Input[str]):
        """
        :param pulumi.Input[str] account: The AWS Account ID of the peer VPC owner. You can find your AWS Account ID [here](https://console.aws.amazon.com/billing/home?#/account) under **My Account** section of the AWS Management Console. Must be a **12 character string**.
        :param pulumi.Input[str] customer_region: The region of the Azure peer VNet.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] routes: The AWS VPC CIDR blocks or subsets. This must be from the supported CIDR blocks and must not overlap with your Confluent Cloud CIDR block or any other network peering connection VPC CIDR (learn more about the requirements [here](https://docs.confluent.io/cloud/current/networking/peering/aws-peering.html#vpc-peering-on-aws)). You can find AWS VPC CIDR [here](https://console.aws.amazon.com/vpc/) under **Your VPCs > Target VPC > Details** section of the AWS Management Console.
        :param pulumi.Input[str] vpc: The AWS VPC ID of the peer VPC that you're peering with Confluent Cloud. You can find your AWS VPC ID [here](https://console.aws.amazon.com/vpc/) under **Your VPCs** section of the AWS Management Console. Must start with `vpc-`.
        """
        pulumi.set(__self__, "account", account)
        pulumi.set(__self__, "customer_region", customer_region)
        pulumi.set(__self__, "routes", routes)
        pulumi.set(__self__, "vpc", vpc)

    @property
    @pulumi.getter
    def account(self) -> pulumi.Input[str]:
        """
        The AWS Account ID of the peer VPC owner. You can find your AWS Account ID [here](https://console.aws.amazon.com/billing/home?#/account) under **My Account** section of the AWS Management Console. Must be a **12 character string**.
        """
        return pulumi.get(self, "account")

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

    @property
    @pulumi.getter(name="customerRegion")
    def customer_region(self) -> pulumi.Input[str]:
        """
        The region of the Azure peer VNet.
        """
        return pulumi.get(self, "customer_region")

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

    @property
    @pulumi.getter
    def routes(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
        """
        The AWS VPC CIDR blocks or subsets. This must be from the supported CIDR blocks and must not overlap with your Confluent Cloud CIDR block or any other network peering connection VPC CIDR (learn more about the requirements [here](https://docs.confluent.io/cloud/current/networking/peering/aws-peering.html#vpc-peering-on-aws)). You can find AWS VPC CIDR [here](https://console.aws.amazon.com/vpc/) under **Your VPCs > Target VPC > Details** section of the AWS Management Console.
        """
        return pulumi.get(self, "routes")

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

    @property
    @pulumi.getter
    def vpc(self) -> pulumi.Input[str]:
        """
        The AWS VPC ID of the peer VPC that you're peering with Confluent Cloud. You can find your AWS VPC ID [here](https://console.aws.amazon.com/vpc/) under **Your VPCs** section of the AWS Management Console. Must start with `vpc-`.
        """
        return pulumi.get(self, "vpc")

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


@pulumi.input_type
class PeeringAzureArgs:
    def __init__(__self__, *,
                 customer_region: pulumi.Input[str],
                 tenant: pulumi.Input[str],
                 vnet: pulumi.Input[str]):
        """
        :param pulumi.Input[str] customer_region: The region of the Azure peer VNet.
        :param pulumi.Input[str] tenant: The Tenant ID that represents an organization in Azure Active Directory. You can find your Azure Tenant ID in the [Azure Portal under Azure Active Directory](https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/Overview). Must be a valid **32 character UUID string**.
        :param pulumi.Input[str] vnet: The resource (composite) ID of the peer Virtual Network that you're peering with Confluent Cloud, in the format `/subscriptions/<Subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/virtualNetworks/<VNet name>`. You can find Subscription ID, Resource Group Name and your VNet name under **Virtual Networks > Target VNet > Essentials** section of your [Microsoft Azure Portal](https://portal.azure.com/).
        """
        pulumi.set(__self__, "customer_region", customer_region)
        pulumi.set(__self__, "tenant", tenant)
        pulumi.set(__self__, "vnet", vnet)

    @property
    @pulumi.getter(name="customerRegion")
    def customer_region(self) -> pulumi.Input[str]:
        """
        The region of the Azure peer VNet.
        """
        return pulumi.get(self, "customer_region")

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

    @property
    @pulumi.getter
    def tenant(self) -> pulumi.Input[str]:
        """
        The Tenant ID that represents an organization in Azure Active Directory. You can find your Azure Tenant ID in the [Azure Portal under Azure Active Directory](https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/Overview). Must be a valid **32 character UUID string**.
        """
        return pulumi.get(self, "tenant")

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

    @property
    @pulumi.getter
    def vnet(self) -> pulumi.Input[str]:
        """
        The resource (composite) ID of the peer Virtual Network that you're peering with Confluent Cloud, in the format `/subscriptions/<Subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/virtualNetworks/<VNet name>`. You can find Subscription ID, Resource Group Name and your VNet name under **Virtual Networks > Target VNet > Essentials** section of your [Microsoft Azure Portal](https://portal.azure.com/).
        """
        return pulumi.get(self, "vnet")

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


@pulumi.input_type
class PeeringEnvironmentArgs:
    def __init__(__self__, *,
                 id: pulumi.Input[str]):
        """
        :param pulumi.Input[str] id: The ID of the Network that the Peering belongs to, for example, `n-abc123`.
        """
        pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def id(self) -> pulumi.Input[str]:
        """
        The ID of the Network that the Peering belongs to, for example, `n-abc123`.
        """
        return pulumi.get(self, "id")

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


@pulumi.input_type
class PeeringGcpArgs:
    def __init__(__self__, *,
                 project: pulumi.Input[str],
                 vpc_network: pulumi.Input[str],
                 import_custom_routes: Optional[pulumi.Input[bool]] = None):
        """
        :param pulumi.Input[str] project: The GCP Project ID. You can find your Google Cloud Project ID under **Project ID** section of your [Google Cloud Console dashboard](https://console.cloud.google.com/home/dashboard).
        :param pulumi.Input[str] vpc_network: The VPC network name that you're peering to Confluent Cloud. You can find your VPC network name under **VPC Networks** section of your [Google Cloud Console](https://console.cloud.google.com/networking/networks/list).
        :param pulumi.Input[bool] import_custom_routes: The Import Custom Routes option enables connectivity to a Confluent Cloud cluster in Google Cloud from customer premise or other clouds, such as AWS and Azure, through a customer VPC that is peered with Confluent Cloud in the same region. Defaults to `false`. Learn more about considerations / limitations of the Import Custom Routes option [here](https://docs.confluent.io/cloud/current/networking/peering/gcp-peering.html#import-custom-routes).
        """
        pulumi.set(__self__, "project", project)
        pulumi.set(__self__, "vpc_network", vpc_network)
        if import_custom_routes is not None:
            pulumi.set(__self__, "import_custom_routes", import_custom_routes)

    @property
    @pulumi.getter
    def project(self) -> pulumi.Input[str]:
        """
        The GCP Project ID. You can find your Google Cloud Project ID under **Project ID** section of your [Google Cloud Console dashboard](https://console.cloud.google.com/home/dashboard).
        """
        return pulumi.get(self, "project")

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

    @property
    @pulumi.getter(name="vpcNetwork")
    def vpc_network(self) -> pulumi.Input[str]:
        """
        The VPC network name that you're peering to Confluent Cloud. You can find your VPC network name under **VPC Networks** section of your [Google Cloud Console](https://console.cloud.google.com/networking/networks/list).
        """
        return pulumi.get(self, "vpc_network")

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

    @property
    @pulumi.getter(name="importCustomRoutes")
    def import_custom_routes(self) -> Optional[pulumi.Input[bool]]:
        """
        The Import Custom Routes option enables connectivity to a Confluent Cloud cluster in Google Cloud from customer premise or other clouds, such as AWS and Azure, through a customer VPC that is peered with Confluent Cloud in the same region. Defaults to `false`. Learn more about considerations / limitations of the Import Custom Routes option [here](https://docs.confluent.io/cloud/current/networking/peering/gcp-peering.html#import-custom-routes).
        """
        return pulumi.get(self, "import_custom_routes")

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


@pulumi.input_type
class PeeringNetworkArgs:
    def __init__(__self__, *,
                 id: pulumi.Input[str]):
        """
        :param pulumi.Input[str] id: The ID of the Network that the Peering belongs to, for example, `n-abc123`.
        """
        pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def id(self) -> pulumi.Input[str]:
        """
        The ID of the Network that the Peering belongs to, for example, `n-abc123`.
        """
        return pulumi.get(self, "id")

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


@pulumi.input_type
class PrivateLinkAccessAwsArgs:
    def __init__(__self__, *,
                 account: pulumi.Input[str]):
        """
        :param pulumi.Input[str] account: The AWS account ID to enable for the Private Link Access. You can find your AWS account ID [here] (https://console.aws.amazon.com/billing/home?#/account) under **My Account** in your AWS Management Console. Must be a **12 character string**.
        """
        pulumi.set(__self__, "account", account)

    @property
    @pulumi.getter
    def account(self) -> pulumi.Input[str]:
        """
        The AWS account ID to enable for the Private Link Access. You can find your AWS account ID [here] (https://console.aws.amazon.com/billing/home?#/account) under **My Account** in your AWS Management Console. Must be a **12 character string**.
        """
        return pulumi.get(self, "account")

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


@pulumi.input_type
class PrivateLinkAccessAzureArgs:
    def __init__(__self__, *,
                 subscription: pulumi.Input[str]):
        """
        :param pulumi.Input[str] subscription: The Azure subscription ID to enable for the Private Link Access. You can find your Azure subscription ID in the subscription section of your [Microsoft Azure Portal] (https://portal.azure.com/#blade/Microsoft_Azure_Billing/SubscriptionsBlade). Must be a valid **32 character UUID string**.
        """
        pulumi.set(__self__, "subscription", subscription)

    @property
    @pulumi.getter
    def subscription(self) -> pulumi.Input[str]:
        """
        The Azure subscription ID to enable for the Private Link Access. You can find your Azure subscription ID in the subscription section of your [Microsoft Azure Portal] (https://portal.azure.com/#blade/Microsoft_Azure_Billing/SubscriptionsBlade). Must be a valid **32 character UUID string**.
        """
        return pulumi.get(self, "subscription")

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


@pulumi.input_type
class PrivateLinkAccessEnvironmentArgs:
    def __init__(__self__, *,
                 id: pulumi.Input[str]):
        """
        :param pulumi.Input[str] id: The ID of the Network that the Private Link Access belongs to, for example, `n-abc123`.
        """
        pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def id(self) -> pulumi.Input[str]:
        """
        The ID of the Network that the Private Link Access belongs to, for example, `n-abc123`.
        """
        return pulumi.get(self, "id")

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


@pulumi.input_type
class PrivateLinkAccessNetworkArgs:
    def __init__(__self__, *,
                 id: pulumi.Input[str]):
        """
        :param pulumi.Input[str] id: The ID of the Network that the Private Link Access belongs to, for example, `n-abc123`.
        """
        pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def id(self) -> pulumi.Input[str]:
        """
        The ID of the Network that the Private Link Access belongs to, for example, `n-abc123`.
        """
        return pulumi.get(self, "id")

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


@pulumi.input_type
class GetKafkaClusterBasicArgs:
    def __init__(__self__):
        pass


@pulumi.input_type
class GetKafkaClusterDedicatedArgs:
    def __init__(__self__, *,
                 cku: int,
                 encryption_key: str):
        """
        :param int cku: (Required Number) The number of Confluent Kafka Units (CKUs) for Dedicated cluster types. The minimum number of CKUs for `SINGLE_ZONE` dedicated clusters is `1` whereas `MULTI_ZONE` dedicated clusters must have more than `2` CKUs.
        :param str encryption_key: (Optional String) The ID of the encryption key that is used to encrypt the data in the Kafka cluster, for example, `arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` (key Amazon Resource Name) for AWS or `projects/my-test-project/locations/global/keyRings/test-byok/cryptoKeys/test` for GCP. Append required permissions to the key policy before creating a Kafka cluster, see [Encrypt Confluent Cloud Clusters using Self-Managed Keys](https://docs.confluent.io/cloud/current/clusters/byok/index.html) for more details. At the moment, self-managed encryption keys are only available for the Dedicated clusters on AWS or GCP.
        """
        pulumi.set(__self__, "cku", cku)
        pulumi.set(__self__, "encryption_key", encryption_key)

    @property
    @pulumi.getter
    def cku(self) -> int:
        """
        (Required Number) The number of Confluent Kafka Units (CKUs) for Dedicated cluster types. The minimum number of CKUs for `SINGLE_ZONE` dedicated clusters is `1` whereas `MULTI_ZONE` dedicated clusters must have more than `2` CKUs.
        """
        return pulumi.get(self, "cku")

    @cku.setter
    def cku(self, value: int):
        pulumi.set(self, "cku", value)

    @property
    @pulumi.getter(name="encryptionKey")
    def encryption_key(self) -> str:
        """
        (Optional String) The ID of the encryption key that is used to encrypt the data in the Kafka cluster, for example, `arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab` (key Amazon Resource Name) for AWS or `projects/my-test-project/locations/global/keyRings/test-byok/cryptoKeys/test` for GCP. Append required permissions to the key policy before creating a Kafka cluster, see [Encrypt Confluent Cloud Clusters using Self-Managed Keys](https://docs.confluent.io/cloud/current/clusters/byok/index.html) for more details. At the moment, self-managed encryption keys are only available for the Dedicated clusters on AWS or GCP.
        """
        return pulumi.get(self, "encryption_key")

    @encryption_key.setter
    def encryption_key(self, value: str):
        pulumi.set(self, "encryption_key", value)


@pulumi.input_type
class GetKafkaClusterEnvironmentArgs:
    def __init__(__self__, *,
                 id: str):
        """
        :param str id: The ID of the Environment that the Kafka cluster belongs to, for example, `env-xyz456`.
        """
        pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The ID of the Environment that the Kafka cluster belongs to, for example, `env-xyz456`.
        """
        return pulumi.get(self, "id")

    @id.setter
    def id(self, value: str):
        pulumi.set(self, "id", value)


@pulumi.input_type
class GetKafkaClusterStandardArgs:
    def __init__(__self__):
        pass


@pulumi.input_type
class GetKafkaTopicCredentialsArgs:
    def __init__(__self__, *,
                 key: str,
                 secret: str):
        """
        :param str key: The Kafka API Key.
        :param str secret: The Kafka API Secret.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "secret", secret)

    @property
    @pulumi.getter
    def key(self) -> str:
        """
        The Kafka API Key.
        """
        return pulumi.get(self, "key")

    @key.setter
    def key(self, value: str):
        pulumi.set(self, "key", value)

    @property
    @pulumi.getter
    def secret(self) -> str:
        """
        The Kafka API Secret.
        """
        return pulumi.get(self, "secret")

    @secret.setter
    def secret(self, value: str):
        pulumi.set(self, "secret", value)


@pulumi.input_type
class GetKafkaTopicKafkaClusterArgs:
    def __init__(__self__, *,
                 id: str):
        """
        :param str id: The ID of the Kafka cluster, for example, `lkc-abc123`.
        """
        pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The ID of the Kafka cluster, for example, `lkc-abc123`.
        """
        return pulumi.get(self, "id")

    @id.setter
    def id(self, value: str):
        pulumi.set(self, "id", value)


@pulumi.input_type
class GetNetworkAwArgs:
    def __init__(__self__, *,
                 private_link_endpoint_service: str,
                 vpc: str):
        """
        :param str private_link_endpoint_service: (Optional String) The AWS VPC endpoint service for the network (used for Private Link) if available.
        :param str vpc: (Required String) The AWS VPC ID for the network.
        """
        pulumi.set(__self__, "private_link_endpoint_service", private_link_endpoint_service)
        pulumi.set(__self__, "vpc", vpc)

    @property
    @pulumi.getter(name="privateLinkEndpointService")
    def private_link_endpoint_service(self) -> str:
        """
        (Optional String) The AWS VPC endpoint service for the network (used for Private Link) if available.
        """
        return pulumi.get(self, "private_link_endpoint_service")

    @private_link_endpoint_service.setter
    def private_link_endpoint_service(self, value: str):
        pulumi.set(self, "private_link_endpoint_service", value)

    @property
    @pulumi.getter
    def vpc(self) -> str:
        """
        (Required String) The AWS VPC ID for the network.
        """
        return pulumi.get(self, "vpc")

    @vpc.setter
    def vpc(self, value: str):
        pulumi.set(self, "vpc", value)


@pulumi.input_type
class GetNetworkAzureArgs:
    def __init__(__self__, *,
                 private_link_service_aliases: Mapping[str, str]):
        """
        :param Mapping[str, str] private_link_service_aliases: (Optional Map) The mapping of zones to Private Link Service Aliases if available. Keys are zones and values are [Azure Private Link Service Aliases](https://docs.microsoft.com/en-us/azure/private-link/private-link-service-overview#share-your-service).
        """
        pulumi.set(__self__, "private_link_service_aliases", private_link_service_aliases)

    @property
    @pulumi.getter(name="privateLinkServiceAliases")
    def private_link_service_aliases(self) -> Mapping[str, str]:
        """
        (Optional Map) The mapping of zones to Private Link Service Aliases if available. Keys are zones and values are [Azure Private Link Service Aliases](https://docs.microsoft.com/en-us/azure/private-link/private-link-service-overview#share-your-service).
        """
        return pulumi.get(self, "private_link_service_aliases")

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


@pulumi.input_type
class GetNetworkEnvironmentArgs:
    def __init__(__self__, *,
                 id: str):
        """
        :param str id: The ID of the Environment that the Network belongs to, for example, `env-xyz456`.
        """
        pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The ID of the Environment that the Network belongs to, for example, `env-xyz456`.
        """
        return pulumi.get(self, "id")

    @id.setter
    def id(self, value: str):
        pulumi.set(self, "id", value)


@pulumi.input_type
class GetNetworkGcpArgs:
    def __init__(__self__, *,
                 project: str,
                 vpc_network: str):
        """
        :param str project: (Required String) The GCP project.
        :param str vpc_network: (Required String) The GCP VPC network name.
        """
        pulumi.set(__self__, "project", project)
        pulumi.set(__self__, "vpc_network", vpc_network)

    @property
    @pulumi.getter
    def project(self) -> str:
        """
        (Required String) The GCP project.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: str):
        pulumi.set(self, "project", value)

    @property
    @pulumi.getter(name="vpcNetwork")
    def vpc_network(self) -> str:
        """
        (Required String) The GCP VPC network name.
        """
        return pulumi.get(self, "vpc_network")

    @vpc_network.setter
    def vpc_network(self, value: str):
        pulumi.set(self, "vpc_network", value)


