{"name":"redpanda","version":"1.6.0","description":"A Pulumi provider dynamically bridged from redpanda.","attribution":"This Pulumi package is based on the [`redpanda` Terraform Provider](https://github.com/redpanda-data/terraform-provider-redpanda).","repository":"https://github.com/redpanda-data/terraform-provider-redpanda","publisher":"redpanda-data","meta":{"moduleFormat":"(.*)(?:/[^/]*)"},"language":{"csharp":{"compatibility":"tfbridge20","liftSingleValueMethodReturns":true,"respectSchemaVersion":true},"go":{"generateExtraInputTypes":true,"importBasePath":"github.com/pulumi/pulumi-terraform-provider/sdks/go/redpanda/redpanda","liftSingleValueMethodReturns":true,"respectSchemaVersion":true,"rootPackageName":"redpanda"},"java":{"basePackage":"","buildFiles":"","gradleNexusPublishPluginVersion":"","gradleTest":""},"nodejs":{"compatibility":"tfbridge20","disableUnionOutputTypes":true,"liftSingleValueMethodReturns":true,"packageDescription":"A Pulumi provider dynamically bridged from redpanda.","readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/redpanda-data/terraform-provider-redpanda)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e please consult the source [`terraform-provider-redpanda` repo](https://github.com/redpanda-data/terraform-provider-redpanda/issues).","respectSchemaVersion":true},"python":{"compatibility":"tfbridge20","pyproject":{"enabled":true},"readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/redpanda-data/terraform-provider-redpanda)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e please consult the source [`terraform-provider-redpanda` repo](https://github.com/redpanda-data/terraform-provider-redpanda/issues).","respectSchemaVersion":true}},"config":{"variables":{"accessToken":{"type":"string","description":"Redpanda client token. You need either \u003cspan pulumi-lang-nodejs=\"`accessToken`\" pulumi-lang-dotnet=\"`AccessToken`\" pulumi-lang-go=\"`accessToken`\" pulumi-lang-python=\"`access_token`\" pulumi-lang-yaml=\"`accessToken`\" pulumi-lang-java=\"`accessToken`\"\u003e`access_token`\u003c/span\u003e, or both \u003cspan pulumi-lang-nodejs=\"`clientId`\" pulumi-lang-dotnet=\"`ClientId`\" pulumi-lang-go=\"`clientId`\" pulumi-lang-python=\"`client_id`\" pulumi-lang-yaml=\"`clientId`\" pulumi-lang-java=\"`clientId`\"\u003e`client_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`clientSecret`\" pulumi-lang-dotnet=\"`ClientSecret`\" pulumi-lang-go=\"`clientSecret`\" pulumi-lang-python=\"`client_secret`\" pulumi-lang-yaml=\"`clientSecret`\" pulumi-lang-java=\"`clientSecret`\"\u003e`client_secret`\u003c/span\u003e to use this provider. Can also be set with the `REDPANDA_ACCESS_TOKEN` environment variable.","secret":true},"azureClientId":{"type":"string","description":"Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as AZURE_CLIENT_ID or ARM_CLIENT_ID"},"azureClientSecret":{"type":"string","description":"Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as AZURE_CLIENT_SECRET or ARM_CLIENT_SECRET","secret":true},"azureSubscriptionId":{"type":"string","description":"The default Azure Subscription ID which should be used for Redpanda BYOC clusters. If another subscription is specified on a resource, it will take precedence. This can also be sourced from the `ARM_SUBSCRIPTION_ID` environment variable."},"azureTenantId":{"type":"string","description":"Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as AZURE_TENANT_ID or ARM_TENANT_ID"},"clientId":{"type":"string","description":"The ID for the client. You need either \u003cspan pulumi-lang-nodejs=\"`clientId`\" pulumi-lang-dotnet=\"`ClientId`\" pulumi-lang-go=\"`clientId`\" pulumi-lang-python=\"`client_id`\" pulumi-lang-yaml=\"`clientId`\" pulumi-lang-java=\"`clientId`\"\u003e`client_id`\u003c/span\u003e AND \u003cspan pulumi-lang-nodejs=\"`clientSecret`\" pulumi-lang-dotnet=\"`ClientSecret`\" pulumi-lang-go=\"`clientSecret`\" pulumi-lang-python=\"`client_secret`\" pulumi-lang-yaml=\"`clientSecret`\" pulumi-lang-java=\"`clientSecret`\"\u003e`client_secret`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`accessToken`\" pulumi-lang-dotnet=\"`AccessToken`\" pulumi-lang-go=\"`accessToken`\" pulumi-lang-python=\"`access_token`\" pulumi-lang-yaml=\"`accessToken`\" pulumi-lang-java=\"`accessToken`\"\u003e`access_token`\u003c/span\u003e, to use this provider. Can also be set with the `REDPANDA_CLIENT_ID` environment variable.","secret":true},"clientSecret":{"type":"string","description":"Redpanda client secret. You need either \u003cspan pulumi-lang-nodejs=\"`clientId`\" pulumi-lang-dotnet=\"`ClientId`\" pulumi-lang-go=\"`clientId`\" pulumi-lang-python=\"`client_id`\" pulumi-lang-yaml=\"`clientId`\" pulumi-lang-java=\"`clientId`\"\u003e`client_id`\u003c/span\u003e AND \u003cspan pulumi-lang-nodejs=\"`clientSecret`\" pulumi-lang-dotnet=\"`ClientSecret`\" pulumi-lang-go=\"`clientSecret`\" pulumi-lang-python=\"`client_secret`\" pulumi-lang-yaml=\"`clientSecret`\" pulumi-lang-java=\"`clientSecret`\"\u003e`client_secret`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`accessToken`\" pulumi-lang-dotnet=\"`AccessToken`\" pulumi-lang-go=\"`accessToken`\" pulumi-lang-python=\"`access_token`\" pulumi-lang-yaml=\"`accessToken`\" pulumi-lang-java=\"`accessToken`\"\u003e`access_token`\u003c/span\u003e, to use this provider. Can also be set with the `REDPANDA_CLIENT_SECRET` environment variable.","secret":true},"gcpProjectId":{"type":"string","description":"The default Google Cloud Project ID to use for Redpanda BYOC clusters. If another project is specified on a resource, it will take precedence. This can also be sourced from the `GOOGLE_PROJECT` environment variable, or any of the following ordered by precedence: `GOOGLE_PROJECT`, `GOOGLE_CLOUD_PROJECT`, `GCLOUD_PROJECT`, or `CLOUDSDK_CORE_PROJECT`."},"googleCredentials":{"type":"string","description":"Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as GOOGLE_CREDENTIALS","secret":true},"googleCredentialsBase64":{"type":"string","description":"Used for creating and managing BYOC and BYOVPC clusters. Is a convenience passthrough for base64 encoded credentials intended for use in CI/CD. Can also be specified in the environment as GOOGLE_CREDENTIALS_BASE64","secret":true}}},"types":{"redpanda:index/ClusterAwsPrivateLink:ClusterAwsPrivateLink":{"properties":{"allowedPrincipals":{"type":"array","items":{"type":"string"},"description":"The ARN of the principals that can access the Redpanda AWS PrivateLink Endpoint Service. To grant permissions to all principals, use an asterisk (*).\n"},"connectConsole":{"type":"boolean","description":"Whether Console is connected via PrivateLink.\n"},"enabled":{"type":"boolean","description":"Whether AWS PrivateLink is enabled.\n"},"status":{"$ref":"#/types/redpanda:index%2FClusterAwsPrivateLinkStatus:ClusterAwsPrivateLinkStatus","description":"Current status of the PrivateLink configuration.\n"}},"type":"object","required":["allowedPrincipals","connectConsole","enabled"],"language":{"nodejs":{"requiredOutputs":["allowedPrincipals","connectConsole","enabled","status"]}}},"redpanda:index/ClusterAwsPrivateLinkStatus:ClusterAwsPrivateLinkStatus":{"properties":{"consolePort":{"type":"number","description":"Port for Redpanda Console.\n"},"createdAt":{"type":"string","description":"When the PrivateLink service was created.\n"},"deletedAt":{"type":"string","description":"When the PrivateLink service was deleted.\n"},"kafkaApiNodeBasePort":{"type":"number","description":"Base port for Kafka API nodes.\n"},"kafkaApiSeedPort":{"type":"number","description":"Port for Kafka API seed brokers.\n"},"redpandaProxyNodeBasePort":{"type":"number","description":"Base port for HTTP proxy nodes.\n"},"redpandaProxySeedPort":{"type":"number","description":"Port for HTTP proxy.\n"},"schemaRegistrySeedPort":{"type":"number","description":"Port for Schema Registry.\n"},"serviceId":{"type":"string","description":"The PrivateLink service ID.\n"},"serviceName":{"type":"string","description":"The PrivateLink service name.\n"},"serviceState":{"type":"string","description":"Current state of the PrivateLink service.\n"},"vpcEndpointConnections":{"type":"array","items":{"$ref":"#/types/redpanda:index%2FClusterAwsPrivateLinkStatusVpcEndpointConnection:ClusterAwsPrivateLinkStatusVpcEndpointConnection"},"description":"List of VPC endpoint connections.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["consolePort","createdAt","deletedAt","kafkaApiNodeBasePort","kafkaApiSeedPort","redpandaProxyNodeBasePort","redpandaProxySeedPort","schemaRegistrySeedPort","serviceId","serviceName","serviceState","vpcEndpointConnections"]}}},"redpanda:index/ClusterAwsPrivateLinkStatusVpcEndpointConnection:ClusterAwsPrivateLinkStatusVpcEndpointConnection":{"properties":{"connectionId":{"type":"string","description":"The connection ID.\n"},"createdAt":{"type":"string","description":"When the endpoint connection was created.\n"},"dnsEntries":{"type":"array","items":{"$ref":"#/types/redpanda:index%2FClusterAwsPrivateLinkStatusVpcEndpointConnectionDnsEntry:ClusterAwsPrivateLinkStatusVpcEndpointConnectionDnsEntry"},"description":"DNS entries for the endpoint.\n"},"id":{"type":"string","description":"The endpoint connection ID.\n"},"loadBalancerArns":{"type":"array","items":{"type":"string"},"description":"ARNs of associated load balancers.\n"},"owner":{"type":"string","description":"Owner of the endpoint connection.\n"},"state":{"type":"string","description":"State of the endpoint connection.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["connectionId","createdAt","dnsEntries","id","loadBalancerArns","owner","state"]}}},"redpanda:index/ClusterAwsPrivateLinkStatusVpcEndpointConnectionDnsEntry:ClusterAwsPrivateLinkStatusVpcEndpointConnectionDnsEntry":{"properties":{"dnsName":{"type":"string","description":"The DNS name.\n"},"hostedZoneId":{"type":"string","description":"The hosted zone ID.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["dnsName","hostedZoneId"]}}},"redpanda:index/ClusterAzurePrivateLink:ClusterAzurePrivateLink":{"properties":{"allowedSubscriptions":{"type":"array","items":{"type":"string"},"description":"The subscriptions that can access the Redpanda Azure PrivateLink Endpoint Service. To grant permissions to all principals, use an asterisk (*).\n"},"connectConsole":{"type":"boolean","description":"Whether Console is connected in Redpanda Azure Private Link Service.\n"},"enabled":{"type":"boolean","description":"Whether Redpanda Azure Private Link Endpoint Service is enabled.\n"},"status":{"$ref":"#/types/redpanda:index%2FClusterAzurePrivateLinkStatus:ClusterAzurePrivateLinkStatus","description":"Current status of the Private Link configuration.\n"}},"type":"object","required":["allowedSubscriptions","connectConsole","enabled"],"language":{"nodejs":{"requiredOutputs":["allowedSubscriptions","connectConsole","enabled","status"]}}},"redpanda:index/ClusterAzurePrivateLinkStatus:ClusterAzurePrivateLinkStatus":{"properties":{"approvedSubscriptions":{"type":"array","items":{"type":"string"},"description":"List of approved Azure subscription IDs.\n"},"consolePort":{"type":"number","description":"Port for Redpanda Console.\n"},"createdAt":{"type":"string","description":"When the Private Link service was created.\n"},"deletedAt":{"type":"string","description":"When the Private Link service was deleted.\n"},"dnsARecord":{"type":"string","description":"DNS A record for the service.\n"},"kafkaApiNodeBasePort":{"type":"number","description":"Base port for Kafka API nodes.\n"},"kafkaApiSeedPort":{"type":"number","description":"Port for Kafka API seed brokers.\n"},"privateEndpointConnections":{"type":"array","items":{"$ref":"#/types/redpanda:index%2FClusterAzurePrivateLinkStatusPrivateEndpointConnection:ClusterAzurePrivateLinkStatusPrivateEndpointConnection"},"description":"List of private endpoint connections.\n"},"redpandaProxyNodeBasePort":{"type":"number","description":"Base port for HTTP proxy nodes.\n"},"redpandaProxySeedPort":{"type":"number","description":"Port for HTTP proxy.\n"},"schemaRegistrySeedPort":{"type":"number","description":"Port for Schema Registry.\n"},"serviceId":{"type":"string","description":"The Private Link service ID.\n"},"serviceName":{"type":"string","description":"The Private Link service name.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["approvedSubscriptions","consolePort","createdAt","deletedAt","dnsARecord","kafkaApiNodeBasePort","kafkaApiSeedPort","privateEndpointConnections","redpandaProxyNodeBasePort","redpandaProxySeedPort","schemaRegistrySeedPort","serviceId","serviceName"]}}},"redpanda:index/ClusterAzurePrivateLinkStatusPrivateEndpointConnection:ClusterAzurePrivateLinkStatusPrivateEndpointConnection":{"properties":{"connectionId":{"type":"string","description":"ID of the connection.\n"},"connectionName":{"type":"string","description":"Name of the connection.\n"},"createdAt":{"type":"string","description":"When the endpoint connection was created.\n"},"privateEndpointId":{"type":"string","description":"ID of the private endpoint.\n"},"privateEndpointName":{"type":"string","description":"Name of the private endpoint.\n"},"status":{"type":"string","description":"Status of the endpoint connection.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["connectionId","connectionName","createdAt","privateEndpointId","privateEndpointName","status"]}}},"redpanda:index/ClusterClusterConfiguration:ClusterClusterConfiguration":{"properties":{"customPropertiesJson":{"type":"string","description":"Custom properties for the cluster in JSON format.\n"}},"type":"object"},"redpanda:index/ClusterCustomerManagedResources:ClusterCustomerManagedResources":{"properties":{"aws":{"$ref":"#/types/redpanda:index%2FClusterCustomerManagedResourcesAws:ClusterCustomerManagedResourcesAws"},"gcp":{"$ref":"#/types/redpanda:index%2FClusterCustomerManagedResourcesGcp:ClusterCustomerManagedResourcesGcp"}},"type":"object"},"redpanda:index/ClusterCustomerManagedResourcesAws:ClusterCustomerManagedResourcesAws":{"properties":{"agentInstanceProfile":{"$ref":"#/types/redpanda:index%2FClusterCustomerManagedResourcesAwsAgentInstanceProfile:ClusterCustomerManagedResourcesAwsAgentInstanceProfile"},"cloudStorageBucket":{"$ref":"#/types/redpanda:index%2FClusterCustomerManagedResourcesAwsCloudStorageBucket:ClusterCustomerManagedResourcesAwsCloudStorageBucket"},"clusterSecurityGroup":{"$ref":"#/types/redpanda:index%2FClusterCustomerManagedResourcesAwsClusterSecurityGroup:ClusterCustomerManagedResourcesAwsClusterSecurityGroup"},"connectorsNodeGroupInstanceProfile":{"$ref":"#/types/redpanda:index%2FClusterCustomerManagedResourcesAwsConnectorsNodeGroupInstanceProfile:ClusterCustomerManagedResourcesAwsConnectorsNodeGroupInstanceProfile"},"connectorsSecurityGroup":{"$ref":"#/types/redpanda:index%2FClusterCustomerManagedResourcesAwsConnectorsSecurityGroup:ClusterCustomerManagedResourcesAwsConnectorsSecurityGroup"},"k8sClusterRole":{"$ref":"#/types/redpanda:index%2FClusterCustomerManagedResourcesAwsK8sClusterRole:ClusterCustomerManagedResourcesAwsK8sClusterRole"},"nodeSecurityGroup":{"$ref":"#/types/redpanda:index%2FClusterCustomerManagedResourcesAwsNodeSecurityGroup:ClusterCustomerManagedResourcesAwsNodeSecurityGroup"},"permissionsBoundaryPolicy":{"$ref":"#/types/redpanda:index%2FClusterCustomerManagedResourcesAwsPermissionsBoundaryPolicy:ClusterCustomerManagedResourcesAwsPermissionsBoundaryPolicy"},"redpandaAgentSecurityGroup":{"$ref":"#/types/redpanda:index%2FClusterCustomerManagedResourcesAwsRedpandaAgentSecurityGroup:ClusterCustomerManagedResourcesAwsRedpandaAgentSecurityGroup"},"redpandaNodeGroupInstanceProfile":{"$ref":"#/types/redpanda:index%2FClusterCustomerManagedResourcesAwsRedpandaNodeGroupInstanceProfile:ClusterCustomerManagedResourcesAwsRedpandaNodeGroupInstanceProfile"},"redpandaNodeGroupSecurityGroup":{"$ref":"#/types/redpanda:index%2FClusterCustomerManagedResourcesAwsRedpandaNodeGroupSecurityGroup:ClusterCustomerManagedResourcesAwsRedpandaNodeGroupSecurityGroup"},"utilityNodeGroupInstanceProfile":{"$ref":"#/types/redpanda:index%2FClusterCustomerManagedResourcesAwsUtilityNodeGroupInstanceProfile:ClusterCustomerManagedResourcesAwsUtilityNodeGroupInstanceProfile"},"utilitySecurityGroup":{"$ref":"#/types/redpanda:index%2FClusterCustomerManagedResourcesAwsUtilitySecurityGroup:ClusterCustomerManagedResourcesAwsUtilitySecurityGroup"}},"type":"object","required":["agentInstanceProfile","cloudStorageBucket","clusterSecurityGroup","connectorsNodeGroupInstanceProfile","connectorsSecurityGroup","k8sClusterRole","nodeSecurityGroup","permissionsBoundaryPolicy","redpandaAgentSecurityGroup","redpandaNodeGroupInstanceProfile","redpandaNodeGroupSecurityGroup","utilityNodeGroupInstanceProfile","utilitySecurityGroup"]},"redpanda:index/ClusterCustomerManagedResourcesAwsAgentInstanceProfile:ClusterCustomerManagedResourcesAwsAgentInstanceProfile":{"properties":{"arn":{"type":"string","description":"ARN for the agent instance profile\n"}},"type":"object","required":["arn"]},"redpanda:index/ClusterCustomerManagedResourcesAwsCloudStorageBucket:ClusterCustomerManagedResourcesAwsCloudStorageBucket":{"properties":{"arn":{"type":"string","description":"ARN for the cloud storage bucket\n"}},"type":"object","required":["arn"]},"redpanda:index/ClusterCustomerManagedResourcesAwsClusterSecurityGroup:ClusterCustomerManagedResourcesAwsClusterSecurityGroup":{"properties":{"arn":{"type":"string","description":"ARN for the cluster security group\n"}},"type":"object","required":["arn"]},"redpanda:index/ClusterCustomerManagedResourcesAwsConnectorsNodeGroupInstanceProfile:ClusterCustomerManagedResourcesAwsConnectorsNodeGroupInstanceProfile":{"properties":{"arn":{"type":"string","description":"ARN for the connectors node group instance profile\n"}},"type":"object","required":["arn"]},"redpanda:index/ClusterCustomerManagedResourcesAwsConnectorsSecurityGroup:ClusterCustomerManagedResourcesAwsConnectorsSecurityGroup":{"properties":{"arn":{"type":"string","description":"ARN for the connectors security group\n"}},"type":"object","required":["arn"]},"redpanda:index/ClusterCustomerManagedResourcesAwsK8sClusterRole:ClusterCustomerManagedResourcesAwsK8sClusterRole":{"properties":{"arn":{"type":"string","description":"ARN for the Kubernetes cluster role\n"}},"type":"object","required":["arn"]},"redpanda:index/ClusterCustomerManagedResourcesAwsNodeSecurityGroup:ClusterCustomerManagedResourcesAwsNodeSecurityGroup":{"properties":{"arn":{"type":"string","description":"ARN for the node security group\n"}},"type":"object","required":["arn"]},"redpanda:index/ClusterCustomerManagedResourcesAwsPermissionsBoundaryPolicy:ClusterCustomerManagedResourcesAwsPermissionsBoundaryPolicy":{"properties":{"arn":{"type":"string","description":"ARN for the permissions boundary policy\n"}},"type":"object","required":["arn"]},"redpanda:index/ClusterCustomerManagedResourcesAwsRedpandaAgentSecurityGroup:ClusterCustomerManagedResourcesAwsRedpandaAgentSecurityGroup":{"properties":{"arn":{"type":"string","description":"ARN for the redpanda agent security group\n"}},"type":"object","required":["arn"]},"redpanda:index/ClusterCustomerManagedResourcesAwsRedpandaNodeGroupInstanceProfile:ClusterCustomerManagedResourcesAwsRedpandaNodeGroupInstanceProfile":{"properties":{"arn":{"type":"string","description":"ARN for the redpanda node group instance profile\n"}},"type":"object","required":["arn"]},"redpanda:index/ClusterCustomerManagedResourcesAwsRedpandaNodeGroupSecurityGroup:ClusterCustomerManagedResourcesAwsRedpandaNodeGroupSecurityGroup":{"properties":{"arn":{"type":"string","description":"ARN for the redpanda node group security group\n"}},"type":"object","required":["arn"]},"redpanda:index/ClusterCustomerManagedResourcesAwsUtilityNodeGroupInstanceProfile:ClusterCustomerManagedResourcesAwsUtilityNodeGroupInstanceProfile":{"properties":{"arn":{"type":"string","description":"ARN for the utility node group instance profile\n"}},"type":"object","required":["arn"]},"redpanda:index/ClusterCustomerManagedResourcesAwsUtilitySecurityGroup:ClusterCustomerManagedResourcesAwsUtilitySecurityGroup":{"properties":{"arn":{"type":"string","description":"ARN for the utility security group\n"}},"type":"object","required":["arn"]},"redpanda:index/ClusterCustomerManagedResourcesGcp:ClusterCustomerManagedResourcesGcp":{"properties":{"agentServiceAccount":{"$ref":"#/types/redpanda:index%2FClusterCustomerManagedResourcesGcpAgentServiceAccount:ClusterCustomerManagedResourcesGcpAgentServiceAccount","description":"GCP service account for the agent.\n"},"connectorServiceAccount":{"$ref":"#/types/redpanda:index%2FClusterCustomerManagedResourcesGcpConnectorServiceAccount:ClusterCustomerManagedResourcesGcpConnectorServiceAccount","description":"GCP service account for managed connectors.\n"},"consoleServiceAccount":{"$ref":"#/types/redpanda:index%2FClusterCustomerManagedResourcesGcpConsoleServiceAccount:ClusterCustomerManagedResourcesGcpConsoleServiceAccount","description":"GCP service account for Redpanda Console.\n"},"gkeServiceAccount":{"$ref":"#/types/redpanda:index%2FClusterCustomerManagedResourcesGcpGkeServiceAccount:ClusterCustomerManagedResourcesGcpGkeServiceAccount","description":"GCP service account for GCP Kubernetes Engine (GKE).\n"},"pscNatSubnetName":{"type":"string","description":"NAT subnet name if GCP Private Service Connect is enabled.\n"},"redpandaClusterServiceAccount":{"$ref":"#/types/redpanda:index%2FClusterCustomerManagedResourcesGcpRedpandaClusterServiceAccount:ClusterCustomerManagedResourcesGcpRedpandaClusterServiceAccount","description":"GCP service account for the Redpanda cluster.\n"},"subnet":{"$ref":"#/types/redpanda:index%2FClusterCustomerManagedResourcesGcpSubnet:ClusterCustomerManagedResourcesGcpSubnet","description":"GCP subnet where Redpanda cluster is deployed.\n"},"tieredStorageBucket":{"$ref":"#/types/redpanda:index%2FClusterCustomerManagedResourcesGcpTieredStorageBucket:ClusterCustomerManagedResourcesGcpTieredStorageBucket","description":"GCP storage bucket for Tiered storage.\n"}},"type":"object","required":["agentServiceAccount","connectorServiceAccount","consoleServiceAccount","gkeServiceAccount","redpandaClusterServiceAccount","subnet","tieredStorageBucket"]},"redpanda:index/ClusterCustomerManagedResourcesGcpAgentServiceAccount:ClusterCustomerManagedResourcesGcpAgentServiceAccount":{"properties":{"email":{"type":"string","description":"GCP service account email.\n"}},"type":"object","required":["email"]},"redpanda:index/ClusterCustomerManagedResourcesGcpConnectorServiceAccount:ClusterCustomerManagedResourcesGcpConnectorServiceAccount":{"properties":{"email":{"type":"string","description":"GCP service account email.\n"}},"type":"object","required":["email"]},"redpanda:index/ClusterCustomerManagedResourcesGcpConsoleServiceAccount:ClusterCustomerManagedResourcesGcpConsoleServiceAccount":{"properties":{"email":{"type":"string","description":"GCP service account email.\n"}},"type":"object","required":["email"]},"redpanda:index/ClusterCustomerManagedResourcesGcpGkeServiceAccount:ClusterCustomerManagedResourcesGcpGkeServiceAccount":{"properties":{"email":{"type":"string","description":"GCP service account email.\n"}},"type":"object","required":["email"]},"redpanda:index/ClusterCustomerManagedResourcesGcpRedpandaClusterServiceAccount:ClusterCustomerManagedResourcesGcpRedpandaClusterServiceAccount":{"properties":{"email":{"type":"string","description":"GCP service account email.\n"}},"type":"object","required":["email"]},"redpanda:index/ClusterCustomerManagedResourcesGcpSubnet:ClusterCustomerManagedResourcesGcpSubnet":{"properties":{"k8sMasterIpv4Range":{"type":"string","description":"Kubernetes Master IPv4 range, e.g. 10.0.0.0/24.\n"},"name":{"type":"string","description":"Subnet name.\n"},"secondaryIpv4RangePods":{"$ref":"#/types/redpanda:index%2FClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangePods:ClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangePods","description":"Secondary IPv4 range for pods.\n"},"secondaryIpv4RangeServices":{"$ref":"#/types/redpanda:index%2FClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangeServices:ClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangeServices","description":"Secondary IPv4 range for services.\n"}},"type":"object","required":["k8sMasterIpv4Range","name","secondaryIpv4RangePods","secondaryIpv4RangeServices"]},"redpanda:index/ClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangePods:ClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangePods":{"properties":{"name":{"type":"string","description":"Secondary IPv4 range name for pods.\n"}},"type":"object","required":["name"]},"redpanda:index/ClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangeServices:ClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangeServices":{"properties":{"name":{"type":"string","description":"Secondary IPv4 range name for services.\n"}},"type":"object","required":["name"]},"redpanda:index/ClusterCustomerManagedResourcesGcpTieredStorageBucket:ClusterCustomerManagedResourcesGcpTieredStorageBucket":{"properties":{"name":{"type":"string","description":"GCP storage bucket name.\n"}},"type":"object","required":["name"]},"redpanda:index/ClusterGcpPrivateServiceConnect:ClusterGcpPrivateServiceConnect":{"properties":{"consumerAcceptLists":{"type":"array","items":{"$ref":"#/types/redpanda:index%2FClusterGcpPrivateServiceConnectConsumerAcceptList:ClusterGcpPrivateServiceConnectConsumerAcceptList"},"description":"List of consumers that are allowed to connect to Redpanda GCP PSC (Private Service Connect) service attachment.\n"},"enabled":{"type":"boolean","description":"Whether Redpanda GCP Private Service Connect is enabled.\n"},"globalAccessEnabled":{"type":"boolean","description":"Whether global access is enabled.\n"},"status":{"$ref":"#/types/redpanda:index%2FClusterGcpPrivateServiceConnectStatus:ClusterGcpPrivateServiceConnectStatus","description":"Current status of the Private Service Connect configuration.\n"}},"type":"object","required":["consumerAcceptLists","enabled","globalAccessEnabled"],"language":{"nodejs":{"requiredOutputs":["consumerAcceptLists","enabled","globalAccessEnabled","status"]}}},"redpanda:index/ClusterGcpPrivateServiceConnectConsumerAcceptList:ClusterGcpPrivateServiceConnectConsumerAcceptList":{"properties":{"source":{"type":"string","description":"Either the GCP project number or its alphanumeric ID.\n"}},"type":"object","required":["source"]},"redpanda:index/ClusterGcpPrivateServiceConnectStatus:ClusterGcpPrivateServiceConnectStatus":{"properties":{"connectedEndpoints":{"type":"array","items":{"$ref":"#/types/redpanda:index%2FClusterGcpPrivateServiceConnectStatusConnectedEndpoint:ClusterGcpPrivateServiceConnectStatusConnectedEndpoint"},"description":"List of connected endpoints.\n"},"createdAt":{"type":"string","description":"When the Private Service Connect service was created.\n"},"deletedAt":{"type":"string","description":"When the Private Service Connect service was deleted.\n"},"dnsARecords":{"type":"array","items":{"type":"string"},"description":"DNS A records for the service.\n"},"kafkaApiNodeBasePort":{"type":"number","description":"Base port for Kafka API nodes.\n"},"kafkaApiSeedPort":{"type":"number","description":"Port for Kafka API seed brokers.\n"},"redpandaProxyNodeBasePort":{"type":"number","description":"Base port for HTTP proxy nodes.\n"},"redpandaProxySeedPort":{"type":"number","description":"Port for HTTP proxy.\n"},"schemaRegistrySeedPort":{"type":"number","description":"Port for Schema Registry.\n"},"seedHostname":{"type":"string","description":"Hostname for the seed brokers.\n"},"serviceAttachment":{"type":"string","description":"The service attachment identifier.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["connectedEndpoints","createdAt","deletedAt","dnsARecords","kafkaApiNodeBasePort","kafkaApiSeedPort","redpandaProxyNodeBasePort","redpandaProxySeedPort","schemaRegistrySeedPort","seedHostname","serviceAttachment"]}}},"redpanda:index/ClusterGcpPrivateServiceConnectStatusConnectedEndpoint:ClusterGcpPrivateServiceConnectStatusConnectedEndpoint":{"properties":{"connectionId":{"type":"string","description":"The connection ID.\n"},"consumerNetwork":{"type":"string","description":"The consumer network.\n"},"endpoint":{"type":"string","description":"The endpoint address.\n"},"status":{"type":"string","description":"Status of the endpoint connection.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["connectionId","consumerNetwork","endpoint","status"]}}},"redpanda:index/ClusterHttpProxy:ClusterHttpProxy":{"properties":{"mtls":{"$ref":"#/types/redpanda:index%2FClusterHttpProxyMtls:ClusterHttpProxyMtls","description":"mTLS configuration.\n"},"url":{"type":"string","description":"The HTTP Proxy URL.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["mtls","url"]}}},"redpanda:index/ClusterHttpProxyMtls:ClusterHttpProxyMtls":{"properties":{"caCertificatesPems":{"type":"array","items":{"type":"string"},"description":"CA certificate in PEM format.\n"},"enabled":{"type":"boolean","description":"Whether mTLS is enabled.\n"},"principalMappingRules":{"type":"array","items":{"type":"string"},"description":"Principal mapping rules for mTLS authentication. See the Redpanda documentation on configuring authentication.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enabled"]}}},"redpanda:index/ClusterKafkaApi:ClusterKafkaApi":{"properties":{"mtls":{"$ref":"#/types/redpanda:index%2FClusterKafkaApiMtls:ClusterKafkaApiMtls","description":"mTLS configuration.\n"},"seedBrokers":{"type":"array","items":{"type":"string"},"description":"List of Kafka broker addresses.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["mtls","seedBrokers"]}}},"redpanda:index/ClusterKafkaApiMtls:ClusterKafkaApiMtls":{"properties":{"caCertificatesPems":{"type":"array","items":{"type":"string"},"description":"CA certificate in PEM format.\n"},"enabled":{"type":"boolean","description":"Whether mTLS is enabled.\n"},"principalMappingRules":{"type":"array","items":{"type":"string"},"description":"Principal mapping rules for mTLS authentication. See the Redpanda documentation on configuring authentication.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enabled"]}}},"redpanda:index/ClusterKafkaConnect:ClusterKafkaConnect":{"properties":{"enabled":{"type":"boolean","description":"Whether Kafka Connect is enabled.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enabled"]}}},"redpanda:index/ClusterMaintenanceWindowConfig:ClusterMaintenanceWindowConfig":{"properties":{"anytime":{"type":"boolean","description":"If true, maintenance can occur at any time.\n"},"dayHour":{"$ref":"#/types/redpanda:index%2FClusterMaintenanceWindowConfigDayHour:ClusterMaintenanceWindowConfigDayHour"},"unspecified":{"type":"boolean","description":"If true, maintenance window is unspecified.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["unspecified"]}}},"redpanda:index/ClusterMaintenanceWindowConfigDayHour:ClusterMaintenanceWindowConfigDayHour":{"properties":{"dayOfWeek":{"type":"string","description":"Day of week.\n"},"hourOfDay":{"type":"number","description":"Hour of day.\n"}},"type":"object"},"redpanda:index/ClusterPrometheus:ClusterPrometheus":{"properties":{"url":{"type":"string","description":"The Prometheus metrics endpoint URL.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["url"]}}},"redpanda:index/ClusterRedpandaConsole:ClusterRedpandaConsole":{"properties":{"url":{"type":"string","description":"The Redpanda Console URL.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["url"]}}},"redpanda:index/ClusterSchemaRegistry:ClusterSchemaRegistry":{"properties":{"mtls":{"$ref":"#/types/redpanda:index%2FClusterSchemaRegistryMtls:ClusterSchemaRegistryMtls","description":"mTLS configuration.\n"},"url":{"type":"string","description":"The Schema Registry URL.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["url"]}}},"redpanda:index/ClusterSchemaRegistryMtls:ClusterSchemaRegistryMtls":{"properties":{"caCertificatesPems":{"type":"array","items":{"type":"string"},"description":"CA certificate in PEM format.\n"},"enabled":{"type":"boolean","description":"Whether mTLS is enabled.\n"},"principalMappingRules":{"type":"array","items":{"type":"string"},"description":"Principal mapping rules for mTLS authentication. See the Redpanda documentation on configuring authentication.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enabled"]}}},"redpanda:index/ClusterStateDescription:ClusterStateDescription":{"properties":{"code":{"type":"number","description":"Error code if cluster is in error state.\n"},"message":{"type":"string","description":"Detailed error message if cluster is in error state.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["code","message"]}}},"redpanda:index/ClusterTimeouts:ClusterTimeouts":{"properties":{"create":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n"},"delete":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.\n"},"update":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n"}},"type":"object"},"redpanda:index/NetworkCustomerManagedResources:NetworkCustomerManagedResources":{"properties":{"aws":{"$ref":"#/types/redpanda:index%2FNetworkCustomerManagedResourcesAws:NetworkCustomerManagedResourcesAws"},"gcp":{"$ref":"#/types/redpanda:index%2FNetworkCustomerManagedResourcesGcp:NetworkCustomerManagedResourcesGcp"}},"type":"object"},"redpanda:index/NetworkCustomerManagedResourcesAws:NetworkCustomerManagedResourcesAws":{"properties":{"dynamodbTable":{"$ref":"#/types/redpanda:index%2FNetworkCustomerManagedResourcesAwsDynamodbTable:NetworkCustomerManagedResourcesAwsDynamodbTable"},"managementBucket":{"$ref":"#/types/redpanda:index%2FNetworkCustomerManagedResourcesAwsManagementBucket:NetworkCustomerManagedResourcesAwsManagementBucket"},"privateSubnets":{"$ref":"#/types/redpanda:index%2FNetworkCustomerManagedResourcesAwsPrivateSubnets:NetworkCustomerManagedResourcesAwsPrivateSubnets"},"vpc":{"$ref":"#/types/redpanda:index%2FNetworkCustomerManagedResourcesAwsVpc:NetworkCustomerManagedResourcesAwsVpc"}},"type":"object","required":["dynamodbTable","managementBucket","privateSubnets","vpc"]},"redpanda:index/NetworkCustomerManagedResourcesAwsDynamodbTable:NetworkCustomerManagedResourcesAwsDynamodbTable":{"properties":{"arn":{"type":"string","description":"AWS DynamoDB table identifier\n"}},"type":"object","required":["arn"]},"redpanda:index/NetworkCustomerManagedResourcesAwsManagementBucket:NetworkCustomerManagedResourcesAwsManagementBucket":{"properties":{"arn":{"type":"string","description":"AWS storage bucket identifier\n"}},"type":"object","required":["arn"]},"redpanda:index/NetworkCustomerManagedResourcesAwsPrivateSubnets:NetworkCustomerManagedResourcesAwsPrivateSubnets":{"properties":{"arns":{"type":"array","items":{"type":"string"},"description":"AWS private subnet identifiers\n"}},"type":"object","required":["arns"]},"redpanda:index/NetworkCustomerManagedResourcesAwsVpc:NetworkCustomerManagedResourcesAwsVpc":{"properties":{"arn":{"type":"string","description":"AWS VPC identifier\n"}},"type":"object","required":["arn"]},"redpanda:index/NetworkCustomerManagedResourcesGcp:NetworkCustomerManagedResourcesGcp":{"properties":{"managementBucket":{"$ref":"#/types/redpanda:index%2FNetworkCustomerManagedResourcesGcpManagementBucket:NetworkCustomerManagedResourcesGcpManagementBucket"},"networkName":{"type":"string","description":"Name of user-created network where the Redpanda cluster is deployed\n"},"networkProjectId":{"type":"string","description":"GCP project ID where the network is created\n"}},"type":"object","required":["managementBucket","networkName","networkProjectId"]},"redpanda:index/NetworkCustomerManagedResourcesGcpManagementBucket:NetworkCustomerManagedResourcesGcpManagementBucket":{"properties":{"name":{"type":"string","description":"GCP storage bucket name for storing the state of Redpanda cluster deployment\n"}},"type":"object","required":["name"]},"redpanda:index/NetworkTimeouts:NetworkTimeouts":{"properties":{"create":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n"},"delete":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.\n"}},"type":"object"},"redpanda:index/PipelineResources:PipelineResources":{"properties":{"cpuShares":{"type":"string","description":"Amount of CPU to allocate for the pipeline.\n"},"memoryShares":{"type":"string","description":"Amount of memory to allocate for the pipeline.\n"}},"type":"object"},"redpanda:index/PipelineServiceAccount:PipelineServiceAccount":{"properties":{"clientId":{"type":"string","description":"The client ID for the service account.\n"},"clientSecret":{"type":"string"},"secretVersion":{"type":"number","description":"Version number for client_secret. Increment to trigger a secret update.\n"}},"type":"object","required":["clientId","clientSecret"]},"redpanda:index/PipelineTimeouts:PipelineTimeouts":{"properties":{"create":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n"},"delete":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.\n"},"update":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n"}},"type":"object"},"redpanda:index/SchemaReference:SchemaReference":{"properties":{"name":{"type":"string","description":"The name of the referenced schema.\n"},"subject":{"type":"string","description":"The subject of the referenced schema.\n"},"version":{"type":"number","description":"The version of the referenced schema.\n"}},"type":"object","required":["name","subject","version"]},"redpanda:index/ServerlessClusterDataplaneApi:ServerlessClusterDataplaneApi":{"properties":{"privateUrl":{"type":"string","description":"Private Dataplane API URL\n"},"url":{"type":"string","description":"Public Dataplane API URL\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["privateUrl","url"]}}},"redpanda:index/ServerlessClusterKafkaApi:ServerlessClusterKafkaApi":{"properties":{"privateSeedBrokers":{"type":"array","items":{"type":"string"},"description":"Private Kafka API seed brokers (bootstrap servers)\n"},"seedBrokers":{"type":"array","items":{"type":"string"},"description":"Public Kafka API seed brokers (bootstrap servers)\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["privateSeedBrokers","seedBrokers"]}}},"redpanda:index/ServerlessClusterNetworkingConfig:ServerlessClusterNetworkingConfig":{"properties":{"private":{"type":"string","description":"Private network state. Valid values: STATE*UNSPECIFIED, STATE*DISABLED, STATE_ENABLED\n"},"public":{"type":"string","description":"Public network state. Valid values: STATE*UNSPECIFIED, STATE*DISABLED, STATE_ENABLED\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["private","public"]}}},"redpanda:index/ServerlessClusterPrometheus:ServerlessClusterPrometheus":{"properties":{"privateUrl":{"type":"string","description":"Private Prometheus metrics URL\n"},"url":{"type":"string","description":"Public Prometheus metrics URL\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["privateUrl","url"]}}},"redpanda:index/ServerlessClusterSchemaRegistry:ServerlessClusterSchemaRegistry":{"properties":{"privateUrl":{"type":"string","description":"Private Schema Registry URL\n"},"url":{"type":"string","description":"Public Schema Registry URL\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["privateUrl","url"]}}},"redpanda:index/ServerlessPrivateLinkCloudProviderConfig:ServerlessPrivateLinkCloudProviderConfig":{"properties":{"aws":{"$ref":"#/types/redpanda:index%2FServerlessPrivateLinkCloudProviderConfigAws:ServerlessPrivateLinkCloudProviderConfigAws","description":"AWS-specific configuration. Required when cloud*provider is 'aws'.\n"}},"type":"object"},"redpanda:index/ServerlessPrivateLinkCloudProviderConfigAws:ServerlessPrivateLinkCloudProviderConfigAws":{"properties":{"allowedPrincipals":{"type":"array","items":{"type":"string"},"description":"AWS principals (ARNs) allowed to connect to the private link endpoint\n"}},"type":"object","required":["allowedPrincipals"]},"redpanda:index/ServerlessPrivateLinkStatus:ServerlessPrivateLinkStatus":{"properties":{"aws":{"$ref":"#/types/redpanda:index%2FServerlessPrivateLinkStatusAws:ServerlessPrivateLinkStatusAws","description":"AWS-specific status information\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["aws"]}}},"redpanda:index/ServerlessPrivateLinkStatusAws:ServerlessPrivateLinkStatusAws":{"properties":{"availabilityZones":{"type":"array","items":{"type":"string"},"description":"Availability zones where the private link endpoint service is available\n"},"vpcEndpointServiceName":{"type":"string","description":"VPC endpoint service name for connecting to the private link\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["availabilityZones","vpcEndpointServiceName"]}}},"redpanda:index/getClusterAwsPrivateLink:getClusterAwsPrivateLink":{"properties":{"allowedPrincipals":{"type":"array","items":{"type":"string"},"description":"The ARN of the principals that can access the Redpanda AWS PrivateLink Endpoint Service.\n"},"connectConsole":{"type":"boolean","description":"Whether Console is connected via PrivateLink.\n"},"enabled":{"type":"boolean","description":"Whether AWS PrivateLink is enabled.\n"},"status":{"$ref":"#/types/redpanda:index%2FgetClusterAwsPrivateLinkStatus:getClusterAwsPrivateLinkStatus","description":"Current status of the PrivateLink configuration.\n"}},"type":"object","required":["allowedPrincipals","connectConsole","enabled","status"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterAwsPrivateLinkStatus:getClusterAwsPrivateLinkStatus":{"properties":{"consolePort":{"type":"number","description":"Port for Redpanda Console.\n"},"createdAt":{"type":"string","description":"When the PrivateLink service was created.\n"},"deletedAt":{"type":"string","description":"When the PrivateLink service was deleted.\n"},"kafkaApiNodeBasePort":{"type":"number","description":"Base port for Kafka API nodes.\n"},"kafkaApiSeedPort":{"type":"number","description":"Port for Kafka API seed brokers.\n"},"redpandaProxyNodeBasePort":{"type":"number","description":"Base port for HTTP proxy nodes.\n"},"redpandaProxySeedPort":{"type":"number","description":"Port for HTTP proxy.\n"},"schemaRegistrySeedPort":{"type":"number","description":"Port for Schema Registry.\n"},"serviceId":{"type":"string","description":"The PrivateLink service ID.\n"},"serviceName":{"type":"string","description":"The PrivateLink service name.\n"},"serviceState":{"type":"string","description":"Current state of the PrivateLink service.\n"},"vpcEndpointConnections":{"type":"array","items":{"$ref":"#/types/redpanda:index%2FgetClusterAwsPrivateLinkStatusVpcEndpointConnection:getClusterAwsPrivateLinkStatusVpcEndpointConnection"},"description":"List of VPC endpoint connections.\n"}},"type":"object","required":["consolePort","createdAt","deletedAt","kafkaApiNodeBasePort","kafkaApiSeedPort","redpandaProxyNodeBasePort","redpandaProxySeedPort","schemaRegistrySeedPort","serviceId","serviceName","serviceState","vpcEndpointConnections"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterAwsPrivateLinkStatusVpcEndpointConnection:getClusterAwsPrivateLinkStatusVpcEndpointConnection":{"properties":{"connectionId":{"type":"string","description":"The connection ID.\n"},"createdAt":{"type":"string","description":"When the endpoint connection was created.\n"},"dnsEntries":{"type":"array","items":{"$ref":"#/types/redpanda:index%2FgetClusterAwsPrivateLinkStatusVpcEndpointConnectionDnsEntry:getClusterAwsPrivateLinkStatusVpcEndpointConnectionDnsEntry"},"description":"DNS entries for the endpoint.\n"},"id":{"type":"string","description":"The endpoint connection ID.\n"},"loadBalancerArns":{"type":"array","items":{"type":"string"},"description":"ARNs of associated load balancers.\n"},"owner":{"type":"string","description":"Owner of the endpoint connection.\n"},"state":{"type":"string","description":"State of the endpoint connection.\n"}},"type":"object","required":["connectionId","createdAt","dnsEntries","id","loadBalancerArns","owner","state"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterAwsPrivateLinkStatusVpcEndpointConnectionDnsEntry:getClusterAwsPrivateLinkStatusVpcEndpointConnectionDnsEntry":{"properties":{"dnsName":{"type":"string","description":"The DNS name.\n"},"hostedZoneId":{"type":"string","description":"The hosted zone ID.\n"}},"type":"object","required":["dnsName","hostedZoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterAzurePrivateLink:getClusterAzurePrivateLink":{"properties":{"allowedSubscriptions":{"type":"array","items":{"type":"string"},"description":"The subscriptions that can access the Redpanda Azure PrivateLink Endpoint Service.\n"},"connectConsole":{"type":"boolean","description":"Whether Console is connected in Redpanda Azure Private Link Service.\n"},"enabled":{"type":"boolean","description":"Whether Redpanda Azure Private Link Endpoint Service is enabled.\n"},"status":{"$ref":"#/types/redpanda:index%2FgetClusterAzurePrivateLinkStatus:getClusterAzurePrivateLinkStatus","description":"Current status of the Private Link configuration.\n"}},"type":"object","required":["allowedSubscriptions","connectConsole","enabled","status"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterAzurePrivateLinkStatus:getClusterAzurePrivateLinkStatus":{"properties":{"approvedSubscriptions":{"type":"array","items":{"type":"string"},"description":"List of approved Azure subscription IDs.\n"},"consolePort":{"type":"number","description":"Port for Redpanda Console.\n"},"createdAt":{"type":"string","description":"When the Private Link service was created.\n"},"deletedAt":{"type":"string","description":"When the Private Link service was deleted.\n"},"dnsARecord":{"type":"string","description":"DNS A record for the service.\n"},"kafkaApiNodeBasePort":{"type":"number","description":"Base port for Kafka API nodes.\n"},"kafkaApiSeedPort":{"type":"number","description":"Port for Kafka API seed brokers.\n"},"privateEndpointConnections":{"type":"array","items":{"$ref":"#/types/redpanda:index%2FgetClusterAzurePrivateLinkStatusPrivateEndpointConnection:getClusterAzurePrivateLinkStatusPrivateEndpointConnection"},"description":"List of private endpoint connections.\n"},"redpandaProxyNodeBasePort":{"type":"number","description":"Base port for HTTP proxy nodes.\n"},"redpandaProxySeedPort":{"type":"number","description":"Port for HTTP proxy.\n"},"schemaRegistrySeedPort":{"type":"number","description":"Port for Schema Registry.\n"},"serviceId":{"type":"string","description":"The Private Link service ID.\n"},"serviceName":{"type":"string","description":"The Private Link service name.\n"}},"type":"object","required":["approvedSubscriptions","consolePort","createdAt","deletedAt","dnsARecord","kafkaApiNodeBasePort","kafkaApiSeedPort","privateEndpointConnections","redpandaProxyNodeBasePort","redpandaProxySeedPort","schemaRegistrySeedPort","serviceId","serviceName"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterAzurePrivateLinkStatusPrivateEndpointConnection:getClusterAzurePrivateLinkStatusPrivateEndpointConnection":{"properties":{"connectionId":{"type":"string","description":"ID of the connection.\n"},"connectionName":{"type":"string","description":"Name of the connection.\n"},"createdAt":{"type":"string","description":"When the endpoint connection was created.\n"},"privateEndpointId":{"type":"string","description":"ID of the private endpoint.\n"},"privateEndpointName":{"type":"string","description":"Name of the private endpoint.\n"},"status":{"type":"string","description":"Status of the endpoint connection.\n"}},"type":"object","required":["connectionId","connectionName","createdAt","privateEndpointId","privateEndpointName","status"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterClusterConfiguration:getClusterClusterConfiguration":{"properties":{"customPropertiesJson":{"type":"string","description":"Custom properties for the cluster in JSON format.\n"}},"type":"object","required":["customPropertiesJson"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterCustomerManagedResources:getClusterCustomerManagedResources":{"properties":{"aws":{"$ref":"#/types/redpanda:index%2FgetClusterCustomerManagedResourcesAws:getClusterCustomerManagedResourcesAws"},"gcp":{"$ref":"#/types/redpanda:index%2FgetClusterCustomerManagedResourcesGcp:getClusterCustomerManagedResourcesGcp"}},"type":"object","required":["aws","gcp"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterCustomerManagedResourcesAws:getClusterCustomerManagedResourcesAws":{"properties":{"agentInstanceProfile":{"$ref":"#/types/redpanda:index%2FgetClusterCustomerManagedResourcesAwsAgentInstanceProfile:getClusterCustomerManagedResourcesAwsAgentInstanceProfile"},"cloudStorageBucket":{"$ref":"#/types/redpanda:index%2FgetClusterCustomerManagedResourcesAwsCloudStorageBucket:getClusterCustomerManagedResourcesAwsCloudStorageBucket"},"clusterSecurityGroup":{"$ref":"#/types/redpanda:index%2FgetClusterCustomerManagedResourcesAwsClusterSecurityGroup:getClusterCustomerManagedResourcesAwsClusterSecurityGroup"},"connectorsNodeGroupInstanceProfile":{"$ref":"#/types/redpanda:index%2FgetClusterCustomerManagedResourcesAwsConnectorsNodeGroupInstanceProfile:getClusterCustomerManagedResourcesAwsConnectorsNodeGroupInstanceProfile"},"connectorsSecurityGroup":{"$ref":"#/types/redpanda:index%2FgetClusterCustomerManagedResourcesAwsConnectorsSecurityGroup:getClusterCustomerManagedResourcesAwsConnectorsSecurityGroup"},"k8sClusterRole":{"$ref":"#/types/redpanda:index%2FgetClusterCustomerManagedResourcesAwsK8sClusterRole:getClusterCustomerManagedResourcesAwsK8sClusterRole"},"nodeSecurityGroup":{"$ref":"#/types/redpanda:index%2FgetClusterCustomerManagedResourcesAwsNodeSecurityGroup:getClusterCustomerManagedResourcesAwsNodeSecurityGroup"},"permissionsBoundaryPolicy":{"$ref":"#/types/redpanda:index%2FgetClusterCustomerManagedResourcesAwsPermissionsBoundaryPolicy:getClusterCustomerManagedResourcesAwsPermissionsBoundaryPolicy"},"redpandaAgentSecurityGroup":{"$ref":"#/types/redpanda:index%2FgetClusterCustomerManagedResourcesAwsRedpandaAgentSecurityGroup:getClusterCustomerManagedResourcesAwsRedpandaAgentSecurityGroup"},"redpandaNodeGroupInstanceProfile":{"$ref":"#/types/redpanda:index%2FgetClusterCustomerManagedResourcesAwsRedpandaNodeGroupInstanceProfile:getClusterCustomerManagedResourcesAwsRedpandaNodeGroupInstanceProfile"},"redpandaNodeGroupSecurityGroup":{"$ref":"#/types/redpanda:index%2FgetClusterCustomerManagedResourcesAwsRedpandaNodeGroupSecurityGroup:getClusterCustomerManagedResourcesAwsRedpandaNodeGroupSecurityGroup"},"utilityNodeGroupInstanceProfile":{"$ref":"#/types/redpanda:index%2FgetClusterCustomerManagedResourcesAwsUtilityNodeGroupInstanceProfile:getClusterCustomerManagedResourcesAwsUtilityNodeGroupInstanceProfile"},"utilitySecurityGroup":{"$ref":"#/types/redpanda:index%2FgetClusterCustomerManagedResourcesAwsUtilitySecurityGroup:getClusterCustomerManagedResourcesAwsUtilitySecurityGroup"}},"type":"object","required":["agentInstanceProfile","cloudStorageBucket","clusterSecurityGroup","connectorsNodeGroupInstanceProfile","connectorsSecurityGroup","k8sClusterRole","nodeSecurityGroup","permissionsBoundaryPolicy","redpandaAgentSecurityGroup","redpandaNodeGroupInstanceProfile","redpandaNodeGroupSecurityGroup","utilityNodeGroupInstanceProfile","utilitySecurityGroup"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterCustomerManagedResourcesAwsAgentInstanceProfile:getClusterCustomerManagedResourcesAwsAgentInstanceProfile":{"properties":{"arn":{"type":"string","description":"ARN for the agent instance profile\n"}},"type":"object","required":["arn"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterCustomerManagedResourcesAwsCloudStorageBucket:getClusterCustomerManagedResourcesAwsCloudStorageBucket":{"properties":{"arn":{"type":"string","description":"ARN for the cloud storage bucket\n"}},"type":"object","required":["arn"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterCustomerManagedResourcesAwsClusterSecurityGroup:getClusterCustomerManagedResourcesAwsClusterSecurityGroup":{"properties":{"arn":{"type":"string","description":"ARN for the cluster security group\n"}},"type":"object","required":["arn"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterCustomerManagedResourcesAwsConnectorsNodeGroupInstanceProfile:getClusterCustomerManagedResourcesAwsConnectorsNodeGroupInstanceProfile":{"properties":{"arn":{"type":"string","description":"ARN for the connectors node group instance profile\n"}},"type":"object","required":["arn"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterCustomerManagedResourcesAwsConnectorsSecurityGroup:getClusterCustomerManagedResourcesAwsConnectorsSecurityGroup":{"properties":{"arn":{"type":"string","description":"ARN for the connectors security group\n"}},"type":"object","required":["arn"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterCustomerManagedResourcesAwsK8sClusterRole:getClusterCustomerManagedResourcesAwsK8sClusterRole":{"properties":{"arn":{"type":"string","description":"ARN for the Kubernetes cluster role\n"}},"type":"object","required":["arn"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterCustomerManagedResourcesAwsNodeSecurityGroup:getClusterCustomerManagedResourcesAwsNodeSecurityGroup":{"properties":{"arn":{"type":"string","description":"ARN for the node security group\n"}},"type":"object","required":["arn"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterCustomerManagedResourcesAwsPermissionsBoundaryPolicy:getClusterCustomerManagedResourcesAwsPermissionsBoundaryPolicy":{"properties":{"arn":{"type":"string","description":"ARN for the permissions boundary policy\n"}},"type":"object","required":["arn"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterCustomerManagedResourcesAwsRedpandaAgentSecurityGroup:getClusterCustomerManagedResourcesAwsRedpandaAgentSecurityGroup":{"properties":{"arn":{"type":"string","description":"ARN for the redpanda agent security group\n"}},"type":"object","required":["arn"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterCustomerManagedResourcesAwsRedpandaNodeGroupInstanceProfile:getClusterCustomerManagedResourcesAwsRedpandaNodeGroupInstanceProfile":{"properties":{"arn":{"type":"string","description":"ARN for the redpanda node group instance profile\n"}},"type":"object","required":["arn"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterCustomerManagedResourcesAwsRedpandaNodeGroupSecurityGroup:getClusterCustomerManagedResourcesAwsRedpandaNodeGroupSecurityGroup":{"properties":{"arn":{"type":"string","description":"ARN for the redpanda node group security group\n"}},"type":"object","required":["arn"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterCustomerManagedResourcesAwsUtilityNodeGroupInstanceProfile:getClusterCustomerManagedResourcesAwsUtilityNodeGroupInstanceProfile":{"properties":{"arn":{"type":"string","description":"ARN for the utility node group instance profile\n"}},"type":"object","required":["arn"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterCustomerManagedResourcesAwsUtilitySecurityGroup:getClusterCustomerManagedResourcesAwsUtilitySecurityGroup":{"properties":{"arn":{"type":"string","description":"ARN for the utility security group\n"}},"type":"object","required":["arn"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterCustomerManagedResourcesGcp:getClusterCustomerManagedResourcesGcp":{"properties":{"agentServiceAccount":{"$ref":"#/types/redpanda:index%2FgetClusterCustomerManagedResourcesGcpAgentServiceAccount:getClusterCustomerManagedResourcesGcpAgentServiceAccount","description":"GCP service account for the agent.\n"},"connectorServiceAccount":{"$ref":"#/types/redpanda:index%2FgetClusterCustomerManagedResourcesGcpConnectorServiceAccount:getClusterCustomerManagedResourcesGcpConnectorServiceAccount","description":"GCP service account for managed connectors.\n"},"consoleServiceAccount":{"$ref":"#/types/redpanda:index%2FgetClusterCustomerManagedResourcesGcpConsoleServiceAccount:getClusterCustomerManagedResourcesGcpConsoleServiceAccount","description":"GCP service account for Redpanda Console.\n"},"gkeServiceAccount":{"$ref":"#/types/redpanda:index%2FgetClusterCustomerManagedResourcesGcpGkeServiceAccount:getClusterCustomerManagedResourcesGcpGkeServiceAccount","description":"GCP service account for GCP Kubernetes Engine (GKE).\n"},"pscNatSubnetName":{"type":"string","description":"NAT subnet name if GCP Private Service Connect is enabled.\n"},"redpandaClusterServiceAccount":{"$ref":"#/types/redpanda:index%2FgetClusterCustomerManagedResourcesGcpRedpandaClusterServiceAccount:getClusterCustomerManagedResourcesGcpRedpandaClusterServiceAccount","description":"GCP service account for the Redpanda cluster.\n"},"subnet":{"$ref":"#/types/redpanda:index%2FgetClusterCustomerManagedResourcesGcpSubnet:getClusterCustomerManagedResourcesGcpSubnet","description":"GCP subnet where Redpanda cluster is deployed.\n"},"tieredStorageBucket":{"$ref":"#/types/redpanda:index%2FgetClusterCustomerManagedResourcesGcpTieredStorageBucket:getClusterCustomerManagedResourcesGcpTieredStorageBucket","description":"GCP storage bucket for Tiered storage.\n"}},"type":"object","required":["agentServiceAccount","connectorServiceAccount","consoleServiceAccount","gkeServiceAccount","pscNatSubnetName","redpandaClusterServiceAccount","subnet","tieredStorageBucket"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterCustomerManagedResourcesGcpAgentServiceAccount:getClusterCustomerManagedResourcesGcpAgentServiceAccount":{"properties":{"email":{"type":"string","description":"GCP service account email.\n"}},"type":"object","required":["email"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterCustomerManagedResourcesGcpConnectorServiceAccount:getClusterCustomerManagedResourcesGcpConnectorServiceAccount":{"properties":{"email":{"type":"string","description":"GCP service account email.\n"}},"type":"object","required":["email"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterCustomerManagedResourcesGcpConsoleServiceAccount:getClusterCustomerManagedResourcesGcpConsoleServiceAccount":{"properties":{"email":{"type":"string","description":"GCP service account email.\n"}},"type":"object","required":["email"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterCustomerManagedResourcesGcpGkeServiceAccount:getClusterCustomerManagedResourcesGcpGkeServiceAccount":{"properties":{"email":{"type":"string","description":"GCP service account email.\n"}},"type":"object","required":["email"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterCustomerManagedResourcesGcpRedpandaClusterServiceAccount:getClusterCustomerManagedResourcesGcpRedpandaClusterServiceAccount":{"properties":{"email":{"type":"string","description":"GCP service account email.\n"}},"type":"object","required":["email"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterCustomerManagedResourcesGcpSubnet:getClusterCustomerManagedResourcesGcpSubnet":{"properties":{"k8sMasterIpv4Range":{"type":"string","description":"Kubernetes Master IPv4 range, e.g. 10.0.0.0/24.\n"},"name":{"type":"string","description":"Subnet name.\n"},"secondaryIpv4RangePods":{"$ref":"#/types/redpanda:index%2FgetClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangePods:getClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangePods","description":"Secondary IPv4 range for pods.\n"},"secondaryIpv4RangeServices":{"$ref":"#/types/redpanda:index%2FgetClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangeServices:getClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangeServices","description":"Secondary IPv4 range for services.\n"}},"type":"object","required":["k8sMasterIpv4Range","name","secondaryIpv4RangePods","secondaryIpv4RangeServices"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangePods:getClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangePods":{"properties":{"name":{"type":"string","description":"Secondary IPv4 range name for pods.\n"}},"type":"object","required":["name"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangeServices:getClusterCustomerManagedResourcesGcpSubnetSecondaryIpv4RangeServices":{"properties":{"name":{"type":"string","description":"Secondary IPv4 range name for services.\n"}},"type":"object","required":["name"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterCustomerManagedResourcesGcpTieredStorageBucket:getClusterCustomerManagedResourcesGcpTieredStorageBucket":{"properties":{"name":{"type":"string","description":"GCP storage bucket name.\n"}},"type":"object","required":["name"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterGcpPrivateServiceConnect:getClusterGcpPrivateServiceConnect":{"properties":{"consumerAcceptLists":{"type":"array","items":{"$ref":"#/types/redpanda:index%2FgetClusterGcpPrivateServiceConnectConsumerAcceptList:getClusterGcpPrivateServiceConnectConsumerAcceptList"},"description":"List of consumers that are allowed to connect to Redpanda GCP PSC service attachment.\n"},"enabled":{"type":"boolean","description":"Whether Redpanda GCP Private Service Connect is enabled.\n"},"globalAccessEnabled":{"type":"boolean","description":"Whether global access is enabled.\n"},"status":{"$ref":"#/types/redpanda:index%2FgetClusterGcpPrivateServiceConnectStatus:getClusterGcpPrivateServiceConnectStatus","description":"Current status of the Private Service Connect configuration.\n"}},"type":"object","required":["consumerAcceptLists","enabled","globalAccessEnabled","status"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterGcpPrivateServiceConnectConsumerAcceptList:getClusterGcpPrivateServiceConnectConsumerAcceptList":{"properties":{"source":{"type":"string","description":"Either the GCP project number or its alphanumeric ID.\n"}},"type":"object","required":["source"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterGcpPrivateServiceConnectStatus:getClusterGcpPrivateServiceConnectStatus":{"properties":{"connectedEndpoints":{"type":"array","items":{"$ref":"#/types/redpanda:index%2FgetClusterGcpPrivateServiceConnectStatusConnectedEndpoint:getClusterGcpPrivateServiceConnectStatusConnectedEndpoint"},"description":"List of connected endpoints.\n"},"createdAt":{"type":"string","description":"When the Private Service Connect service was created.\n"},"deletedAt":{"type":"string","description":"When the Private Service Connect service was deleted.\n"},"dnsARecords":{"type":"array","items":{"type":"string"},"description":"DNS A records for the service.\n"},"kafkaApiNodeBasePort":{"type":"number","description":"Base port for Kafka API nodes.\n"},"kafkaApiSeedPort":{"type":"number","description":"Port for Kafka API seed brokers.\n"},"redpandaProxyNodeBasePort":{"type":"number","description":"Base port for HTTP proxy nodes.\n"},"redpandaProxySeedPort":{"type":"number","description":"Port for HTTP proxy.\n"},"schemaRegistrySeedPort":{"type":"number","description":"Port for Schema Registry.\n"},"seedHostname":{"type":"string","description":"Hostname for the seed brokers.\n"},"serviceAttachment":{"type":"string","description":"The service attachment identifier.\n"}},"type":"object","required":["connectedEndpoints","createdAt","deletedAt","dnsARecords","kafkaApiNodeBasePort","kafkaApiSeedPort","redpandaProxyNodeBasePort","redpandaProxySeedPort","schemaRegistrySeedPort","seedHostname","serviceAttachment"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterGcpPrivateServiceConnectStatusConnectedEndpoint:getClusterGcpPrivateServiceConnectStatusConnectedEndpoint":{"properties":{"connectionId":{"type":"string","description":"The connection ID.\n"},"consumerNetwork":{"type":"string","description":"The consumer network.\n"},"endpoint":{"type":"string","description":"The endpoint address.\n"},"status":{"type":"string","description":"Status of the endpoint connection.\n"}},"type":"object","required":["connectionId","consumerNetwork","endpoint","status"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterHttpProxy:getClusterHttpProxy":{"properties":{"mtls":{"$ref":"#/types/redpanda:index%2FgetClusterHttpProxyMtls:getClusterHttpProxyMtls","description":"mTLS configuration.\n"},"url":{"type":"string","description":"The HTTP Proxy URL.\n"}},"type":"object","required":["mtls","url"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterHttpProxyMtls:getClusterHttpProxyMtls":{"properties":{"caCertificatesPems":{"type":"array","items":{"type":"string"},"description":"CA certificate in PEM format.\n"},"enabled":{"type":"boolean","description":"Whether mTLS is enabled.\n"},"principalMappingRules":{"type":"array","items":{"type":"string"},"description":"Principal mapping rules for mTLS authentication.\n"}},"type":"object","required":["caCertificatesPems","enabled","principalMappingRules"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterKafkaApi:getClusterKafkaApi":{"properties":{"mtls":{"$ref":"#/types/redpanda:index%2FgetClusterKafkaApiMtls:getClusterKafkaApiMtls","description":"mTLS configuration.\n"},"seedBrokers":{"type":"array","items":{"type":"string"},"description":"List of Kafka broker addresses.\n"}},"type":"object","required":["mtls","seedBrokers"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterKafkaApiMtls:getClusterKafkaApiMtls":{"properties":{"caCertificatesPems":{"type":"array","items":{"type":"string"},"description":"CA certificate in PEM format.\n"},"enabled":{"type":"boolean","description":"Whether mTLS is enabled.\n"},"principalMappingRules":{"type":"array","items":{"type":"string"},"description":"Principal mapping rules for mTLS authentication.\n"}},"type":"object","required":["caCertificatesPems","enabled","principalMappingRules"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterKafkaConnect:getClusterKafkaConnect":{"properties":{"enabled":{"type":"boolean","description":"Whether Kafka Connect is enabled.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterMaintenanceWindowConfig:getClusterMaintenanceWindowConfig":{"properties":{"anytime":{"type":"boolean","description":"If true, maintenance can occur at any time.\n"},"dayHour":{"$ref":"#/types/redpanda:index%2FgetClusterMaintenanceWindowConfigDayHour:getClusterMaintenanceWindowConfigDayHour"},"unspecified":{"type":"boolean","description":"If true, maintenance window is unspecified.\n"}},"type":"object","required":["anytime","dayHour","unspecified"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterMaintenanceWindowConfigDayHour:getClusterMaintenanceWindowConfigDayHour":{"properties":{"dayOfWeek":{"type":"string","description":"Day of week.\n"},"hourOfDay":{"type":"number","description":"Hour of day.\n"}},"type":"object","required":["dayOfWeek","hourOfDay"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterPrometheus:getClusterPrometheus":{"properties":{"url":{"type":"string","description":"The Prometheus metrics endpoint URL.\n"}},"type":"object","required":["url"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterRedpandaConsole:getClusterRedpandaConsole":{"properties":{"url":{"type":"string","description":"The Redpanda Console URL.\n"}},"type":"object","required":["url"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterSchemaRegistry:getClusterSchemaRegistry":{"properties":{"mtls":{"$ref":"#/types/redpanda:index%2FgetClusterSchemaRegistryMtls:getClusterSchemaRegistryMtls","description":"mTLS configuration.\n"},"url":{"type":"string","description":"The Schema Registry URL.\n"}},"type":"object","required":["mtls","url"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterSchemaRegistryMtls:getClusterSchemaRegistryMtls":{"properties":{"caCertificatesPems":{"type":"array","items":{"type":"string"},"description":"CA certificate in PEM format.\n"},"enabled":{"type":"boolean","description":"Whether mTLS is enabled.\n"},"principalMappingRules":{"type":"array","items":{"type":"string"},"description":"Principal mapping rules for mTLS authentication.\n"}},"type":"object","required":["caCertificatesPems","enabled","principalMappingRules"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterStateDescription:getClusterStateDescription":{"properties":{"code":{"type":"number","description":"Error code if cluster is in error state.\n"},"message":{"type":"string","description":"Detailed error message if cluster is in error state.\n"}},"type":"object","required":["code","message"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getClusterTimeouts:getClusterTimeouts":{"properties":{"read":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n"}},"type":"object"},"redpanda:index/getNetworkCustomerManagedResources:getNetworkCustomerManagedResources":{"properties":{"aws":{"$ref":"#/types/redpanda:index%2FgetNetworkCustomerManagedResourcesAws:getNetworkCustomerManagedResourcesAws"},"gcp":{"$ref":"#/types/redpanda:index%2FgetNetworkCustomerManagedResourcesGcp:getNetworkCustomerManagedResourcesGcp"}},"type":"object","required":["aws","gcp"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getNetworkCustomerManagedResourcesAws:getNetworkCustomerManagedResourcesAws":{"properties":{"dynamodbTable":{"$ref":"#/types/redpanda:index%2FgetNetworkCustomerManagedResourcesAwsDynamodbTable:getNetworkCustomerManagedResourcesAwsDynamodbTable"},"managementBucket":{"$ref":"#/types/redpanda:index%2FgetNetworkCustomerManagedResourcesAwsManagementBucket:getNetworkCustomerManagedResourcesAwsManagementBucket"},"privateSubnets":{"$ref":"#/types/redpanda:index%2FgetNetworkCustomerManagedResourcesAwsPrivateSubnets:getNetworkCustomerManagedResourcesAwsPrivateSubnets"},"vpc":{"$ref":"#/types/redpanda:index%2FgetNetworkCustomerManagedResourcesAwsVpc:getNetworkCustomerManagedResourcesAwsVpc"}},"type":"object","required":["dynamodbTable","managementBucket","privateSubnets","vpc"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getNetworkCustomerManagedResourcesAwsDynamodbTable:getNetworkCustomerManagedResourcesAwsDynamodbTable":{"properties":{"arn":{"type":"string","description":"AWS DynamoDB table identifier\n"}},"type":"object","required":["arn"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getNetworkCustomerManagedResourcesAwsManagementBucket:getNetworkCustomerManagedResourcesAwsManagementBucket":{"properties":{"arn":{"type":"string","description":"AWS storage bucket identifier\n"}},"type":"object","required":["arn"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getNetworkCustomerManagedResourcesAwsPrivateSubnets:getNetworkCustomerManagedResourcesAwsPrivateSubnets":{"properties":{"arns":{"type":"array","items":{"type":"string"},"description":"AWS private subnet identifiers\n"}},"type":"object","required":["arns"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getNetworkCustomerManagedResourcesAwsVpc:getNetworkCustomerManagedResourcesAwsVpc":{"properties":{"arn":{"type":"string","description":"AWS VPC identifier\n"}},"type":"object","required":["arn"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getNetworkCustomerManagedResourcesGcp:getNetworkCustomerManagedResourcesGcp":{"properties":{"managementBucket":{"$ref":"#/types/redpanda:index%2FgetNetworkCustomerManagedResourcesGcpManagementBucket:getNetworkCustomerManagedResourcesGcpManagementBucket"},"networkName":{"type":"string","description":"Name of user-created network where the Redpanda cluster is deployed\n"},"networkProjectId":{"type":"string","description":"GCP project ID where the network is created\n"}},"type":"object","required":["managementBucket","networkName","networkProjectId"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getNetworkCustomerManagedResourcesGcpManagementBucket:getNetworkCustomerManagedResourcesGcpManagementBucket":{"properties":{"name":{"type":"string","description":"GCP storage bucket name for storing the state of Redpanda cluster deployment\n"}},"type":"object","required":["name"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getRegionsRegion:getRegionsRegion":{"properties":{"name":{"type":"string","description":"Name of the region\n"},"zones":{"type":"array","items":{"type":"string"},"description":"Zones available in the region\n"}},"type":"object","required":["name","zones"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getSchemaReference:getSchemaReference":{"properties":{"name":{"type":"string","description":"The name of the referenced schema.\n"},"subject":{"type":"string","description":"The subject of the referenced schema.\n"},"version":{"type":"number","description":"The version of the referenced schema.\n"}},"type":"object","required":["name","subject","version"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getServerlessRegionsServerlessRegion:getServerlessRegionsServerlessRegion":{"properties":{"cloudProvider":{"type":"string","description":"Cloud provider where the serverless regions exist\n"},"name":{"type":"string","description":"Name of the serverless region\n"},"placement":{"$ref":"#/types/redpanda:index%2FgetServerlessRegionsServerlessRegionPlacement:getServerlessRegionsServerlessRegionPlacement"},"timeZone":{"type":"string","description":"Time zone of the serverless region\n"}},"type":"object","required":["cloudProvider","name","placement","timeZone"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getServerlessRegionsServerlessRegionPlacement:getServerlessRegionsServerlessRegionPlacement":{"properties":{"enabled":{"type":"boolean","description":"Region available\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"redpanda:index/getThroughputTiersThroughputTier:getThroughputTiersThroughputTier":{"properties":{"cloudProvider":{"type":"string","description":"Cloud provider where the Throughput Tier is available\n"},"displayName":{"type":"string","description":"Display name of the Throughput Tier\n"},"name":{"type":"string","description":"Unique name of the Throughput Tier\n"}},"type":"object","required":["cloudProvider","displayName","name"],"language":{"nodejs":{"requiredInputs":[]}}}},"provider":{"description":"The provider type for the redpanda package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n","properties":{"accessToken":{"type":"string","description":"Redpanda client token. You need either \u003cspan pulumi-lang-nodejs=\"`accessToken`\" pulumi-lang-dotnet=\"`AccessToken`\" pulumi-lang-go=\"`accessToken`\" pulumi-lang-python=\"`access_token`\" pulumi-lang-yaml=\"`accessToken`\" pulumi-lang-java=\"`accessToken`\"\u003e`access_token`\u003c/span\u003e, or both \u003cspan pulumi-lang-nodejs=\"`clientId`\" pulumi-lang-dotnet=\"`ClientId`\" pulumi-lang-go=\"`clientId`\" pulumi-lang-python=\"`client_id`\" pulumi-lang-yaml=\"`clientId`\" pulumi-lang-java=\"`clientId`\"\u003e`client_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`clientSecret`\" pulumi-lang-dotnet=\"`ClientSecret`\" pulumi-lang-go=\"`clientSecret`\" pulumi-lang-python=\"`client_secret`\" pulumi-lang-yaml=\"`clientSecret`\" pulumi-lang-java=\"`clientSecret`\"\u003e`client_secret`\u003c/span\u003e to use this provider. Can also be set with the `REDPANDA_ACCESS_TOKEN` environment variable.","secret":true},"azureClientId":{"type":"string","description":"Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as AZURE_CLIENT_ID or ARM_CLIENT_ID"},"azureClientSecret":{"type":"string","description":"Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as AZURE_CLIENT_SECRET or ARM_CLIENT_SECRET","secret":true},"azureSubscriptionId":{"type":"string","description":"The default Azure Subscription ID which should be used for Redpanda BYOC clusters. If another subscription is specified on a resource, it will take precedence. This can also be sourced from the `ARM_SUBSCRIPTION_ID` environment variable."},"azureTenantId":{"type":"string","description":"Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as AZURE_TENANT_ID or ARM_TENANT_ID"},"clientId":{"type":"string","description":"The ID for the client. You need either \u003cspan pulumi-lang-nodejs=\"`clientId`\" pulumi-lang-dotnet=\"`ClientId`\" pulumi-lang-go=\"`clientId`\" pulumi-lang-python=\"`client_id`\" pulumi-lang-yaml=\"`clientId`\" pulumi-lang-java=\"`clientId`\"\u003e`client_id`\u003c/span\u003e AND \u003cspan pulumi-lang-nodejs=\"`clientSecret`\" pulumi-lang-dotnet=\"`ClientSecret`\" pulumi-lang-go=\"`clientSecret`\" pulumi-lang-python=\"`client_secret`\" pulumi-lang-yaml=\"`clientSecret`\" pulumi-lang-java=\"`clientSecret`\"\u003e`client_secret`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`accessToken`\" pulumi-lang-dotnet=\"`AccessToken`\" pulumi-lang-go=\"`accessToken`\" pulumi-lang-python=\"`access_token`\" pulumi-lang-yaml=\"`accessToken`\" pulumi-lang-java=\"`accessToken`\"\u003e`access_token`\u003c/span\u003e, to use this provider. Can also be set with the `REDPANDA_CLIENT_ID` environment variable.","secret":true},"clientSecret":{"type":"string","description":"Redpanda client secret. You need either \u003cspan pulumi-lang-nodejs=\"`clientId`\" pulumi-lang-dotnet=\"`ClientId`\" pulumi-lang-go=\"`clientId`\" pulumi-lang-python=\"`client_id`\" pulumi-lang-yaml=\"`clientId`\" pulumi-lang-java=\"`clientId`\"\u003e`client_id`\u003c/span\u003e AND \u003cspan pulumi-lang-nodejs=\"`clientSecret`\" pulumi-lang-dotnet=\"`ClientSecret`\" pulumi-lang-go=\"`clientSecret`\" pulumi-lang-python=\"`client_secret`\" pulumi-lang-yaml=\"`clientSecret`\" pulumi-lang-java=\"`clientSecret`\"\u003e`client_secret`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`accessToken`\" pulumi-lang-dotnet=\"`AccessToken`\" pulumi-lang-go=\"`accessToken`\" pulumi-lang-python=\"`access_token`\" pulumi-lang-yaml=\"`accessToken`\" pulumi-lang-java=\"`accessToken`\"\u003e`access_token`\u003c/span\u003e, to use this provider. Can also be set with the `REDPANDA_CLIENT_SECRET` environment variable.","secret":true},"gcpProjectId":{"type":"string","description":"The default Google Cloud Project ID to use for Redpanda BYOC clusters. If another project is specified on a resource, it will take precedence. This can also be sourced from the `GOOGLE_PROJECT` environment variable, or any of the following ordered by precedence: `GOOGLE_PROJECT`, `GOOGLE_CLOUD_PROJECT`, `GCLOUD_PROJECT`, or `CLOUDSDK_CORE_PROJECT`."},"googleCredentials":{"type":"string","description":"Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as GOOGLE_CREDENTIALS","secret":true},"googleCredentialsBase64":{"type":"string","description":"Used for creating and managing BYOC and BYOVPC clusters. Is a convenience passthrough for base64 encoded credentials intended for use in CI/CD. Can also be specified in the environment as GOOGLE_CREDENTIALS_BASE64","secret":true}},"type":"object","inputProperties":{"accessToken":{"type":"string","description":"Redpanda client token. You need either \u003cspan pulumi-lang-nodejs=\"`accessToken`\" pulumi-lang-dotnet=\"`AccessToken`\" pulumi-lang-go=\"`accessToken`\" pulumi-lang-python=\"`access_token`\" pulumi-lang-yaml=\"`accessToken`\" pulumi-lang-java=\"`accessToken`\"\u003e`access_token`\u003c/span\u003e, or both \u003cspan pulumi-lang-nodejs=\"`clientId`\" pulumi-lang-dotnet=\"`ClientId`\" pulumi-lang-go=\"`clientId`\" pulumi-lang-python=\"`client_id`\" pulumi-lang-yaml=\"`clientId`\" pulumi-lang-java=\"`clientId`\"\u003e`client_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`clientSecret`\" pulumi-lang-dotnet=\"`ClientSecret`\" pulumi-lang-go=\"`clientSecret`\" pulumi-lang-python=\"`client_secret`\" pulumi-lang-yaml=\"`clientSecret`\" pulumi-lang-java=\"`clientSecret`\"\u003e`client_secret`\u003c/span\u003e to use this provider. Can also be set with the `REDPANDA_ACCESS_TOKEN` environment variable.","secret":true},"azureClientId":{"type":"string","description":"Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as AZURE_CLIENT_ID or ARM_CLIENT_ID"},"azureClientSecret":{"type":"string","description":"Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as AZURE_CLIENT_SECRET or ARM_CLIENT_SECRET","secret":true},"azureSubscriptionId":{"type":"string","description":"The default Azure Subscription ID which should be used for Redpanda BYOC clusters. If another subscription is specified on a resource, it will take precedence. This can also be sourced from the `ARM_SUBSCRIPTION_ID` environment variable."},"azureTenantId":{"type":"string","description":"Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as AZURE_TENANT_ID or ARM_TENANT_ID"},"clientId":{"type":"string","description":"The ID for the client. You need either \u003cspan pulumi-lang-nodejs=\"`clientId`\" pulumi-lang-dotnet=\"`ClientId`\" pulumi-lang-go=\"`clientId`\" pulumi-lang-python=\"`client_id`\" pulumi-lang-yaml=\"`clientId`\" pulumi-lang-java=\"`clientId`\"\u003e`client_id`\u003c/span\u003e AND \u003cspan pulumi-lang-nodejs=\"`clientSecret`\" pulumi-lang-dotnet=\"`ClientSecret`\" pulumi-lang-go=\"`clientSecret`\" pulumi-lang-python=\"`client_secret`\" pulumi-lang-yaml=\"`clientSecret`\" pulumi-lang-java=\"`clientSecret`\"\u003e`client_secret`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`accessToken`\" pulumi-lang-dotnet=\"`AccessToken`\" pulumi-lang-go=\"`accessToken`\" pulumi-lang-python=\"`access_token`\" pulumi-lang-yaml=\"`accessToken`\" pulumi-lang-java=\"`accessToken`\"\u003e`access_token`\u003c/span\u003e, to use this provider. Can also be set with the `REDPANDA_CLIENT_ID` environment variable.","secret":true},"clientSecret":{"type":"string","description":"Redpanda client secret. You need either \u003cspan pulumi-lang-nodejs=\"`clientId`\" pulumi-lang-dotnet=\"`ClientId`\" pulumi-lang-go=\"`clientId`\" pulumi-lang-python=\"`client_id`\" pulumi-lang-yaml=\"`clientId`\" pulumi-lang-java=\"`clientId`\"\u003e`client_id`\u003c/span\u003e AND \u003cspan pulumi-lang-nodejs=\"`clientSecret`\" pulumi-lang-dotnet=\"`ClientSecret`\" pulumi-lang-go=\"`clientSecret`\" pulumi-lang-python=\"`client_secret`\" pulumi-lang-yaml=\"`clientSecret`\" pulumi-lang-java=\"`clientSecret`\"\u003e`client_secret`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`accessToken`\" pulumi-lang-dotnet=\"`AccessToken`\" pulumi-lang-go=\"`accessToken`\" pulumi-lang-python=\"`access_token`\" pulumi-lang-yaml=\"`accessToken`\" pulumi-lang-java=\"`accessToken`\"\u003e`access_token`\u003c/span\u003e, to use this provider. Can also be set with the `REDPANDA_CLIENT_SECRET` environment variable.","secret":true},"gcpProjectId":{"type":"string","description":"The default Google Cloud Project ID to use for Redpanda BYOC clusters. If another project is specified on a resource, it will take precedence. This can also be sourced from the `GOOGLE_PROJECT` environment variable, or any of the following ordered by precedence: `GOOGLE_PROJECT`, `GOOGLE_CLOUD_PROJECT`, `GCLOUD_PROJECT`, or `CLOUDSDK_CORE_PROJECT`."},"googleCredentials":{"type":"string","description":"Used for creating and managing BYOC and BYOVPC clusters. Can also be specified in the environment as GOOGLE_CREDENTIALS","secret":true},"googleCredentialsBase64":{"type":"string","description":"Used for creating and managing BYOC and BYOVPC clusters. Is a convenience passthrough for base64 encoded credentials intended for use in CI/CD. Can also be specified in the environment as GOOGLE_CREDENTIALS_BASE64","secret":true}},"methods":{"terraformConfig":"pulumi:providers:redpanda/terraformConfig"}},"resources":{"redpanda:index/acl:Acl":{"description":"Creates an Access Control List (ACL) in a Redpanda cluster.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as redpanda from \"@pulumi/redpanda\";\n\nconst example = new redpanda.ResourceGroup(\"example\", {name: \"example-resource-group\"});\nconst exampleNetwork = new redpanda.Network(\"example\", {\n    name: \"example-network\",\n    resourceGroupId: example.id,\n    cloudProvider: \"aws\",\n    region: \"us-west-2\",\n    clusterType: \"dedicated\",\n    cidrBlock: \"10.0.0.0/20\",\n});\nconst exampleCluster = new redpanda.Cluster(\"example\", {\n    name: \"example-cluster\",\n    resourceGroupId: example.id,\n    networkId: exampleNetwork.id,\n    cloudProvider: \"aws\",\n    region: \"us-west-2\",\n    clusterType: \"dedicated\",\n    connectionType: \"public\",\n    throughputTier: \"tier-1-aws\",\n    zones: [\n        \"us-west-2a\",\n        \"us-west-2b\",\n        \"us-west-2c\",\n    ],\n});\nconst exampleUser = new redpanda.User(\"example\", {\n    name: \"example-user\",\n    password: \"secure-password-123\",\n    mechanism: \"scram-sha-256\",\n    clusterApiUrl: exampleCluster.clusterApiUrl,\n    allowDeletion: true,\n});\nconst exampleTopic = new redpanda.Topic(\"example\", {\n    name: \"example-topic\",\n    partitionCount: 3,\n    replicationFactor: 3,\n    clusterApiUrl: exampleCluster.clusterApiUrl,\n});\nconst exampleAcl = new redpanda.Acl(\"example\", {\n    resourceType: \"TOPIC\",\n    resourceName: exampleTopic.name,\n    resourcePatternType: \"LITERAL\",\n    principal: pulumi.interpolate`User:${exampleUser.name}`,\n    host: \"*\",\n    operation: \"READ\",\n    permissionType: \"ALLOW\",\n    clusterApiUrl: exampleCluster.clusterApiUrl,\n});\n```\n```python\nimport pulumi\nimport pulumi_redpanda as redpanda\n\nexample = redpanda.ResourceGroup(\"example\", name=\"example-resource-group\")\nexample_network = redpanda.Network(\"example\",\n    name=\"example-network\",\n    resource_group_id=example.id,\n    cloud_provider=\"aws\",\n    region=\"us-west-2\",\n    cluster_type=\"dedicated\",\n    cidr_block=\"10.0.0.0/20\")\nexample_cluster = redpanda.Cluster(\"example\",\n    name=\"example-cluster\",\n    resource_group_id=example.id,\n    network_id=example_network.id,\n    cloud_provider=\"aws\",\n    region=\"us-west-2\",\n    cluster_type=\"dedicated\",\n    connection_type=\"public\",\n    throughput_tier=\"tier-1-aws\",\n    zones=[\n        \"us-west-2a\",\n        \"us-west-2b\",\n        \"us-west-2c\",\n    ])\nexample_user = redpanda.User(\"example\",\n    name=\"example-user\",\n    password=\"secure-password-123\",\n    mechanism=\"scram-sha-256\",\n    cluster_api_url=example_cluster.cluster_api_url,\n    allow_deletion=True)\nexample_topic = redpanda.Topic(\"example\",\n    name=\"example-topic\",\n    partition_count=3,\n    replication_factor=3,\n    cluster_api_url=example_cluster.cluster_api_url)\nexample_acl = redpanda.Acl(\"example\",\n    resource_type=\"TOPIC\",\n    resource_name_=example_topic.name,\n    resource_pattern_type=\"LITERAL\",\n    principal=example_user.name.apply(lambda name: f\"User:{name}\"),\n    host=\"*\",\n    operation=\"READ\",\n    permission_type=\"ALLOW\",\n    cluster_api_url=example_cluster.cluster_api_url)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Redpanda = Pulumi.Redpanda;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Redpanda.ResourceGroup(\"example\", new()\n    {\n        Name = \"example-resource-group\",\n    });\n\n    var exampleNetwork = new Redpanda.Network(\"example\", new()\n    {\n        Name = \"example-network\",\n        ResourceGroupId = example.Id,\n        CloudProvider = \"aws\",\n        Region = \"us-west-2\",\n        ClusterType = \"dedicated\",\n        CidrBlock = \"10.0.0.0/20\",\n    });\n\n    var exampleCluster = new Redpanda.Cluster(\"example\", new()\n    {\n        Name = \"example-cluster\",\n        ResourceGroupId = example.Id,\n        NetworkId = exampleNetwork.Id,\n        CloudProvider = \"aws\",\n        Region = \"us-west-2\",\n        ClusterType = \"dedicated\",\n        ConnectionType = \"public\",\n        ThroughputTier = \"tier-1-aws\",\n        Zones = new[]\n        {\n            \"us-west-2a\",\n            \"us-west-2b\",\n            \"us-west-2c\",\n        },\n    });\n\n    var exampleUser = new Redpanda.User(\"example\", new()\n    {\n        Name = \"example-user\",\n        Password = \"secure-password-123\",\n        Mechanism = \"scram-sha-256\",\n        ClusterApiUrl = exampleCluster.ClusterApiUrl,\n        AllowDeletion = true,\n    });\n\n    var exampleTopic = new Redpanda.Topic(\"example\", new()\n    {\n        Name = \"example-topic\",\n        PartitionCount = 3,\n        ReplicationFactor = 3,\n        ClusterApiUrl = exampleCluster.ClusterApiUrl,\n    });\n\n    var exampleAcl = new Redpanda.Acl(\"example\", new()\n    {\n        ResourceType = \"TOPIC\",\n        ResourceName = exampleTopic.Name,\n        ResourcePatternType = \"LITERAL\",\n        Principal = exampleUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        Host = \"*\",\n        Operation = \"READ\",\n        PermissionType = \"ALLOW\",\n        ClusterApiUrl = exampleCluster.ClusterApiUrl,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/redpanda/redpanda\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := redpanda.NewResourceGroup(ctx, \"example\", \u0026redpanda.ResourceGroupArgs{\n\t\t\tName: pulumi.String(\"example-resource-group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := redpanda.NewNetwork(ctx, \"example\", \u0026redpanda.NetworkArgs{\n\t\t\tName:            pulumi.String(\"example-network\"),\n\t\t\tResourceGroupId: example.ID(),\n\t\t\tCloudProvider:   pulumi.String(\"aws\"),\n\t\t\tRegion:          pulumi.String(\"us-west-2\"),\n\t\t\tClusterType:     pulumi.String(\"dedicated\"),\n\t\t\tCidrBlock:       pulumi.String(\"10.0.0.0/20\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCluster, err := redpanda.NewCluster(ctx, \"example\", \u0026redpanda.ClusterArgs{\n\t\t\tName:            pulumi.String(\"example-cluster\"),\n\t\t\tResourceGroupId: example.ID(),\n\t\t\tNetworkId:       exampleNetwork.ID(),\n\t\t\tCloudProvider:   pulumi.String(\"aws\"),\n\t\t\tRegion:          pulumi.String(\"us-west-2\"),\n\t\t\tClusterType:     pulumi.String(\"dedicated\"),\n\t\t\tConnectionType:  pulumi.String(\"public\"),\n\t\t\tThroughputTier:  pulumi.String(\"tier-1-aws\"),\n\t\t\tZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-west-2a\"),\n\t\t\t\tpulumi.String(\"us-west-2b\"),\n\t\t\t\tpulumi.String(\"us-west-2c\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleUser, err := redpanda.NewUser(ctx, \"example\", \u0026redpanda.UserArgs{\n\t\t\tName:          pulumi.String(\"example-user\"),\n\t\t\tPassword:      pulumi.String(\"secure-password-123\"),\n\t\t\tMechanism:     pulumi.String(\"scram-sha-256\"),\n\t\t\tClusterApiUrl: exampleCluster.ClusterApiUrl,\n\t\t\tAllowDeletion: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTopic, err := redpanda.NewTopic(ctx, \"example\", \u0026redpanda.TopicArgs{\n\t\t\tName:              pulumi.String(\"example-topic\"),\n\t\t\tPartitionCount:    pulumi.Float64(3),\n\t\t\tReplicationFactor: pulumi.Float64(3),\n\t\t\tClusterApiUrl:     exampleCluster.ClusterApiUrl,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redpanda.NewAcl(ctx, \"example\", \u0026redpanda.AclArgs{\n\t\t\tResourceType:        pulumi.String(\"TOPIC\"),\n\t\t\tResourceName:        exampleTopic.Name,\n\t\t\tResourcePatternType: pulumi.String(\"LITERAL\"),\n\t\t\tPrincipal: exampleUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tHost:           pulumi.String(\"*\"),\n\t\t\tOperation:      pulumi.String(\"READ\"),\n\t\t\tPermissionType: pulumi.String(\"ALLOW\"),\n\t\t\tClusterApiUrl:  exampleCluster.ClusterApiUrl,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.redpanda.ResourceGroup;\nimport com.pulumi.redpanda.ResourceGroupArgs;\nimport com.pulumi.redpanda.Network;\nimport com.pulumi.redpanda.NetworkArgs;\nimport com.pulumi.redpanda.Cluster;\nimport com.pulumi.redpanda.ClusterArgs;\nimport com.pulumi.redpanda.User;\nimport com.pulumi.redpanda.UserArgs;\nimport com.pulumi.redpanda.Topic;\nimport com.pulumi.redpanda.TopicArgs;\nimport com.pulumi.redpanda.Acl;\nimport com.pulumi.redpanda.AclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new ResourceGroup(\"example\", ResourceGroupArgs.builder()\n            .name(\"example-resource-group\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .name(\"example-network\")\n            .resourceGroupId(example.id())\n            .cloudProvider(\"aws\")\n            .region(\"us-west-2\")\n            .clusterType(\"dedicated\")\n            .cidrBlock(\"10.0.0.0/20\")\n            .build());\n\n        var exampleCluster = new Cluster(\"exampleCluster\", ClusterArgs.builder()\n            .name(\"example-cluster\")\n            .resourceGroupId(example.id())\n            .networkId(exampleNetwork.id())\n            .cloudProvider(\"aws\")\n            .region(\"us-west-2\")\n            .clusterType(\"dedicated\")\n            .connectionType(\"public\")\n            .throughputTier(\"tier-1-aws\")\n            .zones(            \n                \"us-west-2a\",\n                \"us-west-2b\",\n                \"us-west-2c\")\n            .build());\n\n        var exampleUser = new User(\"exampleUser\", UserArgs.builder()\n            .name(\"example-user\")\n            .password(\"secure-password-123\")\n            .mechanism(\"scram-sha-256\")\n            .clusterApiUrl(exampleCluster.clusterApiUrl())\n            .allowDeletion(true)\n            .build());\n\n        var exampleTopic = new Topic(\"exampleTopic\", TopicArgs.builder()\n            .name(\"example-topic\")\n            .partitionCount(3.0)\n            .replicationFactor(3.0)\n            .clusterApiUrl(exampleCluster.clusterApiUrl())\n            .build());\n\n        var exampleAcl = new Acl(\"exampleAcl\", AclArgs.builder()\n            .resourceType(\"TOPIC\")\n            .resourceName(exampleTopic.name())\n            .resourcePatternType(\"LITERAL\")\n            .principal(exampleUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .host(\"*\")\n            .operation(\"READ\")\n            .permissionType(\"ALLOW\")\n            .clusterApiUrl(exampleCluster.clusterApiUrl())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: redpanda:ResourceGroup\n    properties:\n      name: example-resource-group\n  exampleNetwork:\n    type: redpanda:Network\n    name: example\n    properties:\n      name: example-network\n      resourceGroupId: ${example.id}\n      cloudProvider: aws\n      region: us-west-2\n      clusterType: dedicated\n      cidrBlock: 10.0.0.0/20\n  exampleCluster:\n    type: redpanda:Cluster\n    name: example\n    properties:\n      name: example-cluster\n      resourceGroupId: ${example.id}\n      networkId: ${exampleNetwork.id}\n      cloudProvider: aws\n      region: us-west-2\n      clusterType: dedicated\n      connectionType: public\n      throughputTier: tier-1-aws\n      zones:\n        - us-west-2a\n        - us-west-2b\n        - us-west-2c\n  exampleUser:\n    type: redpanda:User\n    name: example\n    properties:\n      name: example-user\n      password: secure-password-123\n      mechanism: scram-sha-256\n      clusterApiUrl: ${exampleCluster.clusterApiUrl}\n      allowDeletion: true\n  exampleTopic:\n    type: redpanda:Topic\n    name: example\n    properties:\n      name: example-topic\n      partitionCount: 3\n      replicationFactor: 3\n      clusterApiUrl: ${exampleCluster.clusterApiUrl}\n  exampleAcl:\n    type: redpanda:Acl\n    name: example\n    properties:\n      resourceType: TOPIC\n      resourceName: ${exampleTopic.name}\n      resourcePatternType: LITERAL\n      principal: User:${exampleUser.name}\n      host: '*'\n      operation: READ\n      permissionType: ALLOW\n      clusterApiUrl: ${exampleCluster.clusterApiUrl}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Limitations\n\nWe are not currently able to support ACL creation in self hosted clusters. This is an area of active development so expect that to change soon.\n\n## API Reference\n\nFor more information, see the [Redpanda Cloud Data Plane API documentation](https://docs.redpanda.com/api/cloud-dataplane-api/).\n\n## Import\n\nWe do not support the import of ACLs into the Redpanda provider at this time.\n\n","properties":{"allowDeletion":{"type":"boolean","description":"When set to true, allows the resource to be removed from state even if the cluster is unreachable\n"},"clusterApiUrl":{"type":"string","description":"The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports\n"},"host":{"type":"string","description":"The host address to use for this ACL\n"},"operation":{"type":"string","description":"The operation type that shall be allowed or denied (e.g READ)\n"},"permissionType":{"type":"string","description":"The permission type. It determines whether the operation should be ALLOWED or DENIED\n"},"principal":{"type":"string","description":"The principal to apply this ACL for\n"},"resourceName":{"type":"string","description":"The name of the resource this ACL entry will be on\n"},"resourcePatternType":{"type":"string","description":"The pattern type of the resource. It determines the strategy how the provided resource name is matched (LITERAL, MATCH, PREFIXED, etc ...) against the actual resource names\n"},"resourceType":{"type":"string","description":"The type of the resource (TOPIC, GROUP, etc...) this ACL shall target\n"}},"type":"object","required":["allowDeletion","clusterApiUrl","host","operation","permissionType","principal","resourceName","resourcePatternType","resourceType"],"inputProperties":{"allowDeletion":{"type":"boolean","description":"When set to true, allows the resource to be removed from state even if the cluster is unreachable\n"},"clusterApiUrl":{"type":"string","description":"The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports\n"},"host":{"type":"string","description":"The host address to use for this ACL\n"},"operation":{"type":"string","description":"The operation type that shall be allowed or denied (e.g READ)\n"},"permissionType":{"type":"string","description":"The permission type. It determines whether the operation should be ALLOWED or DENIED\n"},"principal":{"type":"string","description":"The principal to apply this ACL for\n"},"resourceName":{"type":"string","description":"The name of the resource this ACL entry will be on\n"},"resourcePatternType":{"type":"string","description":"The pattern type of the resource. It determines the strategy how the provided resource name is matched (LITERAL, MATCH, PREFIXED, etc ...) against the actual resource names\n"},"resourceType":{"type":"string","description":"The type of the resource (TOPIC, GROUP, etc...) this ACL shall target\n"}},"requiredInputs":["clusterApiUrl","host","operation","permissionType","principal","resourceName","resourcePatternType","resourceType"],"stateInputs":{"description":"Input properties used for looking up and filtering Acl resources.\n","properties":{"allowDeletion":{"type":"boolean","description":"When set to true, allows the resource to be removed from state even if the cluster is unreachable\n"},"clusterApiUrl":{"type":"string","description":"The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports\n"},"host":{"type":"string","description":"The host address to use for this ACL\n"},"operation":{"type":"string","description":"The operation type that shall be allowed or denied (e.g READ)\n"},"permissionType":{"type":"string","description":"The permission type. It determines whether the operation should be ALLOWED or DENIED\n"},"principal":{"type":"string","description":"The principal to apply this ACL for\n"},"resourceName":{"type":"string","description":"The name of the resource this ACL entry will be on\n"},"resourcePatternType":{"type":"string","description":"The pattern type of the resource. It determines the strategy how the provided resource name is matched (LITERAL, MATCH, PREFIXED, etc ...) against the actual resource names\n"},"resourceType":{"type":"string","description":"The type of the resource (TOPIC, GROUP, etc...) this ACL shall target\n"}},"type":"object"}},"redpanda:index/cluster:Cluster":{"description":"Enables the provisioning and management of Redpanda clusters on AWS and GCP. A cluster must always have a network and resource group.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as redpanda from \"@pulumi/redpanda\";\n\nconst example = new redpanda.ResourceGroup(\"example\", {name: \"example-resource-group\"});\nconst exampleNetwork = new redpanda.Network(\"example\", {\n    name: \"example-network\",\n    resourceGroupId: example.id,\n    cloudProvider: \"aws\",\n    region: \"us-west-2\",\n    clusterType: \"dedicated\",\n    cidrBlock: \"10.0.0.0/20\",\n});\nconst exampleCluster = new redpanda.Cluster(\"example\", {\n    name: \"example-cluster\",\n    resourceGroupId: example.id,\n    networkId: exampleNetwork.id,\n    cloudProvider: \"aws\",\n    region: \"us-west-2\",\n    clusterType: \"dedicated\",\n    connectionType: \"public\",\n    throughputTier: \"tier-1-aws\",\n    zones: [\n        \"us-west-2a\",\n        \"us-west-2b\",\n        \"us-west-2c\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_redpanda as redpanda\n\nexample = redpanda.ResourceGroup(\"example\", name=\"example-resource-group\")\nexample_network = redpanda.Network(\"example\",\n    name=\"example-network\",\n    resource_group_id=example.id,\n    cloud_provider=\"aws\",\n    region=\"us-west-2\",\n    cluster_type=\"dedicated\",\n    cidr_block=\"10.0.0.0/20\")\nexample_cluster = redpanda.Cluster(\"example\",\n    name=\"example-cluster\",\n    resource_group_id=example.id,\n    network_id=example_network.id,\n    cloud_provider=\"aws\",\n    region=\"us-west-2\",\n    cluster_type=\"dedicated\",\n    connection_type=\"public\",\n    throughput_tier=\"tier-1-aws\",\n    zones=[\n        \"us-west-2a\",\n        \"us-west-2b\",\n        \"us-west-2c\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Redpanda = Pulumi.Redpanda;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Redpanda.ResourceGroup(\"example\", new()\n    {\n        Name = \"example-resource-group\",\n    });\n\n    var exampleNetwork = new Redpanda.Network(\"example\", new()\n    {\n        Name = \"example-network\",\n        ResourceGroupId = example.Id,\n        CloudProvider = \"aws\",\n        Region = \"us-west-2\",\n        ClusterType = \"dedicated\",\n        CidrBlock = \"10.0.0.0/20\",\n    });\n\n    var exampleCluster = new Redpanda.Cluster(\"example\", new()\n    {\n        Name = \"example-cluster\",\n        ResourceGroupId = example.Id,\n        NetworkId = exampleNetwork.Id,\n        CloudProvider = \"aws\",\n        Region = \"us-west-2\",\n        ClusterType = \"dedicated\",\n        ConnectionType = \"public\",\n        ThroughputTier = \"tier-1-aws\",\n        Zones = new[]\n        {\n            \"us-west-2a\",\n            \"us-west-2b\",\n            \"us-west-2c\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/redpanda/redpanda\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := redpanda.NewResourceGroup(ctx, \"example\", \u0026redpanda.ResourceGroupArgs{\n\t\t\tName: pulumi.String(\"example-resource-group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := redpanda.NewNetwork(ctx, \"example\", \u0026redpanda.NetworkArgs{\n\t\t\tName:            pulumi.String(\"example-network\"),\n\t\t\tResourceGroupId: example.ID(),\n\t\t\tCloudProvider:   pulumi.String(\"aws\"),\n\t\t\tRegion:          pulumi.String(\"us-west-2\"),\n\t\t\tClusterType:     pulumi.String(\"dedicated\"),\n\t\t\tCidrBlock:       pulumi.String(\"10.0.0.0/20\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redpanda.NewCluster(ctx, \"example\", \u0026redpanda.ClusterArgs{\n\t\t\tName:            pulumi.String(\"example-cluster\"),\n\t\t\tResourceGroupId: example.ID(),\n\t\t\tNetworkId:       exampleNetwork.ID(),\n\t\t\tCloudProvider:   pulumi.String(\"aws\"),\n\t\t\tRegion:          pulumi.String(\"us-west-2\"),\n\t\t\tClusterType:     pulumi.String(\"dedicated\"),\n\t\t\tConnectionType:  pulumi.String(\"public\"),\n\t\t\tThroughputTier:  pulumi.String(\"tier-1-aws\"),\n\t\t\tZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-west-2a\"),\n\t\t\t\tpulumi.String(\"us-west-2b\"),\n\t\t\t\tpulumi.String(\"us-west-2c\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.redpanda.ResourceGroup;\nimport com.pulumi.redpanda.ResourceGroupArgs;\nimport com.pulumi.redpanda.Network;\nimport com.pulumi.redpanda.NetworkArgs;\nimport com.pulumi.redpanda.Cluster;\nimport com.pulumi.redpanda.ClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new ResourceGroup(\"example\", ResourceGroupArgs.builder()\n            .name(\"example-resource-group\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .name(\"example-network\")\n            .resourceGroupId(example.id())\n            .cloudProvider(\"aws\")\n            .region(\"us-west-2\")\n            .clusterType(\"dedicated\")\n            .cidrBlock(\"10.0.0.0/20\")\n            .build());\n\n        var exampleCluster = new Cluster(\"exampleCluster\", ClusterArgs.builder()\n            .name(\"example-cluster\")\n            .resourceGroupId(example.id())\n            .networkId(exampleNetwork.id())\n            .cloudProvider(\"aws\")\n            .region(\"us-west-2\")\n            .clusterType(\"dedicated\")\n            .connectionType(\"public\")\n            .throughputTier(\"tier-1-aws\")\n            .zones(            \n                \"us-west-2a\",\n                \"us-west-2b\",\n                \"us-west-2c\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: redpanda:ResourceGroup\n    properties:\n      name: example-resource-group\n  exampleNetwork:\n    type: redpanda:Network\n    name: example\n    properties:\n      name: example-network\n      resourceGroupId: ${example.id}\n      cloudProvider: aws\n      region: us-west-2\n      clusterType: dedicated\n      cidrBlock: 10.0.0.0/20\n  exampleCluster:\n    type: redpanda:Cluster\n    name: example\n    properties:\n      name: example-cluster\n      resourceGroupId: ${example.id}\n      networkId: ${exampleNetwork.id}\n      cloudProvider: aws\n      region: us-west-2\n      clusterType: dedicated\n      connectionType: public\n      throughputTier: tier-1-aws\n      zones:\n        - us-west-2a\n        - us-west-2b\n        - us-west-2c\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Advanced Usage\n\n### On AWS\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as redpanda from \"@pulumi/redpanda\";\n\nconst test = new redpanda.ResourceGroup(\"test\", {name: resourceGroupName});\nconst testNetwork = new redpanda.Network(\"test\", {\n    name: networkName,\n    resourceGroupId: test.id,\n    cloudProvider: cloudProvider,\n    region: region,\n    clusterType: \"dedicated\",\n    cidrBlock: \"10.0.0.0/20\",\n    timeouts: {\n        create: \"20m\",\n        \"delete\": \"20m\",\n    },\n});\nconst testCluster = new redpanda.Cluster(\"test\", {\n    name: clusterName,\n    resourceGroupId: test.id,\n    networkId: testNetwork.id,\n    cloudProvider: cloudProvider,\n    region: region,\n    clusterType: \"dedicated\",\n    connectionType: \"public\",\n    throughputTier: throughputTier,\n    zones: zones,\n    allowDeletion: clusterAllowDeletion,\n    clusterConfiguration: {\n        customPropertiesJson: JSON.stringify({\n            enable_shadow_linking: clusterEnableShadowLinking,\n            schema_registry_enable_authorization: true,\n        }),\n    },\n    tags: {\n        key: \"value\",\n    },\n    timeouts: {\n        create: \"90m\",\n    },\n});\nconst testUser = new redpanda.User(\"test\", {\n    name: userName,\n    password: userPasswordWo != null ? null : userPw,\n    passwordWo: userPasswordWo,\n    passwordWoVersion: userPasswordWoVersion,\n    mechanism: mechanism,\n    clusterApiUrl: testCluster.clusterApiUrl,\n    allowDeletion: userAllowDeletion,\n});\nconst testTopic = new redpanda.Topic(\"test\", {\n    name: topicName,\n    partitionCount: partitionCount,\n    replicationFactor: replicationFactor,\n    clusterApiUrl: testCluster.clusterApiUrl,\n    allowDeletion: true,\n}, {\n    dependsOn: [testUser],\n});\nconst clusterAdmin = new redpanda.Acl(\"cluster_admin\", {\n    resourceType: \"CLUSTER\",\n    resourceName: \"kafka-cluster\",\n    resourcePatternType: \"LITERAL\",\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    host: \"*\",\n    operation: \"ALL\",\n    permissionType: \"ALLOW\",\n    clusterApiUrl: testCluster.clusterApiUrl,\n    allowDeletion: aclAllowDeletion,\n});\nconst schemaRegistryAdmin = new redpanda.Acl(\"schema_registry_admin\", {\n    resourceType: \"CLUSTER\",\n    resourceName: \"kafka-cluster\",\n    resourcePatternType: \"LITERAL\",\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    host: \"*\",\n    operation: \"ALTER\",\n    permissionType: \"ALLOW\",\n    clusterApiUrl: testCluster.clusterApiUrl,\n    allowDeletion: aclAllowDeletion,\n});\nconst clusterAction = new redpanda.Acl(\"cluster_action\", {\n    resourceType: \"CLUSTER\",\n    resourceName: \"kafka-cluster\",\n    resourcePatternType: \"LITERAL\",\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    host: \"*\",\n    operation: \"CLUSTER_ACTION\",\n    permissionType: \"ALLOW\",\n    clusterApiUrl: testCluster.clusterApiUrl,\n    allowDeletion: aclAllowDeletion,\n});\nconst topicAccess = new redpanda.Acl(\"topic_access\", {\n    resourceType: \"TOPIC\",\n    resourceName: topicName,\n    resourcePatternType: \"LITERAL\",\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    host: \"*\",\n    operation: \"ALL\",\n    permissionType: \"ALLOW\",\n    clusterApiUrl: testCluster.clusterApiUrl,\n    allowDeletion: aclAllowDeletion,\n});\nconst allTestTopic = new redpanda.SchemaRegistryAcl(\"all_test_topic\", {\n    clusterId: testCluster.id,\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    resourceType: \"SUBJECT\",\n    resourceName: `${topicName}-`,\n    patternType: \"PREFIXED\",\n    host: \"*\",\n    operation: \"ALL\",\n    permission: \"ALLOW\",\n    username: testUser.name,\n    password: srAclPasswordWo != null ? null : userPw,\n    passwordWo: srAclPasswordWo,\n    passwordWoVersion: srAclPasswordWoVersion,\n    allowDeletion: true,\n}, {\n    dependsOn: [schemaRegistryAdmin],\n});\nconst describeRegistry = new redpanda.SchemaRegistryAcl(\"describe_registry\", {\n    clusterId: testCluster.id,\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    resourceType: \"REGISTRY\",\n    resourceName: \"*\",\n    patternType: \"LITERAL\",\n    host: \"*\",\n    operation: \"DESCRIBE\",\n    permission: \"ALLOW\",\n    username: testUser.name,\n    password: srAclPasswordWo != null ? null : userPw,\n    passwordWo: srAclPasswordWo,\n    passwordWoVersion: srAclPasswordWoVersion,\n    allowDeletion: true,\n}, {\n    dependsOn: [schemaRegistryAdmin],\n});\nconst alterConfigsRegistry = new redpanda.SchemaRegistryAcl(\"alter_configs_registry\", {\n    clusterId: testCluster.id,\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    resourceType: \"REGISTRY\",\n    resourceName: \"*\",\n    patternType: \"LITERAL\",\n    host: \"*\",\n    operation: \"ALTER_CONFIGS\",\n    permission: \"ALLOW\",\n    username: testUser.name,\n    password: srAclPasswordWo != null ? null : userPw,\n    passwordWo: srAclPasswordWo,\n    passwordWoVersion: srAclPasswordWoVersion,\n    allowDeletion: true,\n}, {\n    dependsOn: [schemaRegistryAdmin],\n});\nconst readRegistry = new redpanda.SchemaRegistryAcl(\"read_registry\", {\n    clusterId: testCluster.id,\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    resourceType: \"REGISTRY\",\n    resourceName: \"*\",\n    patternType: \"LITERAL\",\n    host: \"*\",\n    operation: \"READ\",\n    permission: \"ALLOW\",\n    username: testUser.name,\n    password: srAclPasswordWo != null ? null : userPw,\n    passwordWo: srAclPasswordWo,\n    passwordWoVersion: srAclPasswordWoVersion,\n    allowDeletion: true,\n}, {\n    dependsOn: [schemaRegistryAdmin],\n});\nconst writeRegistry = new redpanda.SchemaRegistryAcl(\"write_registry\", {\n    clusterId: testCluster.id,\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    resourceType: \"REGISTRY\",\n    resourceName: \"*\",\n    patternType: \"LITERAL\",\n    host: \"*\",\n    operation: \"WRITE\",\n    permission: \"ALLOW\",\n    username: testUser.name,\n    password: srAclPasswordWo != null ? null : userPw,\n    passwordWo: srAclPasswordWo,\n    passwordWoVersion: srAclPasswordWoVersion,\n    allowDeletion: true,\n}, {\n    dependsOn: [schemaRegistryAdmin],\n});\nconst userSchema = new redpanda.Schema(\"user_schema\", {\n    clusterId: testCluster.id,\n    subject: `${topicName}-value`,\n    schemaType: schemaType,\n    schema: userSchemaDefinition,\n    username: testUser.name,\n    password: schemaPasswordWo != null ? null : userPw,\n    passwordWo: schemaPasswordWo,\n    passwordWoVersion: schemaPasswordWoVersion,\n    allowDeletion: true,\n}, {\n    dependsOn: [\n        clusterAdmin,\n        schemaRegistryAdmin,\n        clusterAction,\n        topicAccess,\n        allTestTopic,\n        describeRegistry,\n        alterConfigsRegistry,\n        readRegistry,\n        writeRegistry,\n    ],\n});\nconst userEventSchema = new redpanda.Schema(\"user_event_schema\", {\n    clusterId: testCluster.id,\n    subject: `${topicName}-events-value`,\n    schemaType: schemaType,\n    schema: userEventSchemaDefinition,\n    username: testUser.name,\n    password: schemaPasswordWo != null ? null : userPw,\n    passwordWo: schemaPasswordWo,\n    passwordWoVersion: schemaPasswordWoVersion,\n    allowDeletion: true,\n    references: [{\n        name: \"User\",\n        subject: userSchema.subject,\n        version: userSchema.version,\n    }],\n}, {\n    dependsOn: [\n        clusterAdmin,\n        schemaRegistryAdmin,\n        clusterAction,\n        topicAccess,\n        allTestTopic,\n        describeRegistry,\n        alterConfigsRegistry,\n        readRegistry,\n        writeRegistry,\n    ],\n});\nconst productSchema = new redpanda.Schema(\"product_schema\", {\n    clusterId: testCluster.id,\n    subject: `${topicName}-product-value`,\n    schemaType: schemaType,\n    schema: productSchemaDefinition,\n    compatibility: compatibilityLevel,\n    username: testUser.name,\n    password: schemaPasswordWo != null ? null : userPw,\n    passwordWo: schemaPasswordWo,\n    passwordWoVersion: schemaPasswordWoVersion,\n    allowDeletion: true,\n}, {\n    dependsOn: [\n        clusterAdmin,\n        schemaRegistryAdmin,\n        clusterAction,\n        topicAccess,\n        allTestTopic,\n        describeRegistry,\n        alterConfigsRegistry,\n        readRegistry,\n        writeRegistry,\n    ],\n});\nconst readProduct = new redpanda.SchemaRegistryAcl(\"read_product\", {\n    clusterId: testCluster.id,\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    resourceType: \"SUBJECT\",\n    resourceName: \"product-\",\n    patternType: \"PREFIXED\",\n    host: \"*\",\n    operation: \"READ\",\n    permission: \"ALLOW\",\n    username: testUser.name,\n    password: srAclPasswordWo != null ? null : userPw,\n    passwordWo: srAclPasswordWo,\n    passwordWoVersion: srAclPasswordWoVersion,\n    allowDeletion: srAclAllowDeletion,\n}, {\n    dependsOn: [schemaRegistryAdmin],\n});\nconst writeOrders = new redpanda.SchemaRegistryAcl(\"write_orders\", {\n    clusterId: testCluster.id,\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    resourceType: \"SUBJECT\",\n    resourceName: \"orders-value\",\n    patternType: \"LITERAL\",\n    host: \"*\",\n    operation: \"WRITE\",\n    permission: \"ALLOW\",\n    username: testUser.name,\n    password: srAclPasswordWo != null ? null : userPw,\n    passwordWo: srAclPasswordWo,\n    passwordWoVersion: srAclPasswordWoVersion,\n    allowDeletion: true,\n}, {\n    dependsOn: [schemaRegistryAdmin],\n});\nconst developer = new redpanda.Role(\"developer\", {\n    name: roleName,\n    clusterApiUrl: testCluster.clusterApiUrl,\n    allowDeletion: roleAllowDeletion,\n});\nconst developerAssignment = new redpanda.RoleAssignment(\"developer_assignment\", {\n    roleName: developer.name,\n    principal: testUser.name,\n    clusterApiUrl: testCluster.clusterApiUrl,\n}, {\n    dependsOn: [testUser],\n});\nexport const userSchemaInfo = {\n    id: userSchema.schemaId,\n    subject: userSchema.subject,\n    version: userSchema.version,\n    type: userSchema.schemaType,\n};\nexport const userEventSchemaInfo = {\n    id: userEventSchema.schemaId,\n    subject: userEventSchema.subject,\n    version: userEventSchema.version,\n    type: userEventSchema.schemaType,\n    references: userEventSchema.references,\n};\nexport const productSchemaInfo = {\n    id: productSchema.schemaId,\n    subject: productSchema.subject,\n    version: productSchema.version,\n    type: productSchema.schemaType,\n    compatibility: productSchema.compatibility,\n};\n```\n```python\nimport pulumi\nimport json\nimport pulumi_redpanda as redpanda\n\ntest = redpanda.ResourceGroup(\"test\", name=resource_group_name)\ntest_network = redpanda.Network(\"test\",\n    name=network_name,\n    resource_group_id=test.id,\n    cloud_provider=cloud_provider,\n    region=region,\n    cluster_type=\"dedicated\",\n    cidr_block=\"10.0.0.0/20\",\n    timeouts={\n        \"create\": \"20m\",\n        \"delete\": \"20m\",\n    })\ntest_cluster = redpanda.Cluster(\"test\",\n    name=cluster_name,\n    resource_group_id=test.id,\n    network_id=test_network.id,\n    cloud_provider=cloud_provider,\n    region=region,\n    cluster_type=\"dedicated\",\n    connection_type=\"public\",\n    throughput_tier=throughput_tier,\n    zones=zones,\n    allow_deletion=cluster_allow_deletion,\n    cluster_configuration={\n        \"custom_properties_json\": json.dumps({\n            \"enable_shadow_linking\": cluster_enable_shadow_linking,\n            \"schema_registry_enable_authorization\": True,\n        }),\n    },\n    tags={\n        \"key\": \"value\",\n    },\n    timeouts={\n        \"create\": \"90m\",\n    })\ntest_user = redpanda.User(\"test\",\n    name=user_name,\n    password=None if user_password_wo != None else user_pw,\n    password_wo=user_password_wo,\n    password_wo_version=user_password_wo_version,\n    mechanism=mechanism,\n    cluster_api_url=test_cluster.cluster_api_url,\n    allow_deletion=user_allow_deletion)\ntest_topic = redpanda.Topic(\"test\",\n    name=topic_name,\n    partition_count=partition_count,\n    replication_factor=replication_factor,\n    cluster_api_url=test_cluster.cluster_api_url,\n    allow_deletion=True,\n    opts = pulumi.ResourceOptions(depends_on=[test_user]))\ncluster_admin = redpanda.Acl(\"cluster_admin\",\n    resource_type=\"CLUSTER\",\n    resource_name_=\"kafka-cluster\",\n    resource_pattern_type=\"LITERAL\",\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    host=\"*\",\n    operation=\"ALL\",\n    permission_type=\"ALLOW\",\n    cluster_api_url=test_cluster.cluster_api_url,\n    allow_deletion=acl_allow_deletion)\nschema_registry_admin = redpanda.Acl(\"schema_registry_admin\",\n    resource_type=\"CLUSTER\",\n    resource_name_=\"kafka-cluster\",\n    resource_pattern_type=\"LITERAL\",\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    host=\"*\",\n    operation=\"ALTER\",\n    permission_type=\"ALLOW\",\n    cluster_api_url=test_cluster.cluster_api_url,\n    allow_deletion=acl_allow_deletion)\ncluster_action = redpanda.Acl(\"cluster_action\",\n    resource_type=\"CLUSTER\",\n    resource_name_=\"kafka-cluster\",\n    resource_pattern_type=\"LITERAL\",\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    host=\"*\",\n    operation=\"CLUSTER_ACTION\",\n    permission_type=\"ALLOW\",\n    cluster_api_url=test_cluster.cluster_api_url,\n    allow_deletion=acl_allow_deletion)\ntopic_access = redpanda.Acl(\"topic_access\",\n    resource_type=\"TOPIC\",\n    resource_name_=topic_name,\n    resource_pattern_type=\"LITERAL\",\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    host=\"*\",\n    operation=\"ALL\",\n    permission_type=\"ALLOW\",\n    cluster_api_url=test_cluster.cluster_api_url,\n    allow_deletion=acl_allow_deletion)\nall_test_topic = redpanda.SchemaRegistryAcl(\"all_test_topic\",\n    cluster_id=test_cluster.id,\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    resource_type=\"SUBJECT\",\n    resource_name_=f\"{topic_name}-\",\n    pattern_type=\"PREFIXED\",\n    host=\"*\",\n    operation=\"ALL\",\n    permission=\"ALLOW\",\n    username=test_user.name,\n    password=None if sr_acl_password_wo != None else user_pw,\n    password_wo=sr_acl_password_wo,\n    password_wo_version=sr_acl_password_wo_version,\n    allow_deletion=True,\n    opts = pulumi.ResourceOptions(depends_on=[schema_registry_admin]))\ndescribe_registry = redpanda.SchemaRegistryAcl(\"describe_registry\",\n    cluster_id=test_cluster.id,\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    resource_type=\"REGISTRY\",\n    resource_name_=\"*\",\n    pattern_type=\"LITERAL\",\n    host=\"*\",\n    operation=\"DESCRIBE\",\n    permission=\"ALLOW\",\n    username=test_user.name,\n    password=None if sr_acl_password_wo != None else user_pw,\n    password_wo=sr_acl_password_wo,\n    password_wo_version=sr_acl_password_wo_version,\n    allow_deletion=True,\n    opts = pulumi.ResourceOptions(depends_on=[schema_registry_admin]))\nalter_configs_registry = redpanda.SchemaRegistryAcl(\"alter_configs_registry\",\n    cluster_id=test_cluster.id,\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    resource_type=\"REGISTRY\",\n    resource_name_=\"*\",\n    pattern_type=\"LITERAL\",\n    host=\"*\",\n    operation=\"ALTER_CONFIGS\",\n    permission=\"ALLOW\",\n    username=test_user.name,\n    password=None if sr_acl_password_wo != None else user_pw,\n    password_wo=sr_acl_password_wo,\n    password_wo_version=sr_acl_password_wo_version,\n    allow_deletion=True,\n    opts = pulumi.ResourceOptions(depends_on=[schema_registry_admin]))\nread_registry = redpanda.SchemaRegistryAcl(\"read_registry\",\n    cluster_id=test_cluster.id,\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    resource_type=\"REGISTRY\",\n    resource_name_=\"*\",\n    pattern_type=\"LITERAL\",\n    host=\"*\",\n    operation=\"READ\",\n    permission=\"ALLOW\",\n    username=test_user.name,\n    password=None if sr_acl_password_wo != None else user_pw,\n    password_wo=sr_acl_password_wo,\n    password_wo_version=sr_acl_password_wo_version,\n    allow_deletion=True,\n    opts = pulumi.ResourceOptions(depends_on=[schema_registry_admin]))\nwrite_registry = redpanda.SchemaRegistryAcl(\"write_registry\",\n    cluster_id=test_cluster.id,\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    resource_type=\"REGISTRY\",\n    resource_name_=\"*\",\n    pattern_type=\"LITERAL\",\n    host=\"*\",\n    operation=\"WRITE\",\n    permission=\"ALLOW\",\n    username=test_user.name,\n    password=None if sr_acl_password_wo != None else user_pw,\n    password_wo=sr_acl_password_wo,\n    password_wo_version=sr_acl_password_wo_version,\n    allow_deletion=True,\n    opts = pulumi.ResourceOptions(depends_on=[schema_registry_admin]))\nuser_schema = redpanda.Schema(\"user_schema\",\n    cluster_id=test_cluster.id,\n    subject=f\"{topic_name}-value\",\n    schema_type=schema_type,\n    schema=user_schema_definition,\n    username=test_user.name,\n    password=None if schema_password_wo != None else user_pw,\n    password_wo=schema_password_wo,\n    password_wo_version=schema_password_wo_version,\n    allow_deletion=True,\n    opts = pulumi.ResourceOptions(depends_on=[\n            cluster_admin,\n            schema_registry_admin,\n            cluster_action,\n            topic_access,\n            all_test_topic,\n            describe_registry,\n            alter_configs_registry,\n            read_registry,\n            write_registry,\n        ]))\nuser_event_schema = redpanda.Schema(\"user_event_schema\",\n    cluster_id=test_cluster.id,\n    subject=f\"{topic_name}-events-value\",\n    schema_type=schema_type,\n    schema=user_event_schema_definition,\n    username=test_user.name,\n    password=None if schema_password_wo != None else user_pw,\n    password_wo=schema_password_wo,\n    password_wo_version=schema_password_wo_version,\n    allow_deletion=True,\n    references=[{\n        \"name\": \"User\",\n        \"subject\": user_schema.subject,\n        \"version\": user_schema.version,\n    }],\n    opts = pulumi.ResourceOptions(depends_on=[\n            cluster_admin,\n            schema_registry_admin,\n            cluster_action,\n            topic_access,\n            all_test_topic,\n            describe_registry,\n            alter_configs_registry,\n            read_registry,\n            write_registry,\n        ]))\nproduct_schema = redpanda.Schema(\"product_schema\",\n    cluster_id=test_cluster.id,\n    subject=f\"{topic_name}-product-value\",\n    schema_type=schema_type,\n    schema=product_schema_definition,\n    compatibility=compatibility_level,\n    username=test_user.name,\n    password=None if schema_password_wo != None else user_pw,\n    password_wo=schema_password_wo,\n    password_wo_version=schema_password_wo_version,\n    allow_deletion=True,\n    opts = pulumi.ResourceOptions(depends_on=[\n            cluster_admin,\n            schema_registry_admin,\n            cluster_action,\n            topic_access,\n            all_test_topic,\n            describe_registry,\n            alter_configs_registry,\n            read_registry,\n            write_registry,\n        ]))\nread_product = redpanda.SchemaRegistryAcl(\"read_product\",\n    cluster_id=test_cluster.id,\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    resource_type=\"SUBJECT\",\n    resource_name_=\"product-\",\n    pattern_type=\"PREFIXED\",\n    host=\"*\",\n    operation=\"READ\",\n    permission=\"ALLOW\",\n    username=test_user.name,\n    password=None if sr_acl_password_wo != None else user_pw,\n    password_wo=sr_acl_password_wo,\n    password_wo_version=sr_acl_password_wo_version,\n    allow_deletion=sr_acl_allow_deletion,\n    opts = pulumi.ResourceOptions(depends_on=[schema_registry_admin]))\nwrite_orders = redpanda.SchemaRegistryAcl(\"write_orders\",\n    cluster_id=test_cluster.id,\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    resource_type=\"SUBJECT\",\n    resource_name_=\"orders-value\",\n    pattern_type=\"LITERAL\",\n    host=\"*\",\n    operation=\"WRITE\",\n    permission=\"ALLOW\",\n    username=test_user.name,\n    password=None if sr_acl_password_wo != None else user_pw,\n    password_wo=sr_acl_password_wo,\n    password_wo_version=sr_acl_password_wo_version,\n    allow_deletion=True,\n    opts = pulumi.ResourceOptions(depends_on=[schema_registry_admin]))\ndeveloper = redpanda.Role(\"developer\",\n    name=role_name,\n    cluster_api_url=test_cluster.cluster_api_url,\n    allow_deletion=role_allow_deletion)\ndeveloper_assignment = redpanda.RoleAssignment(\"developer_assignment\",\n    role_name=developer.name,\n    principal=test_user.name,\n    cluster_api_url=test_cluster.cluster_api_url,\n    opts = pulumi.ResourceOptions(depends_on=[test_user]))\npulumi.export(\"userSchemaInfo\", {\n    \"id\": user_schema.schema_id,\n    \"subject\": user_schema.subject,\n    \"version\": user_schema.version,\n    \"type\": user_schema.schema_type,\n})\npulumi.export(\"userEventSchemaInfo\", {\n    \"id\": user_event_schema.schema_id,\n    \"subject\": user_event_schema.subject,\n    \"version\": user_event_schema.version,\n    \"type\": user_event_schema.schema_type,\n    \"references\": user_event_schema.references,\n})\npulumi.export(\"productSchemaInfo\", {\n    \"id\": product_schema.schema_id,\n    \"subject\": product_schema.subject,\n    \"version\": product_schema.version,\n    \"type\": product_schema.schema_type,\n    \"compatibility\": product_schema.compatibility,\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Redpanda = Pulumi.Redpanda;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Redpanda.ResourceGroup(\"test\", new()\n    {\n        Name = resourceGroupName,\n    });\n\n    var testNetwork = new Redpanda.Network(\"test\", new()\n    {\n        Name = networkName,\n        ResourceGroupId = test.Id,\n        CloudProvider = cloudProvider,\n        Region = region,\n        ClusterType = \"dedicated\",\n        CidrBlock = \"10.0.0.0/20\",\n        Timeouts = new Redpanda.Inputs.NetworkTimeoutsArgs\n        {\n            Create = \"20m\",\n            Delete = \"20m\",\n        },\n    });\n\n    var testCluster = new Redpanda.Cluster(\"test\", new()\n    {\n        Name = clusterName,\n        ResourceGroupId = test.Id,\n        NetworkId = testNetwork.Id,\n        CloudProvider = cloudProvider,\n        Region = region,\n        ClusterType = \"dedicated\",\n        ConnectionType = \"public\",\n        ThroughputTier = throughputTier,\n        Zones = zones,\n        AllowDeletion = clusterAllowDeletion,\n        ClusterConfiguration = new Redpanda.Inputs.ClusterClusterConfigurationArgs\n        {\n            CustomPropertiesJson = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n            {\n                [\"enable_shadow_linking\"] = clusterEnableShadowLinking,\n                [\"schema_registry_enable_authorization\"] = true,\n            }),\n        },\n        Tags = \n        {\n            { \"key\", \"value\" },\n        },\n        Timeouts = new Redpanda.Inputs.ClusterTimeoutsArgs\n        {\n            Create = \"90m\",\n        },\n    });\n\n    var testUser = new Redpanda.User(\"test\", new()\n    {\n        Name = userName,\n        Password = userPasswordWo != null ? null : userPw,\n        PasswordWo = userPasswordWo,\n        PasswordWoVersion = userPasswordWoVersion,\n        Mechanism = mechanism,\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        AllowDeletion = userAllowDeletion,\n    });\n\n    var testTopic = new Redpanda.Topic(\"test\", new()\n    {\n        Name = topicName,\n        PartitionCount = partitionCount,\n        ReplicationFactor = replicationFactor,\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        AllowDeletion = true,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            testUser,\n        },\n    });\n\n    var clusterAdmin = new Redpanda.Acl(\"cluster_admin\", new()\n    {\n        ResourceType = \"CLUSTER\",\n        ResourceName = \"kafka-cluster\",\n        ResourcePatternType = \"LITERAL\",\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        Host = \"*\",\n        Operation = \"ALL\",\n        PermissionType = \"ALLOW\",\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        AllowDeletion = aclAllowDeletion,\n    });\n\n    var schemaRegistryAdmin = new Redpanda.Acl(\"schema_registry_admin\", new()\n    {\n        ResourceType = \"CLUSTER\",\n        ResourceName = \"kafka-cluster\",\n        ResourcePatternType = \"LITERAL\",\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        Host = \"*\",\n        Operation = \"ALTER\",\n        PermissionType = \"ALLOW\",\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        AllowDeletion = aclAllowDeletion,\n    });\n\n    var clusterAction = new Redpanda.Acl(\"cluster_action\", new()\n    {\n        ResourceType = \"CLUSTER\",\n        ResourceName = \"kafka-cluster\",\n        ResourcePatternType = \"LITERAL\",\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        Host = \"*\",\n        Operation = \"CLUSTER_ACTION\",\n        PermissionType = \"ALLOW\",\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        AllowDeletion = aclAllowDeletion,\n    });\n\n    var topicAccess = new Redpanda.Acl(\"topic_access\", new()\n    {\n        ResourceType = \"TOPIC\",\n        ResourceName = topicName,\n        ResourcePatternType = \"LITERAL\",\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        Host = \"*\",\n        Operation = \"ALL\",\n        PermissionType = \"ALLOW\",\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        AllowDeletion = aclAllowDeletion,\n    });\n\n    var allTestTopic = new Redpanda.SchemaRegistryAcl(\"all_test_topic\", new()\n    {\n        ClusterId = testCluster.Id,\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        ResourceType = \"SUBJECT\",\n        ResourceName = $\"{topicName}-\",\n        PatternType = \"PREFIXED\",\n        Host = \"*\",\n        Operation = \"ALL\",\n        Permission = \"ALLOW\",\n        Username = testUser.Name,\n        Password = srAclPasswordWo != null ? null : userPw,\n        PasswordWo = srAclPasswordWo,\n        PasswordWoVersion = srAclPasswordWoVersion,\n        AllowDeletion = true,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            schemaRegistryAdmin,\n        },\n    });\n\n    var describeRegistry = new Redpanda.SchemaRegistryAcl(\"describe_registry\", new()\n    {\n        ClusterId = testCluster.Id,\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        ResourceType = \"REGISTRY\",\n        ResourceName = \"*\",\n        PatternType = \"LITERAL\",\n        Host = \"*\",\n        Operation = \"DESCRIBE\",\n        Permission = \"ALLOW\",\n        Username = testUser.Name,\n        Password = srAclPasswordWo != null ? null : userPw,\n        PasswordWo = srAclPasswordWo,\n        PasswordWoVersion = srAclPasswordWoVersion,\n        AllowDeletion = true,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            schemaRegistryAdmin,\n        },\n    });\n\n    var alterConfigsRegistry = new Redpanda.SchemaRegistryAcl(\"alter_configs_registry\", new()\n    {\n        ClusterId = testCluster.Id,\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        ResourceType = \"REGISTRY\",\n        ResourceName = \"*\",\n        PatternType = \"LITERAL\",\n        Host = \"*\",\n        Operation = \"ALTER_CONFIGS\",\n        Permission = \"ALLOW\",\n        Username = testUser.Name,\n        Password = srAclPasswordWo != null ? null : userPw,\n        PasswordWo = srAclPasswordWo,\n        PasswordWoVersion = srAclPasswordWoVersion,\n        AllowDeletion = true,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            schemaRegistryAdmin,\n        },\n    });\n\n    var readRegistry = new Redpanda.SchemaRegistryAcl(\"read_registry\", new()\n    {\n        ClusterId = testCluster.Id,\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        ResourceType = \"REGISTRY\",\n        ResourceName = \"*\",\n        PatternType = \"LITERAL\",\n        Host = \"*\",\n        Operation = \"READ\",\n        Permission = \"ALLOW\",\n        Username = testUser.Name,\n        Password = srAclPasswordWo != null ? null : userPw,\n        PasswordWo = srAclPasswordWo,\n        PasswordWoVersion = srAclPasswordWoVersion,\n        AllowDeletion = true,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            schemaRegistryAdmin,\n        },\n    });\n\n    var writeRegistry = new Redpanda.SchemaRegistryAcl(\"write_registry\", new()\n    {\n        ClusterId = testCluster.Id,\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        ResourceType = \"REGISTRY\",\n        ResourceName = \"*\",\n        PatternType = \"LITERAL\",\n        Host = \"*\",\n        Operation = \"WRITE\",\n        Permission = \"ALLOW\",\n        Username = testUser.Name,\n        Password = srAclPasswordWo != null ? null : userPw,\n        PasswordWo = srAclPasswordWo,\n        PasswordWoVersion = srAclPasswordWoVersion,\n        AllowDeletion = true,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            schemaRegistryAdmin,\n        },\n    });\n\n    var userSchema = new Redpanda.Schema(\"user_schema\", new()\n    {\n        ClusterId = testCluster.Id,\n        Subject = $\"{topicName}-value\",\n        SchemaType = schemaType,\n        Schema = userSchemaDefinition,\n        Username = testUser.Name,\n        Password = schemaPasswordWo != null ? null : userPw,\n        PasswordWo = schemaPasswordWo,\n        PasswordWoVersion = schemaPasswordWoVersion,\n        AllowDeletion = true,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            clusterAdmin,\n            schemaRegistryAdmin,\n            clusterAction,\n            topicAccess,\n            allTestTopic,\n            describeRegistry,\n            alterConfigsRegistry,\n            readRegistry,\n            writeRegistry,\n        },\n    });\n\n    var userEventSchema = new Redpanda.Schema(\"user_event_schema\", new()\n    {\n        ClusterId = testCluster.Id,\n        Subject = $\"{topicName}-events-value\",\n        SchemaType = schemaType,\n        Schema = userEventSchemaDefinition,\n        Username = testUser.Name,\n        Password = schemaPasswordWo != null ? null : userPw,\n        PasswordWo = schemaPasswordWo,\n        PasswordWoVersion = schemaPasswordWoVersion,\n        AllowDeletion = true,\n        References = new[]\n        {\n            new Redpanda.Inputs.SchemaReferenceArgs\n            {\n                Name = \"User\",\n                Subject = userSchema.Subject,\n                Version = userSchema.Version,\n            },\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            clusterAdmin,\n            schemaRegistryAdmin,\n            clusterAction,\n            topicAccess,\n            allTestTopic,\n            describeRegistry,\n            alterConfigsRegistry,\n            readRegistry,\n            writeRegistry,\n        },\n    });\n\n    var productSchema = new Redpanda.Schema(\"product_schema\", new()\n    {\n        ClusterId = testCluster.Id,\n        Subject = $\"{topicName}-product-value\",\n        SchemaType = schemaType,\n        Schema = productSchemaDefinition,\n        Compatibility = compatibilityLevel,\n        Username = testUser.Name,\n        Password = schemaPasswordWo != null ? null : userPw,\n        PasswordWo = schemaPasswordWo,\n        PasswordWoVersion = schemaPasswordWoVersion,\n        AllowDeletion = true,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            clusterAdmin,\n            schemaRegistryAdmin,\n            clusterAction,\n            topicAccess,\n            allTestTopic,\n            describeRegistry,\n            alterConfigsRegistry,\n            readRegistry,\n            writeRegistry,\n        },\n    });\n\n    var readProduct = new Redpanda.SchemaRegistryAcl(\"read_product\", new()\n    {\n        ClusterId = testCluster.Id,\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        ResourceType = \"SUBJECT\",\n        ResourceName = \"product-\",\n        PatternType = \"PREFIXED\",\n        Host = \"*\",\n        Operation = \"READ\",\n        Permission = \"ALLOW\",\n        Username = testUser.Name,\n        Password = srAclPasswordWo != null ? null : userPw,\n        PasswordWo = srAclPasswordWo,\n        PasswordWoVersion = srAclPasswordWoVersion,\n        AllowDeletion = srAclAllowDeletion,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            schemaRegistryAdmin,\n        },\n    });\n\n    var writeOrders = new Redpanda.SchemaRegistryAcl(\"write_orders\", new()\n    {\n        ClusterId = testCluster.Id,\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        ResourceType = \"SUBJECT\",\n        ResourceName = \"orders-value\",\n        PatternType = \"LITERAL\",\n        Host = \"*\",\n        Operation = \"WRITE\",\n        Permission = \"ALLOW\",\n        Username = testUser.Name,\n        Password = srAclPasswordWo != null ? null : userPw,\n        PasswordWo = srAclPasswordWo,\n        PasswordWoVersion = srAclPasswordWoVersion,\n        AllowDeletion = true,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            schemaRegistryAdmin,\n        },\n    });\n\n    var developer = new Redpanda.Role(\"developer\", new()\n    {\n        Name = roleName,\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        AllowDeletion = roleAllowDeletion,\n    });\n\n    var developerAssignment = new Redpanda.RoleAssignment(\"developer_assignment\", new()\n    {\n        RoleName = developer.Name,\n        Principal = testUser.Name,\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            testUser,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"userSchemaInfo\"] = \n        {\n            { \"id\", userSchema.SchemaId },\n            { \"subject\", userSchema.Subject },\n            { \"version\", userSchema.Version },\n            { \"type\", userSchema.SchemaType },\n        },\n        [\"userEventSchemaInfo\"] = \n        {\n            { \"id\", userEventSchema.SchemaId },\n            { \"subject\", userEventSchema.Subject },\n            { \"version\", userEventSchema.Version },\n            { \"type\", userEventSchema.SchemaType },\n            { \"references\", userEventSchema.References },\n        },\n        [\"productSchemaInfo\"] = \n        {\n            { \"id\", productSchema.SchemaId },\n            { \"subject\", productSchema.Subject },\n            { \"version\", productSchema.Version },\n            { \"type\", productSchema.SchemaType },\n            { \"compatibility\", productSchema.Compatibility },\n        },\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/redpanda/redpanda\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := redpanda.NewResourceGroup(ctx, \"test\", \u0026redpanda.ResourceGroupArgs{\n\t\t\tName: pulumi.Any(resourceGroupName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestNetwork, err := redpanda.NewNetwork(ctx, \"test\", \u0026redpanda.NetworkArgs{\n\t\t\tName:            pulumi.Any(networkName),\n\t\t\tResourceGroupId: test.ID(),\n\t\t\tCloudProvider:   pulumi.Any(cloudProvider),\n\t\t\tRegion:          pulumi.Any(region),\n\t\t\tClusterType:     pulumi.String(\"dedicated\"),\n\t\t\tCidrBlock:       pulumi.String(\"10.0.0.0/20\"),\n\t\t\tTimeouts: \u0026redpanda.NetworkTimeoutsArgs{\n\t\t\t\tCreate: pulumi.String(\"20m\"),\n\t\t\t\tDelete: pulumi.String(\"20m\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"enable_shadow_linking\":                clusterEnableShadowLinking,\n\t\t\t\"schema_registry_enable_authorization\": true,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\ttestCluster, err := redpanda.NewCluster(ctx, \"test\", \u0026redpanda.ClusterArgs{\n\t\t\tName:            pulumi.Any(clusterName),\n\t\t\tResourceGroupId: test.ID(),\n\t\t\tNetworkId:       testNetwork.ID(),\n\t\t\tCloudProvider:   pulumi.Any(cloudProvider),\n\t\t\tRegion:          pulumi.Any(region),\n\t\t\tClusterType:     pulumi.String(\"dedicated\"),\n\t\t\tConnectionType:  pulumi.String(\"public\"),\n\t\t\tThroughputTier:  pulumi.Any(throughputTier),\n\t\t\tZones:           pulumi.Any(zones),\n\t\t\tAllowDeletion:   pulumi.Any(clusterAllowDeletion),\n\t\t\tClusterConfiguration: \u0026redpanda.ClusterClusterConfigurationArgs{\n\t\t\t\tCustomPropertiesJson: pulumi.String(json0),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t\tTimeouts: \u0026redpanda.ClusterTimeoutsArgs{\n\t\t\t\tCreate: pulumi.String(\"90m\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar tmp0 pulumi.String\n\t\tif userPasswordWo != nil {\n\t\t\ttmp0 = nil\n\t\t} else {\n\t\t\ttmp0 = pulumi.Any(userPw)\n\t\t}\n\t\ttestUser, err := redpanda.NewUser(ctx, \"test\", \u0026redpanda.UserArgs{\n\t\t\tName:              pulumi.Any(userName),\n\t\t\tPassword:          pulumi.String(tmp0),\n\t\t\tPasswordWo:        pulumi.Any(userPasswordWo),\n\t\t\tPasswordWoVersion: pulumi.Any(userPasswordWoVersion),\n\t\t\tMechanism:         pulumi.Any(mechanism),\n\t\t\tClusterApiUrl:     testCluster.ClusterApiUrl,\n\t\t\tAllowDeletion:     pulumi.Any(userAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redpanda.NewTopic(ctx, \"test\", \u0026redpanda.TopicArgs{\n\t\t\tName:              pulumi.Any(topicName),\n\t\t\tPartitionCount:    pulumi.Any(partitionCount),\n\t\t\tReplicationFactor: pulumi.Any(replicationFactor),\n\t\t\tClusterApiUrl:     testCluster.ClusterApiUrl,\n\t\t\tAllowDeletion:     pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\ttestUser,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tclusterAdmin, err := redpanda.NewAcl(ctx, \"cluster_admin\", \u0026redpanda.AclArgs{\n\t\t\tResourceType:        pulumi.String(\"CLUSTER\"),\n\t\t\tResourceName:        pulumi.String(\"kafka-cluster\"),\n\t\t\tResourcePatternType: pulumi.String(\"LITERAL\"),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tHost:           pulumi.String(\"*\"),\n\t\t\tOperation:      pulumi.String(\"ALL\"),\n\t\t\tPermissionType: pulumi.String(\"ALLOW\"),\n\t\t\tClusterApiUrl:  testCluster.ClusterApiUrl,\n\t\t\tAllowDeletion:  pulumi.Any(aclAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tschemaRegistryAdmin, err := redpanda.NewAcl(ctx, \"schema_registry_admin\", \u0026redpanda.AclArgs{\n\t\t\tResourceType:        pulumi.String(\"CLUSTER\"),\n\t\t\tResourceName:        pulumi.String(\"kafka-cluster\"),\n\t\t\tResourcePatternType: pulumi.String(\"LITERAL\"),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tHost:           pulumi.String(\"*\"),\n\t\t\tOperation:      pulumi.String(\"ALTER\"),\n\t\t\tPermissionType: pulumi.String(\"ALLOW\"),\n\t\t\tClusterApiUrl:  testCluster.ClusterApiUrl,\n\t\t\tAllowDeletion:  pulumi.Any(aclAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tclusterAction, err := redpanda.NewAcl(ctx, \"cluster_action\", \u0026redpanda.AclArgs{\n\t\t\tResourceType:        pulumi.String(\"CLUSTER\"),\n\t\t\tResourceName:        pulumi.String(\"kafka-cluster\"),\n\t\t\tResourcePatternType: pulumi.String(\"LITERAL\"),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tHost:           pulumi.String(\"*\"),\n\t\t\tOperation:      pulumi.String(\"CLUSTER_ACTION\"),\n\t\t\tPermissionType: pulumi.String(\"ALLOW\"),\n\t\t\tClusterApiUrl:  testCluster.ClusterApiUrl,\n\t\t\tAllowDeletion:  pulumi.Any(aclAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttopicAccess, err := redpanda.NewAcl(ctx, \"topic_access\", \u0026redpanda.AclArgs{\n\t\t\tResourceType:        pulumi.String(\"TOPIC\"),\n\t\t\tResourceName:        pulumi.Any(topicName),\n\t\t\tResourcePatternType: pulumi.String(\"LITERAL\"),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tHost:           pulumi.String(\"*\"),\n\t\t\tOperation:      pulumi.String(\"ALL\"),\n\t\t\tPermissionType: pulumi.String(\"ALLOW\"),\n\t\t\tClusterApiUrl:  testCluster.ClusterApiUrl,\n\t\t\tAllowDeletion:  pulumi.Any(aclAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar tmp1 pulumi.String\n\t\tif srAclPasswordWo != nil {\n\t\t\ttmp1 = nil\n\t\t} else {\n\t\t\ttmp1 = pulumi.Any(userPw)\n\t\t}\n\t\tallTestTopic, err := redpanda.NewSchemaRegistryAcl(ctx, \"all_test_topic\", \u0026redpanda.SchemaRegistryAclArgs{\n\t\t\tClusterId: testCluster.ID(),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tResourceType:      pulumi.String(\"SUBJECT\"),\n\t\t\tResourceName:      pulumi.Sprintf(\"%v-\", topicName),\n\t\t\tPatternType:       pulumi.String(\"PREFIXED\"),\n\t\t\tHost:              pulumi.String(\"*\"),\n\t\t\tOperation:         pulumi.String(\"ALL\"),\n\t\t\tPermission:        pulumi.String(\"ALLOW\"),\n\t\t\tUsername:          testUser.Name,\n\t\t\tPassword:          pulumi.String(tmp1),\n\t\t\tPasswordWo:        pulumi.Any(srAclPasswordWo),\n\t\t\tPasswordWoVersion: pulumi.Any(srAclPasswordWoVersion),\n\t\t\tAllowDeletion:     pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tschemaRegistryAdmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar tmp2 pulumi.String\n\t\tif srAclPasswordWo != nil {\n\t\t\ttmp2 = nil\n\t\t} else {\n\t\t\ttmp2 = pulumi.Any(userPw)\n\t\t}\n\t\tdescribeRegistry, err := redpanda.NewSchemaRegistryAcl(ctx, \"describe_registry\", \u0026redpanda.SchemaRegistryAclArgs{\n\t\t\tClusterId: testCluster.ID(),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tResourceType:      pulumi.String(\"REGISTRY\"),\n\t\t\tResourceName:      pulumi.String(\"*\"),\n\t\t\tPatternType:       pulumi.String(\"LITERAL\"),\n\t\t\tHost:              pulumi.String(\"*\"),\n\t\t\tOperation:         pulumi.String(\"DESCRIBE\"),\n\t\t\tPermission:        pulumi.String(\"ALLOW\"),\n\t\t\tUsername:          testUser.Name,\n\t\t\tPassword:          pulumi.String(tmp2),\n\t\t\tPasswordWo:        pulumi.Any(srAclPasswordWo),\n\t\t\tPasswordWoVersion: pulumi.Any(srAclPasswordWoVersion),\n\t\t\tAllowDeletion:     pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tschemaRegistryAdmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar tmp3 pulumi.String\n\t\tif srAclPasswordWo != nil {\n\t\t\ttmp3 = nil\n\t\t} else {\n\t\t\ttmp3 = pulumi.Any(userPw)\n\t\t}\n\t\talterConfigsRegistry, err := redpanda.NewSchemaRegistryAcl(ctx, \"alter_configs_registry\", \u0026redpanda.SchemaRegistryAclArgs{\n\t\t\tClusterId: testCluster.ID(),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tResourceType:      pulumi.String(\"REGISTRY\"),\n\t\t\tResourceName:      pulumi.String(\"*\"),\n\t\t\tPatternType:       pulumi.String(\"LITERAL\"),\n\t\t\tHost:              pulumi.String(\"*\"),\n\t\t\tOperation:         pulumi.String(\"ALTER_CONFIGS\"),\n\t\t\tPermission:        pulumi.String(\"ALLOW\"),\n\t\t\tUsername:          testUser.Name,\n\t\t\tPassword:          pulumi.String(tmp3),\n\t\t\tPasswordWo:        pulumi.Any(srAclPasswordWo),\n\t\t\tPasswordWoVersion: pulumi.Any(srAclPasswordWoVersion),\n\t\t\tAllowDeletion:     pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tschemaRegistryAdmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar tmp4 pulumi.String\n\t\tif srAclPasswordWo != nil {\n\t\t\ttmp4 = nil\n\t\t} else {\n\t\t\ttmp4 = pulumi.Any(userPw)\n\t\t}\n\t\treadRegistry, err := redpanda.NewSchemaRegistryAcl(ctx, \"read_registry\", \u0026redpanda.SchemaRegistryAclArgs{\n\t\t\tClusterId: testCluster.ID(),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tResourceType:      pulumi.String(\"REGISTRY\"),\n\t\t\tResourceName:      pulumi.String(\"*\"),\n\t\t\tPatternType:       pulumi.String(\"LITERAL\"),\n\t\t\tHost:              pulumi.String(\"*\"),\n\t\t\tOperation:         pulumi.String(\"READ\"),\n\t\t\tPermission:        pulumi.String(\"ALLOW\"),\n\t\t\tUsername:          testUser.Name,\n\t\t\tPassword:          pulumi.String(tmp4),\n\t\t\tPasswordWo:        pulumi.Any(srAclPasswordWo),\n\t\t\tPasswordWoVersion: pulumi.Any(srAclPasswordWoVersion),\n\t\t\tAllowDeletion:     pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tschemaRegistryAdmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar tmp5 pulumi.String\n\t\tif srAclPasswordWo != nil {\n\t\t\ttmp5 = nil\n\t\t} else {\n\t\t\ttmp5 = pulumi.Any(userPw)\n\t\t}\n\t\twriteRegistry, err := redpanda.NewSchemaRegistryAcl(ctx, \"write_registry\", \u0026redpanda.SchemaRegistryAclArgs{\n\t\t\tClusterId: testCluster.ID(),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tResourceType:      pulumi.String(\"REGISTRY\"),\n\t\t\tResourceName:      pulumi.String(\"*\"),\n\t\t\tPatternType:       pulumi.String(\"LITERAL\"),\n\t\t\tHost:              pulumi.String(\"*\"),\n\t\t\tOperation:         pulumi.String(\"WRITE\"),\n\t\t\tPermission:        pulumi.String(\"ALLOW\"),\n\t\t\tUsername:          testUser.Name,\n\t\t\tPassword:          pulumi.String(tmp5),\n\t\t\tPasswordWo:        pulumi.Any(srAclPasswordWo),\n\t\t\tPasswordWoVersion: pulumi.Any(srAclPasswordWoVersion),\n\t\t\tAllowDeletion:     pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tschemaRegistryAdmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar tmp6 pulumi.String\n\t\tif schemaPasswordWo != nil {\n\t\t\ttmp6 = nil\n\t\t} else {\n\t\t\ttmp6 = pulumi.Any(userPw)\n\t\t}\n\t\tuserSchema, err := redpanda.NewSchema(ctx, \"user_schema\", \u0026redpanda.SchemaArgs{\n\t\t\tClusterId:         testCluster.ID(),\n\t\t\tSubject:           pulumi.Sprintf(\"%v-value\", topicName),\n\t\t\tSchemaType:        pulumi.Any(schemaType),\n\t\t\tSchema:            pulumi.Any(userSchemaDefinition),\n\t\t\tUsername:          testUser.Name,\n\t\t\tPassword:          pulumi.String(tmp6),\n\t\t\tPasswordWo:        pulumi.Any(schemaPasswordWo),\n\t\t\tPasswordWoVersion: pulumi.Any(schemaPasswordWoVersion),\n\t\t\tAllowDeletion:     pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tclusterAdmin,\n\t\t\tschemaRegistryAdmin,\n\t\t\tclusterAction,\n\t\t\ttopicAccess,\n\t\t\tallTestTopic,\n\t\t\tdescribeRegistry,\n\t\t\talterConfigsRegistry,\n\t\t\treadRegistry,\n\t\t\twriteRegistry,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar tmp7 pulumi.String\n\t\tif schemaPasswordWo != nil {\n\t\t\ttmp7 = nil\n\t\t} else {\n\t\t\ttmp7 = pulumi.Any(userPw)\n\t\t}\n\t\tuserEventSchema, err := redpanda.NewSchema(ctx, \"user_event_schema\", \u0026redpanda.SchemaArgs{\n\t\t\tClusterId:         testCluster.ID(),\n\t\t\tSubject:           pulumi.Sprintf(\"%v-events-value\", topicName),\n\t\t\tSchemaType:        pulumi.Any(schemaType),\n\t\t\tSchema:            pulumi.Any(userEventSchemaDefinition),\n\t\t\tUsername:          testUser.Name,\n\t\t\tPassword:          pulumi.String(tmp7),\n\t\t\tPasswordWo:        pulumi.Any(schemaPasswordWo),\n\t\t\tPasswordWoVersion: pulumi.Any(schemaPasswordWoVersion),\n\t\t\tAllowDeletion:     pulumi.Bool(true),\n\t\t\tReferences: redpanda.SchemaReferenceArray{\n\t\t\t\t\u0026redpanda.SchemaReferenceArgs{\n\t\t\t\t\tName:    pulumi.String(\"User\"),\n\t\t\t\t\tSubject: userSchema.Subject,\n\t\t\t\t\tVersion: userSchema.Version,\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tclusterAdmin,\n\t\t\tschemaRegistryAdmin,\n\t\t\tclusterAction,\n\t\t\ttopicAccess,\n\t\t\tallTestTopic,\n\t\t\tdescribeRegistry,\n\t\t\talterConfigsRegistry,\n\t\t\treadRegistry,\n\t\t\twriteRegistry,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar tmp8 pulumi.String\n\t\tif schemaPasswordWo != nil {\n\t\t\ttmp8 = nil\n\t\t} else {\n\t\t\ttmp8 = pulumi.Any(userPw)\n\t\t}\n\t\tproductSchema, err := redpanda.NewSchema(ctx, \"product_schema\", \u0026redpanda.SchemaArgs{\n\t\t\tClusterId:         testCluster.ID(),\n\t\t\tSubject:           pulumi.Sprintf(\"%v-product-value\", topicName),\n\t\t\tSchemaType:        pulumi.Any(schemaType),\n\t\t\tSchema:            pulumi.Any(productSchemaDefinition),\n\t\t\tCompatibility:     pulumi.Any(compatibilityLevel),\n\t\t\tUsername:          testUser.Name,\n\t\t\tPassword:          pulumi.String(tmp8),\n\t\t\tPasswordWo:        pulumi.Any(schemaPasswordWo),\n\t\t\tPasswordWoVersion: pulumi.Any(schemaPasswordWoVersion),\n\t\t\tAllowDeletion:     pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tclusterAdmin,\n\t\t\tschemaRegistryAdmin,\n\t\t\tclusterAction,\n\t\t\ttopicAccess,\n\t\t\tallTestTopic,\n\t\t\tdescribeRegistry,\n\t\t\talterConfigsRegistry,\n\t\t\treadRegistry,\n\t\t\twriteRegistry,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar tmp9 pulumi.String\n\t\tif srAclPasswordWo != nil {\n\t\t\ttmp9 = nil\n\t\t} else {\n\t\t\ttmp9 = pulumi.Any(userPw)\n\t\t}\n\t\t_, err = redpanda.NewSchemaRegistryAcl(ctx, \"read_product\", \u0026redpanda.SchemaRegistryAclArgs{\n\t\t\tClusterId: testCluster.ID(),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tResourceType:      pulumi.String(\"SUBJECT\"),\n\t\t\tResourceName:      pulumi.String(\"product-\"),\n\t\t\tPatternType:       pulumi.String(\"PREFIXED\"),\n\t\t\tHost:              pulumi.String(\"*\"),\n\t\t\tOperation:         pulumi.String(\"READ\"),\n\t\t\tPermission:        pulumi.String(\"ALLOW\"),\n\t\t\tUsername:          testUser.Name,\n\t\t\tPassword:          pulumi.String(tmp9),\n\t\t\tPasswordWo:        pulumi.Any(srAclPasswordWo),\n\t\t\tPasswordWoVersion: pulumi.Any(srAclPasswordWoVersion),\n\t\t\tAllowDeletion:     pulumi.Any(srAclAllowDeletion),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tschemaRegistryAdmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar tmp10 pulumi.String\n\t\tif srAclPasswordWo != nil {\n\t\t\ttmp10 = nil\n\t\t} else {\n\t\t\ttmp10 = pulumi.Any(userPw)\n\t\t}\n\t\t_, err = redpanda.NewSchemaRegistryAcl(ctx, \"write_orders\", \u0026redpanda.SchemaRegistryAclArgs{\n\t\t\tClusterId: testCluster.ID(),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tResourceType:      pulumi.String(\"SUBJECT\"),\n\t\t\tResourceName:      pulumi.String(\"orders-value\"),\n\t\t\tPatternType:       pulumi.String(\"LITERAL\"),\n\t\t\tHost:              pulumi.String(\"*\"),\n\t\t\tOperation:         pulumi.String(\"WRITE\"),\n\t\t\tPermission:        pulumi.String(\"ALLOW\"),\n\t\t\tUsername:          testUser.Name,\n\t\t\tPassword:          pulumi.String(tmp10),\n\t\t\tPasswordWo:        pulumi.Any(srAclPasswordWo),\n\t\t\tPasswordWoVersion: pulumi.Any(srAclPasswordWoVersion),\n\t\t\tAllowDeletion:     pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tschemaRegistryAdmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdeveloper, err := redpanda.NewRole(ctx, \"developer\", \u0026redpanda.RoleArgs{\n\t\t\tName:          pulumi.Any(roleName),\n\t\t\tClusterApiUrl: testCluster.ClusterApiUrl,\n\t\t\tAllowDeletion: pulumi.Any(roleAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redpanda.NewRoleAssignment(ctx, \"developer_assignment\", \u0026redpanda.RoleAssignmentArgs{\n\t\t\tRoleName:      developer.Name,\n\t\t\tPrincipal:     testUser.Name,\n\t\t\tClusterApiUrl: testCluster.ClusterApiUrl,\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\ttestUser,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"userSchemaInfo\", pulumi.Map{\n\t\t\t\"id\":      userSchema.SchemaId,\n\t\t\t\"subject\": userSchema.Subject,\n\t\t\t\"version\": userSchema.Version,\n\t\t\t\"type\":    userSchema.SchemaType,\n\t\t})\n\t\tctx.Export(\"userEventSchemaInfo\", pulumi.Map{\n\t\t\t\"id\":         userEventSchema.SchemaId,\n\t\t\t\"subject\":    userEventSchema.Subject,\n\t\t\t\"version\":    userEventSchema.Version,\n\t\t\t\"type\":       userEventSchema.SchemaType,\n\t\t\t\"references\": userEventSchema.References,\n\t\t})\n\t\tctx.Export(\"productSchemaInfo\", pulumi.Map{\n\t\t\t\"id\":            productSchema.SchemaId,\n\t\t\t\"subject\":       productSchema.Subject,\n\t\t\t\"version\":       productSchema.Version,\n\t\t\t\"type\":          productSchema.SchemaType,\n\t\t\t\"compatibility\": productSchema.Compatibility,\n\t\t})\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.redpanda.ResourceGroup;\nimport com.pulumi.redpanda.ResourceGroupArgs;\nimport com.pulumi.redpanda.Network;\nimport com.pulumi.redpanda.NetworkArgs;\nimport com.pulumi.redpanda.inputs.NetworkTimeoutsArgs;\nimport com.pulumi.redpanda.Cluster;\nimport com.pulumi.redpanda.ClusterArgs;\nimport com.pulumi.redpanda.inputs.ClusterClusterConfigurationArgs;\nimport com.pulumi.redpanda.inputs.ClusterTimeoutsArgs;\nimport com.pulumi.redpanda.User;\nimport com.pulumi.redpanda.UserArgs;\nimport com.pulumi.redpanda.Topic;\nimport com.pulumi.redpanda.TopicArgs;\nimport com.pulumi.redpanda.Acl;\nimport com.pulumi.redpanda.AclArgs;\nimport com.pulumi.redpanda.SchemaRegistryAcl;\nimport com.pulumi.redpanda.SchemaRegistryAclArgs;\nimport com.pulumi.redpanda.Schema;\nimport com.pulumi.redpanda.SchemaArgs;\nimport com.pulumi.redpanda.inputs.SchemaReferenceArgs;\nimport com.pulumi.redpanda.Role;\nimport com.pulumi.redpanda.RoleArgs;\nimport com.pulumi.redpanda.RoleAssignment;\nimport com.pulumi.redpanda.RoleAssignmentArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new ResourceGroup(\"test\", ResourceGroupArgs.builder()\n            .name(resourceGroupName)\n            .build());\n\n        var testNetwork = new Network(\"testNetwork\", NetworkArgs.builder()\n            .name(networkName)\n            .resourceGroupId(test.id())\n            .cloudProvider(cloudProvider)\n            .region(region)\n            .clusterType(\"dedicated\")\n            .cidrBlock(\"10.0.0.0/20\")\n            .timeouts(NetworkTimeoutsArgs.builder()\n                .create(\"20m\")\n                .delete(\"20m\")\n                .build())\n            .build());\n\n        var testCluster = new Cluster(\"testCluster\", ClusterArgs.builder()\n            .name(clusterName)\n            .resourceGroupId(test.id())\n            .networkId(testNetwork.id())\n            .cloudProvider(cloudProvider)\n            .region(region)\n            .clusterType(\"dedicated\")\n            .connectionType(\"public\")\n            .throughputTier(throughputTier)\n            .zones(zones)\n            .allowDeletion(clusterAllowDeletion)\n            .clusterConfiguration(ClusterClusterConfigurationArgs.builder()\n                .customPropertiesJson(serializeJson(\n                    jsonObject(\n                        jsonProperty(\"enable_shadow_linking\", clusterEnableShadowLinking),\n                        jsonProperty(\"schema_registry_enable_authorization\", true)\n                    )))\n                .build())\n            .tags(Map.of(\"key\", \"value\"))\n            .timeouts(ClusterTimeoutsArgs.builder()\n                .create(\"90m\")\n                .build())\n            .build());\n\n        var testUser = new User(\"testUser\", UserArgs.builder()\n            .name(userName)\n            .password(userPasswordWo != null ? null : userPw)\n            .passwordWo(userPasswordWo)\n            .passwordWoVersion(userPasswordWoVersion)\n            .mechanism(mechanism)\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .allowDeletion(userAllowDeletion)\n            .build());\n\n        var testTopic = new Topic(\"testTopic\", TopicArgs.builder()\n            .name(topicName)\n            .partitionCount(partitionCount)\n            .replicationFactor(replicationFactor)\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .allowDeletion(true)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(testUser)\n                .build());\n\n        var clusterAdmin = new Acl(\"clusterAdmin\", AclArgs.builder()\n            .resourceType(\"CLUSTER\")\n            .resourceName(\"kafka-cluster\")\n            .resourcePatternType(\"LITERAL\")\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .host(\"*\")\n            .operation(\"ALL\")\n            .permissionType(\"ALLOW\")\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .allowDeletion(aclAllowDeletion)\n            .build());\n\n        var schemaRegistryAdmin = new Acl(\"schemaRegistryAdmin\", AclArgs.builder()\n            .resourceType(\"CLUSTER\")\n            .resourceName(\"kafka-cluster\")\n            .resourcePatternType(\"LITERAL\")\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .host(\"*\")\n            .operation(\"ALTER\")\n            .permissionType(\"ALLOW\")\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .allowDeletion(aclAllowDeletion)\n            .build());\n\n        var clusterAction = new Acl(\"clusterAction\", AclArgs.builder()\n            .resourceType(\"CLUSTER\")\n            .resourceName(\"kafka-cluster\")\n            .resourcePatternType(\"LITERAL\")\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .host(\"*\")\n            .operation(\"CLUSTER_ACTION\")\n            .permissionType(\"ALLOW\")\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .allowDeletion(aclAllowDeletion)\n            .build());\n\n        var topicAccess = new Acl(\"topicAccess\", AclArgs.builder()\n            .resourceType(\"TOPIC\")\n            .resourceName(topicName)\n            .resourcePatternType(\"LITERAL\")\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .host(\"*\")\n            .operation(\"ALL\")\n            .permissionType(\"ALLOW\")\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .allowDeletion(aclAllowDeletion)\n            .build());\n\n        var allTestTopic = new SchemaRegistryAcl(\"allTestTopic\", SchemaRegistryAclArgs.builder()\n            .clusterId(testCluster.id())\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .resourceType(\"SUBJECT\")\n            .resourceName(String.format(\"%s-\", topicName))\n            .patternType(\"PREFIXED\")\n            .host(\"*\")\n            .operation(\"ALL\")\n            .permission(\"ALLOW\")\n            .username(testUser.name())\n            .password(srAclPasswordWo != null ? null : userPw)\n            .passwordWo(srAclPasswordWo)\n            .passwordWoVersion(srAclPasswordWoVersion)\n            .allowDeletion(true)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(schemaRegistryAdmin)\n                .build());\n\n        var describeRegistry = new SchemaRegistryAcl(\"describeRegistry\", SchemaRegistryAclArgs.builder()\n            .clusterId(testCluster.id())\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .resourceType(\"REGISTRY\")\n            .resourceName(\"*\")\n            .patternType(\"LITERAL\")\n            .host(\"*\")\n            .operation(\"DESCRIBE\")\n            .permission(\"ALLOW\")\n            .username(testUser.name())\n            .password(srAclPasswordWo != null ? null : userPw)\n            .passwordWo(srAclPasswordWo)\n            .passwordWoVersion(srAclPasswordWoVersion)\n            .allowDeletion(true)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(schemaRegistryAdmin)\n                .build());\n\n        var alterConfigsRegistry = new SchemaRegistryAcl(\"alterConfigsRegistry\", SchemaRegistryAclArgs.builder()\n            .clusterId(testCluster.id())\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .resourceType(\"REGISTRY\")\n            .resourceName(\"*\")\n            .patternType(\"LITERAL\")\n            .host(\"*\")\n            .operation(\"ALTER_CONFIGS\")\n            .permission(\"ALLOW\")\n            .username(testUser.name())\n            .password(srAclPasswordWo != null ? null : userPw)\n            .passwordWo(srAclPasswordWo)\n            .passwordWoVersion(srAclPasswordWoVersion)\n            .allowDeletion(true)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(schemaRegistryAdmin)\n                .build());\n\n        var readRegistry = new SchemaRegistryAcl(\"readRegistry\", SchemaRegistryAclArgs.builder()\n            .clusterId(testCluster.id())\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .resourceType(\"REGISTRY\")\n            .resourceName(\"*\")\n            .patternType(\"LITERAL\")\n            .host(\"*\")\n            .operation(\"READ\")\n            .permission(\"ALLOW\")\n            .username(testUser.name())\n            .password(srAclPasswordWo != null ? null : userPw)\n            .passwordWo(srAclPasswordWo)\n            .passwordWoVersion(srAclPasswordWoVersion)\n            .allowDeletion(true)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(schemaRegistryAdmin)\n                .build());\n\n        var writeRegistry = new SchemaRegistryAcl(\"writeRegistry\", SchemaRegistryAclArgs.builder()\n            .clusterId(testCluster.id())\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .resourceType(\"REGISTRY\")\n            .resourceName(\"*\")\n            .patternType(\"LITERAL\")\n            .host(\"*\")\n            .operation(\"WRITE\")\n            .permission(\"ALLOW\")\n            .username(testUser.name())\n            .password(srAclPasswordWo != null ? null : userPw)\n            .passwordWo(srAclPasswordWo)\n            .passwordWoVersion(srAclPasswordWoVersion)\n            .allowDeletion(true)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(schemaRegistryAdmin)\n                .build());\n\n        var userSchema = new Schema(\"userSchema\", SchemaArgs.builder()\n            .clusterId(testCluster.id())\n            .subject(String.format(\"%s-value\", topicName))\n            .schemaType(schemaType)\n            .schema(userSchemaDefinition)\n            .username(testUser.name())\n            .password(schemaPasswordWo != null ? null : userPw)\n            .passwordWo(schemaPasswordWo)\n            .passwordWoVersion(schemaPasswordWoVersion)\n            .allowDeletion(true)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(                \n                    clusterAdmin,\n                    schemaRegistryAdmin,\n                    clusterAction,\n                    topicAccess,\n                    allTestTopic,\n                    describeRegistry,\n                    alterConfigsRegistry,\n                    readRegistry,\n                    writeRegistry)\n                .build());\n\n        var userEventSchema = new Schema(\"userEventSchema\", SchemaArgs.builder()\n            .clusterId(testCluster.id())\n            .subject(String.format(\"%s-events-value\", topicName))\n            .schemaType(schemaType)\n            .schema(userEventSchemaDefinition)\n            .username(testUser.name())\n            .password(schemaPasswordWo != null ? null : userPw)\n            .passwordWo(schemaPasswordWo)\n            .passwordWoVersion(schemaPasswordWoVersion)\n            .allowDeletion(true)\n            .references(SchemaReferenceArgs.builder()\n                .name(\"User\")\n                .subject(userSchema.subject())\n                .version(userSchema.version())\n                .build())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(                \n                    clusterAdmin,\n                    schemaRegistryAdmin,\n                    clusterAction,\n                    topicAccess,\n                    allTestTopic,\n                    describeRegistry,\n                    alterConfigsRegistry,\n                    readRegistry,\n                    writeRegistry)\n                .build());\n\n        var productSchema = new Schema(\"productSchema\", SchemaArgs.builder()\n            .clusterId(testCluster.id())\n            .subject(String.format(\"%s-product-value\", topicName))\n            .schemaType(schemaType)\n            .schema(productSchemaDefinition)\n            .compatibility(compatibilityLevel)\n            .username(testUser.name())\n            .password(schemaPasswordWo != null ? null : userPw)\n            .passwordWo(schemaPasswordWo)\n            .passwordWoVersion(schemaPasswordWoVersion)\n            .allowDeletion(true)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(                \n                    clusterAdmin,\n                    schemaRegistryAdmin,\n                    clusterAction,\n                    topicAccess,\n                    allTestTopic,\n                    describeRegistry,\n                    alterConfigsRegistry,\n                    readRegistry,\n                    writeRegistry)\n                .build());\n\n        var readProduct = new SchemaRegistryAcl(\"readProduct\", SchemaRegistryAclArgs.builder()\n            .clusterId(testCluster.id())\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .resourceType(\"SUBJECT\")\n            .resourceName(\"product-\")\n            .patternType(\"PREFIXED\")\n            .host(\"*\")\n            .operation(\"READ\")\n            .permission(\"ALLOW\")\n            .username(testUser.name())\n            .password(srAclPasswordWo != null ? null : userPw)\n            .passwordWo(srAclPasswordWo)\n            .passwordWoVersion(srAclPasswordWoVersion)\n            .allowDeletion(srAclAllowDeletion)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(schemaRegistryAdmin)\n                .build());\n\n        var writeOrders = new SchemaRegistryAcl(\"writeOrders\", SchemaRegistryAclArgs.builder()\n            .clusterId(testCluster.id())\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .resourceType(\"SUBJECT\")\n            .resourceName(\"orders-value\")\n            .patternType(\"LITERAL\")\n            .host(\"*\")\n            .operation(\"WRITE\")\n            .permission(\"ALLOW\")\n            .username(testUser.name())\n            .password(srAclPasswordWo != null ? null : userPw)\n            .passwordWo(srAclPasswordWo)\n            .passwordWoVersion(srAclPasswordWoVersion)\n            .allowDeletion(true)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(schemaRegistryAdmin)\n                .build());\n\n        var developer = new Role(\"developer\", RoleArgs.builder()\n            .name(roleName)\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .allowDeletion(roleAllowDeletion)\n            .build());\n\n        var developerAssignment = new RoleAssignment(\"developerAssignment\", RoleAssignmentArgs.builder()\n            .roleName(developer.name())\n            .principal(testUser.name())\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(testUser)\n                .build());\n\n        ctx.export(\"userSchemaInfo\", Map.ofEntries(\n            Map.entry(\"id\", userSchema.schemaId()),\n            Map.entry(\"subject\", userSchema.subject()),\n            Map.entry(\"version\", userSchema.version()),\n            Map.entry(\"type\", userSchema.schemaType())\n        ));\n        ctx.export(\"userEventSchemaInfo\", Map.ofEntries(\n            Map.entry(\"id\", userEventSchema.schemaId()),\n            Map.entry(\"subject\", userEventSchema.subject()),\n            Map.entry(\"version\", userEventSchema.version()),\n            Map.entry(\"type\", userEventSchema.schemaType()),\n            Map.entry(\"references\", userEventSchema.references())\n        ));\n        ctx.export(\"productSchemaInfo\", Map.ofEntries(\n            Map.entry(\"id\", productSchema.schemaId()),\n            Map.entry(\"subject\", productSchema.subject()),\n            Map.entry(\"version\", productSchema.version()),\n            Map.entry(\"type\", productSchema.schemaType()),\n            Map.entry(\"compatibility\", productSchema.compatibility())\n        ));\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### On GCP\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as redpanda from \"@pulumi/redpanda\";\n\nconst test = new redpanda.ResourceGroup(\"test\", {name: resourceGroupName});\nconst testNetwork = new redpanda.Network(\"test\", {\n    name: networkName,\n    resourceGroupId: test.id,\n    cloudProvider: cloudProvider,\n    region: region,\n    clusterType: \"dedicated\",\n    cidrBlock: \"10.0.0.0/20\",\n    timeouts: {\n        create: \"20m\",\n        \"delete\": \"20m\",\n    },\n});\nconst testCluster = new redpanda.Cluster(\"test\", {\n    name: clusterName,\n    resourceGroupId: test.id,\n    networkId: testNetwork.id,\n    cloudProvider: cloudProvider,\n    region: region,\n    clusterType: \"dedicated\",\n    connectionType: \"public\",\n    throughputTier: throughputTier,\n    zones: zones,\n    allowDeletion: clusterAllowDeletion,\n    clusterConfiguration: {\n        customPropertiesJson: JSON.stringify({\n            enable_shadow_linking: clusterEnableShadowLinking,\n            schema_registry_enable_authorization: true,\n        }),\n    },\n    timeouts: {\n        create: \"90m\",\n    },\n});\nconst testUser = new redpanda.User(\"test\", {\n    name: userName,\n    password: userPw,\n    mechanism: mechanism,\n    clusterApiUrl: testCluster.clusterApiUrl,\n    allowDeletion: userAllowDeletion,\n});\nconst testTopic = new redpanda.Topic(\"test\", {\n    name: topicName,\n    partitionCount: partitionCount,\n    replicationFactor: replicationFactor,\n    clusterApiUrl: testCluster.clusterApiUrl,\n    allowDeletion: true,\n}, {\n    dependsOn: [testUser],\n});\nconst clusterAdmin = new redpanda.Acl(\"cluster_admin\", {\n    resourceType: \"CLUSTER\",\n    resourceName: \"kafka-cluster\",\n    resourcePatternType: \"LITERAL\",\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    host: \"*\",\n    operation: \"ALL\",\n    permissionType: \"ALLOW\",\n    clusterApiUrl: testCluster.clusterApiUrl,\n    allowDeletion: aclAllowDeletion,\n});\nconst schemaRegistryAdmin = new redpanda.Acl(\"schema_registry_admin\", {\n    resourceType: \"CLUSTER\",\n    resourceName: \"kafka-cluster\",\n    resourcePatternType: \"LITERAL\",\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    host: \"*\",\n    operation: \"ALTER\",\n    permissionType: \"ALLOW\",\n    clusterApiUrl: testCluster.clusterApiUrl,\n    allowDeletion: aclAllowDeletion,\n});\nconst clusterAction = new redpanda.Acl(\"cluster_action\", {\n    resourceType: \"CLUSTER\",\n    resourceName: \"kafka-cluster\",\n    resourcePatternType: \"LITERAL\",\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    host: \"*\",\n    operation: \"CLUSTER_ACTION\",\n    permissionType: \"ALLOW\",\n    clusterApiUrl: testCluster.clusterApiUrl,\n    allowDeletion: aclAllowDeletion,\n});\nconst topicAccess = new redpanda.Acl(\"topic_access\", {\n    resourceType: \"TOPIC\",\n    resourceName: topicName,\n    resourcePatternType: \"LITERAL\",\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    host: \"*\",\n    operation: \"ALL\",\n    permissionType: \"ALLOW\",\n    clusterApiUrl: testCluster.clusterApiUrl,\n    allowDeletion: aclAllowDeletion,\n});\nconst allTestTopic = new redpanda.SchemaRegistryAcl(\"all_test_topic\", {\n    clusterId: testCluster.id,\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    resourceType: \"SUBJECT\",\n    resourceName: `${topicName}-`,\n    patternType: \"PREFIXED\",\n    host: \"*\",\n    operation: \"ALL\",\n    permission: \"ALLOW\",\n    username: testUser.name,\n    password: userPw,\n    allowDeletion: true,\n}, {\n    dependsOn: [schemaRegistryAdmin],\n});\nconst describeRegistry = new redpanda.SchemaRegistryAcl(\"describe_registry\", {\n    clusterId: testCluster.id,\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    resourceType: \"REGISTRY\",\n    resourceName: \"*\",\n    patternType: \"LITERAL\",\n    host: \"*\",\n    operation: \"DESCRIBE\",\n    permission: \"ALLOW\",\n    username: testUser.name,\n    password: userPw,\n    allowDeletion: true,\n}, {\n    dependsOn: [schemaRegistryAdmin],\n});\nconst alterConfigsRegistry = new redpanda.SchemaRegistryAcl(\"alter_configs_registry\", {\n    clusterId: testCluster.id,\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    resourceType: \"REGISTRY\",\n    resourceName: \"*\",\n    patternType: \"LITERAL\",\n    host: \"*\",\n    operation: \"ALTER_CONFIGS\",\n    permission: \"ALLOW\",\n    username: testUser.name,\n    password: userPw,\n    allowDeletion: true,\n}, {\n    dependsOn: [schemaRegistryAdmin],\n});\nconst readRegistry = new redpanda.SchemaRegistryAcl(\"read_registry\", {\n    clusterId: testCluster.id,\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    resourceType: \"REGISTRY\",\n    resourceName: \"*\",\n    patternType: \"LITERAL\",\n    host: \"*\",\n    operation: \"READ\",\n    permission: \"ALLOW\",\n    username: testUser.name,\n    password: userPw,\n    allowDeletion: true,\n}, {\n    dependsOn: [schemaRegistryAdmin],\n});\nconst writeRegistry = new redpanda.SchemaRegistryAcl(\"write_registry\", {\n    clusterId: testCluster.id,\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    resourceType: \"REGISTRY\",\n    resourceName: \"*\",\n    patternType: \"LITERAL\",\n    host: \"*\",\n    operation: \"WRITE\",\n    permission: \"ALLOW\",\n    username: testUser.name,\n    password: userPw,\n    allowDeletion: true,\n}, {\n    dependsOn: [schemaRegistryAdmin],\n});\nconst userSchema = new redpanda.Schema(\"user_schema\", {\n    clusterId: testCluster.id,\n    subject: `${topicName}-value`,\n    schemaType: schemaType,\n    schema: userSchemaDefinition,\n    username: testUser.name,\n    password: userPw,\n    allowDeletion: true,\n}, {\n    dependsOn: [\n        clusterAdmin,\n        schemaRegistryAdmin,\n        clusterAction,\n        topicAccess,\n        allTestTopic,\n        describeRegistry,\n        alterConfigsRegistry,\n        readRegistry,\n        writeRegistry,\n    ],\n});\nconst userEventSchema = new redpanda.Schema(\"user_event_schema\", {\n    clusterId: testCluster.id,\n    subject: `${topicName}-events-value`,\n    schemaType: schemaType,\n    schema: userEventSchemaDefinition,\n    username: testUser.name,\n    password: userPw,\n    allowDeletion: true,\n    references: [{\n        name: \"User\",\n        subject: userSchema.subject,\n        version: userSchema.version,\n    }],\n}, {\n    dependsOn: [\n        clusterAdmin,\n        schemaRegistryAdmin,\n        clusterAction,\n        topicAccess,\n        allTestTopic,\n        describeRegistry,\n        alterConfigsRegistry,\n        readRegistry,\n        writeRegistry,\n    ],\n});\nconst productSchema = new redpanda.Schema(\"product_schema\", {\n    clusterId: testCluster.id,\n    subject: `${topicName}-product-value`,\n    schemaType: schemaType,\n    schema: productSchemaDefinition,\n    compatibility: compatibilityLevel,\n    username: testUser.name,\n    password: userPw,\n    allowDeletion: true,\n}, {\n    dependsOn: [\n        clusterAdmin,\n        schemaRegistryAdmin,\n        clusterAction,\n        topicAccess,\n        allTestTopic,\n        describeRegistry,\n        alterConfigsRegistry,\n        readRegistry,\n        writeRegistry,\n    ],\n});\nconst readProduct = new redpanda.SchemaRegistryAcl(\"read_product\", {\n    clusterId: testCluster.id,\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    resourceType: \"SUBJECT\",\n    resourceName: \"product-\",\n    patternType: \"PREFIXED\",\n    host: \"*\",\n    operation: \"READ\",\n    permission: \"ALLOW\",\n    username: testUser.name,\n    password: userPw,\n    allowDeletion: srAclAllowDeletion,\n}, {\n    dependsOn: [schemaRegistryAdmin],\n});\nconst writeOrders = new redpanda.SchemaRegistryAcl(\"write_orders\", {\n    clusterId: testCluster.id,\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    resourceType: \"SUBJECT\",\n    resourceName: \"orders-value\",\n    patternType: \"LITERAL\",\n    host: \"*\",\n    operation: \"WRITE\",\n    permission: \"ALLOW\",\n    username: testUser.name,\n    password: userPw,\n    allowDeletion: true,\n}, {\n    dependsOn: [schemaRegistryAdmin],\n});\nconst describeTestTopic = new redpanda.SchemaRegistryAcl(\"describe_test_topic\", {\n    clusterId: testCluster.id,\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    resourceType: \"SUBJECT\",\n    resourceName: `${topicName}-`,\n    patternType: \"PREFIXED\",\n    host: \"*\",\n    operation: \"DESCRIBE\",\n    permission: \"ALLOW\",\n    username: testUser.name,\n    password: userPw,\n    allowDeletion: true,\n}, {\n    dependsOn: [schemaRegistryAdmin],\n});\nconst developer = new redpanda.Role(\"developer\", {\n    name: roleName,\n    clusterApiUrl: testCluster.clusterApiUrl,\n    allowDeletion: roleAllowDeletion,\n});\nconst developerAssignment = new redpanda.RoleAssignment(\"developer_assignment\", {\n    roleName: developer.name,\n    principal: testUser.name,\n    clusterApiUrl: testCluster.clusterApiUrl,\n}, {\n    dependsOn: [testUser],\n});\nexport const userSchemaInfo = {\n    id: userSchema.schemaId,\n    subject: userSchema.subject,\n    version: userSchema.version,\n    type: userSchema.schemaType,\n};\nexport const userEventSchemaInfo = {\n    id: userEventSchema.schemaId,\n    subject: userEventSchema.subject,\n    version: userEventSchema.version,\n    type: userEventSchema.schemaType,\n    references: userEventSchema.references,\n};\nexport const productSchemaInfo = {\n    id: productSchema.schemaId,\n    subject: productSchema.subject,\n    version: productSchema.version,\n    type: productSchema.schemaType,\n    compatibility: productSchema.compatibility,\n};\n```\n```python\nimport pulumi\nimport json\nimport pulumi_redpanda as redpanda\n\ntest = redpanda.ResourceGroup(\"test\", name=resource_group_name)\ntest_network = redpanda.Network(\"test\",\n    name=network_name,\n    resource_group_id=test.id,\n    cloud_provider=cloud_provider,\n    region=region,\n    cluster_type=\"dedicated\",\n    cidr_block=\"10.0.0.0/20\",\n    timeouts={\n        \"create\": \"20m\",\n        \"delete\": \"20m\",\n    })\ntest_cluster = redpanda.Cluster(\"test\",\n    name=cluster_name,\n    resource_group_id=test.id,\n    network_id=test_network.id,\n    cloud_provider=cloud_provider,\n    region=region,\n    cluster_type=\"dedicated\",\n    connection_type=\"public\",\n    throughput_tier=throughput_tier,\n    zones=zones,\n    allow_deletion=cluster_allow_deletion,\n    cluster_configuration={\n        \"custom_properties_json\": json.dumps({\n            \"enable_shadow_linking\": cluster_enable_shadow_linking,\n            \"schema_registry_enable_authorization\": True,\n        }),\n    },\n    timeouts={\n        \"create\": \"90m\",\n    })\ntest_user = redpanda.User(\"test\",\n    name=user_name,\n    password=user_pw,\n    mechanism=mechanism,\n    cluster_api_url=test_cluster.cluster_api_url,\n    allow_deletion=user_allow_deletion)\ntest_topic = redpanda.Topic(\"test\",\n    name=topic_name,\n    partition_count=partition_count,\n    replication_factor=replication_factor,\n    cluster_api_url=test_cluster.cluster_api_url,\n    allow_deletion=True,\n    opts = pulumi.ResourceOptions(depends_on=[test_user]))\ncluster_admin = redpanda.Acl(\"cluster_admin\",\n    resource_type=\"CLUSTER\",\n    resource_name_=\"kafka-cluster\",\n    resource_pattern_type=\"LITERAL\",\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    host=\"*\",\n    operation=\"ALL\",\n    permission_type=\"ALLOW\",\n    cluster_api_url=test_cluster.cluster_api_url,\n    allow_deletion=acl_allow_deletion)\nschema_registry_admin = redpanda.Acl(\"schema_registry_admin\",\n    resource_type=\"CLUSTER\",\n    resource_name_=\"kafka-cluster\",\n    resource_pattern_type=\"LITERAL\",\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    host=\"*\",\n    operation=\"ALTER\",\n    permission_type=\"ALLOW\",\n    cluster_api_url=test_cluster.cluster_api_url,\n    allow_deletion=acl_allow_deletion)\ncluster_action = redpanda.Acl(\"cluster_action\",\n    resource_type=\"CLUSTER\",\n    resource_name_=\"kafka-cluster\",\n    resource_pattern_type=\"LITERAL\",\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    host=\"*\",\n    operation=\"CLUSTER_ACTION\",\n    permission_type=\"ALLOW\",\n    cluster_api_url=test_cluster.cluster_api_url,\n    allow_deletion=acl_allow_deletion)\ntopic_access = redpanda.Acl(\"topic_access\",\n    resource_type=\"TOPIC\",\n    resource_name_=topic_name,\n    resource_pattern_type=\"LITERAL\",\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    host=\"*\",\n    operation=\"ALL\",\n    permission_type=\"ALLOW\",\n    cluster_api_url=test_cluster.cluster_api_url,\n    allow_deletion=acl_allow_deletion)\nall_test_topic = redpanda.SchemaRegistryAcl(\"all_test_topic\",\n    cluster_id=test_cluster.id,\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    resource_type=\"SUBJECT\",\n    resource_name_=f\"{topic_name}-\",\n    pattern_type=\"PREFIXED\",\n    host=\"*\",\n    operation=\"ALL\",\n    permission=\"ALLOW\",\n    username=test_user.name,\n    password=user_pw,\n    allow_deletion=True,\n    opts = pulumi.ResourceOptions(depends_on=[schema_registry_admin]))\ndescribe_registry = redpanda.SchemaRegistryAcl(\"describe_registry\",\n    cluster_id=test_cluster.id,\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    resource_type=\"REGISTRY\",\n    resource_name_=\"*\",\n    pattern_type=\"LITERAL\",\n    host=\"*\",\n    operation=\"DESCRIBE\",\n    permission=\"ALLOW\",\n    username=test_user.name,\n    password=user_pw,\n    allow_deletion=True,\n    opts = pulumi.ResourceOptions(depends_on=[schema_registry_admin]))\nalter_configs_registry = redpanda.SchemaRegistryAcl(\"alter_configs_registry\",\n    cluster_id=test_cluster.id,\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    resource_type=\"REGISTRY\",\n    resource_name_=\"*\",\n    pattern_type=\"LITERAL\",\n    host=\"*\",\n    operation=\"ALTER_CONFIGS\",\n    permission=\"ALLOW\",\n    username=test_user.name,\n    password=user_pw,\n    allow_deletion=True,\n    opts = pulumi.ResourceOptions(depends_on=[schema_registry_admin]))\nread_registry = redpanda.SchemaRegistryAcl(\"read_registry\",\n    cluster_id=test_cluster.id,\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    resource_type=\"REGISTRY\",\n    resource_name_=\"*\",\n    pattern_type=\"LITERAL\",\n    host=\"*\",\n    operation=\"READ\",\n    permission=\"ALLOW\",\n    username=test_user.name,\n    password=user_pw,\n    allow_deletion=True,\n    opts = pulumi.ResourceOptions(depends_on=[schema_registry_admin]))\nwrite_registry = redpanda.SchemaRegistryAcl(\"write_registry\",\n    cluster_id=test_cluster.id,\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    resource_type=\"REGISTRY\",\n    resource_name_=\"*\",\n    pattern_type=\"LITERAL\",\n    host=\"*\",\n    operation=\"WRITE\",\n    permission=\"ALLOW\",\n    username=test_user.name,\n    password=user_pw,\n    allow_deletion=True,\n    opts = pulumi.ResourceOptions(depends_on=[schema_registry_admin]))\nuser_schema = redpanda.Schema(\"user_schema\",\n    cluster_id=test_cluster.id,\n    subject=f\"{topic_name}-value\",\n    schema_type=schema_type,\n    schema=user_schema_definition,\n    username=test_user.name,\n    password=user_pw,\n    allow_deletion=True,\n    opts = pulumi.ResourceOptions(depends_on=[\n            cluster_admin,\n            schema_registry_admin,\n            cluster_action,\n            topic_access,\n            all_test_topic,\n            describe_registry,\n            alter_configs_registry,\n            read_registry,\n            write_registry,\n        ]))\nuser_event_schema = redpanda.Schema(\"user_event_schema\",\n    cluster_id=test_cluster.id,\n    subject=f\"{topic_name}-events-value\",\n    schema_type=schema_type,\n    schema=user_event_schema_definition,\n    username=test_user.name,\n    password=user_pw,\n    allow_deletion=True,\n    references=[{\n        \"name\": \"User\",\n        \"subject\": user_schema.subject,\n        \"version\": user_schema.version,\n    }],\n    opts = pulumi.ResourceOptions(depends_on=[\n            cluster_admin,\n            schema_registry_admin,\n            cluster_action,\n            topic_access,\n            all_test_topic,\n            describe_registry,\n            alter_configs_registry,\n            read_registry,\n            write_registry,\n        ]))\nproduct_schema = redpanda.Schema(\"product_schema\",\n    cluster_id=test_cluster.id,\n    subject=f\"{topic_name}-product-value\",\n    schema_type=schema_type,\n    schema=product_schema_definition,\n    compatibility=compatibility_level,\n    username=test_user.name,\n    password=user_pw,\n    allow_deletion=True,\n    opts = pulumi.ResourceOptions(depends_on=[\n            cluster_admin,\n            schema_registry_admin,\n            cluster_action,\n            topic_access,\n            all_test_topic,\n            describe_registry,\n            alter_configs_registry,\n            read_registry,\n            write_registry,\n        ]))\nread_product = redpanda.SchemaRegistryAcl(\"read_product\",\n    cluster_id=test_cluster.id,\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    resource_type=\"SUBJECT\",\n    resource_name_=\"product-\",\n    pattern_type=\"PREFIXED\",\n    host=\"*\",\n    operation=\"READ\",\n    permission=\"ALLOW\",\n    username=test_user.name,\n    password=user_pw,\n    allow_deletion=sr_acl_allow_deletion,\n    opts = pulumi.ResourceOptions(depends_on=[schema_registry_admin]))\nwrite_orders = redpanda.SchemaRegistryAcl(\"write_orders\",\n    cluster_id=test_cluster.id,\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    resource_type=\"SUBJECT\",\n    resource_name_=\"orders-value\",\n    pattern_type=\"LITERAL\",\n    host=\"*\",\n    operation=\"WRITE\",\n    permission=\"ALLOW\",\n    username=test_user.name,\n    password=user_pw,\n    allow_deletion=True,\n    opts = pulumi.ResourceOptions(depends_on=[schema_registry_admin]))\ndescribe_test_topic = redpanda.SchemaRegistryAcl(\"describe_test_topic\",\n    cluster_id=test_cluster.id,\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    resource_type=\"SUBJECT\",\n    resource_name_=f\"{topic_name}-\",\n    pattern_type=\"PREFIXED\",\n    host=\"*\",\n    operation=\"DESCRIBE\",\n    permission=\"ALLOW\",\n    username=test_user.name,\n    password=user_pw,\n    allow_deletion=True,\n    opts = pulumi.ResourceOptions(depends_on=[schema_registry_admin]))\ndeveloper = redpanda.Role(\"developer\",\n    name=role_name,\n    cluster_api_url=test_cluster.cluster_api_url,\n    allow_deletion=role_allow_deletion)\ndeveloper_assignment = redpanda.RoleAssignment(\"developer_assignment\",\n    role_name=developer.name,\n    principal=test_user.name,\n    cluster_api_url=test_cluster.cluster_api_url,\n    opts = pulumi.ResourceOptions(depends_on=[test_user]))\npulumi.export(\"userSchemaInfo\", {\n    \"id\": user_schema.schema_id,\n    \"subject\": user_schema.subject,\n    \"version\": user_schema.version,\n    \"type\": user_schema.schema_type,\n})\npulumi.export(\"userEventSchemaInfo\", {\n    \"id\": user_event_schema.schema_id,\n    \"subject\": user_event_schema.subject,\n    \"version\": user_event_schema.version,\n    \"type\": user_event_schema.schema_type,\n    \"references\": user_event_schema.references,\n})\npulumi.export(\"productSchemaInfo\", {\n    \"id\": product_schema.schema_id,\n    \"subject\": product_schema.subject,\n    \"version\": product_schema.version,\n    \"type\": product_schema.schema_type,\n    \"compatibility\": product_schema.compatibility,\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Redpanda = Pulumi.Redpanda;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Redpanda.ResourceGroup(\"test\", new()\n    {\n        Name = resourceGroupName,\n    });\n\n    var testNetwork = new Redpanda.Network(\"test\", new()\n    {\n        Name = networkName,\n        ResourceGroupId = test.Id,\n        CloudProvider = cloudProvider,\n        Region = region,\n        ClusterType = \"dedicated\",\n        CidrBlock = \"10.0.0.0/20\",\n        Timeouts = new Redpanda.Inputs.NetworkTimeoutsArgs\n        {\n            Create = \"20m\",\n            Delete = \"20m\",\n        },\n    });\n\n    var testCluster = new Redpanda.Cluster(\"test\", new()\n    {\n        Name = clusterName,\n        ResourceGroupId = test.Id,\n        NetworkId = testNetwork.Id,\n        CloudProvider = cloudProvider,\n        Region = region,\n        ClusterType = \"dedicated\",\n        ConnectionType = \"public\",\n        ThroughputTier = throughputTier,\n        Zones = zones,\n        AllowDeletion = clusterAllowDeletion,\n        ClusterConfiguration = new Redpanda.Inputs.ClusterClusterConfigurationArgs\n        {\n            CustomPropertiesJson = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n            {\n                [\"enable_shadow_linking\"] = clusterEnableShadowLinking,\n                [\"schema_registry_enable_authorization\"] = true,\n            }),\n        },\n        Timeouts = new Redpanda.Inputs.ClusterTimeoutsArgs\n        {\n            Create = \"90m\",\n        },\n    });\n\n    var testUser = new Redpanda.User(\"test\", new()\n    {\n        Name = userName,\n        Password = userPw,\n        Mechanism = mechanism,\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        AllowDeletion = userAllowDeletion,\n    });\n\n    var testTopic = new Redpanda.Topic(\"test\", new()\n    {\n        Name = topicName,\n        PartitionCount = partitionCount,\n        ReplicationFactor = replicationFactor,\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        AllowDeletion = true,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            testUser,\n        },\n    });\n\n    var clusterAdmin = new Redpanda.Acl(\"cluster_admin\", new()\n    {\n        ResourceType = \"CLUSTER\",\n        ResourceName = \"kafka-cluster\",\n        ResourcePatternType = \"LITERAL\",\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        Host = \"*\",\n        Operation = \"ALL\",\n        PermissionType = \"ALLOW\",\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        AllowDeletion = aclAllowDeletion,\n    });\n\n    var schemaRegistryAdmin = new Redpanda.Acl(\"schema_registry_admin\", new()\n    {\n        ResourceType = \"CLUSTER\",\n        ResourceName = \"kafka-cluster\",\n        ResourcePatternType = \"LITERAL\",\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        Host = \"*\",\n        Operation = \"ALTER\",\n        PermissionType = \"ALLOW\",\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        AllowDeletion = aclAllowDeletion,\n    });\n\n    var clusterAction = new Redpanda.Acl(\"cluster_action\", new()\n    {\n        ResourceType = \"CLUSTER\",\n        ResourceName = \"kafka-cluster\",\n        ResourcePatternType = \"LITERAL\",\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        Host = \"*\",\n        Operation = \"CLUSTER_ACTION\",\n        PermissionType = \"ALLOW\",\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        AllowDeletion = aclAllowDeletion,\n    });\n\n    var topicAccess = new Redpanda.Acl(\"topic_access\", new()\n    {\n        ResourceType = \"TOPIC\",\n        ResourceName = topicName,\n        ResourcePatternType = \"LITERAL\",\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        Host = \"*\",\n        Operation = \"ALL\",\n        PermissionType = \"ALLOW\",\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        AllowDeletion = aclAllowDeletion,\n    });\n\n    var allTestTopic = new Redpanda.SchemaRegistryAcl(\"all_test_topic\", new()\n    {\n        ClusterId = testCluster.Id,\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        ResourceType = \"SUBJECT\",\n        ResourceName = $\"{topicName}-\",\n        PatternType = \"PREFIXED\",\n        Host = \"*\",\n        Operation = \"ALL\",\n        Permission = \"ALLOW\",\n        Username = testUser.Name,\n        Password = userPw,\n        AllowDeletion = true,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            schemaRegistryAdmin,\n        },\n    });\n\n    var describeRegistry = new Redpanda.SchemaRegistryAcl(\"describe_registry\", new()\n    {\n        ClusterId = testCluster.Id,\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        ResourceType = \"REGISTRY\",\n        ResourceName = \"*\",\n        PatternType = \"LITERAL\",\n        Host = \"*\",\n        Operation = \"DESCRIBE\",\n        Permission = \"ALLOW\",\n        Username = testUser.Name,\n        Password = userPw,\n        AllowDeletion = true,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            schemaRegistryAdmin,\n        },\n    });\n\n    var alterConfigsRegistry = new Redpanda.SchemaRegistryAcl(\"alter_configs_registry\", new()\n    {\n        ClusterId = testCluster.Id,\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        ResourceType = \"REGISTRY\",\n        ResourceName = \"*\",\n        PatternType = \"LITERAL\",\n        Host = \"*\",\n        Operation = \"ALTER_CONFIGS\",\n        Permission = \"ALLOW\",\n        Username = testUser.Name,\n        Password = userPw,\n        AllowDeletion = true,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            schemaRegistryAdmin,\n        },\n    });\n\n    var readRegistry = new Redpanda.SchemaRegistryAcl(\"read_registry\", new()\n    {\n        ClusterId = testCluster.Id,\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        ResourceType = \"REGISTRY\",\n        ResourceName = \"*\",\n        PatternType = \"LITERAL\",\n        Host = \"*\",\n        Operation = \"READ\",\n        Permission = \"ALLOW\",\n        Username = testUser.Name,\n        Password = userPw,\n        AllowDeletion = true,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            schemaRegistryAdmin,\n        },\n    });\n\n    var writeRegistry = new Redpanda.SchemaRegistryAcl(\"write_registry\", new()\n    {\n        ClusterId = testCluster.Id,\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        ResourceType = \"REGISTRY\",\n        ResourceName = \"*\",\n        PatternType = \"LITERAL\",\n        Host = \"*\",\n        Operation = \"WRITE\",\n        Permission = \"ALLOW\",\n        Username = testUser.Name,\n        Password = userPw,\n        AllowDeletion = true,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            schemaRegistryAdmin,\n        },\n    });\n\n    var userSchema = new Redpanda.Schema(\"user_schema\", new()\n    {\n        ClusterId = testCluster.Id,\n        Subject = $\"{topicName}-value\",\n        SchemaType = schemaType,\n        Schema = userSchemaDefinition,\n        Username = testUser.Name,\n        Password = userPw,\n        AllowDeletion = true,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            clusterAdmin,\n            schemaRegistryAdmin,\n            clusterAction,\n            topicAccess,\n            allTestTopic,\n            describeRegistry,\n            alterConfigsRegistry,\n            readRegistry,\n            writeRegistry,\n        },\n    });\n\n    var userEventSchema = new Redpanda.Schema(\"user_event_schema\", new()\n    {\n        ClusterId = testCluster.Id,\n        Subject = $\"{topicName}-events-value\",\n        SchemaType = schemaType,\n        Schema = userEventSchemaDefinition,\n        Username = testUser.Name,\n        Password = userPw,\n        AllowDeletion = true,\n        References = new[]\n        {\n            new Redpanda.Inputs.SchemaReferenceArgs\n            {\n                Name = \"User\",\n                Subject = userSchema.Subject,\n                Version = userSchema.Version,\n            },\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            clusterAdmin,\n            schemaRegistryAdmin,\n            clusterAction,\n            topicAccess,\n            allTestTopic,\n            describeRegistry,\n            alterConfigsRegistry,\n            readRegistry,\n            writeRegistry,\n        },\n    });\n\n    var productSchema = new Redpanda.Schema(\"product_schema\", new()\n    {\n        ClusterId = testCluster.Id,\n        Subject = $\"{topicName}-product-value\",\n        SchemaType = schemaType,\n        Schema = productSchemaDefinition,\n        Compatibility = compatibilityLevel,\n        Username = testUser.Name,\n        Password = userPw,\n        AllowDeletion = true,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            clusterAdmin,\n            schemaRegistryAdmin,\n            clusterAction,\n            topicAccess,\n            allTestTopic,\n            describeRegistry,\n            alterConfigsRegistry,\n            readRegistry,\n            writeRegistry,\n        },\n    });\n\n    var readProduct = new Redpanda.SchemaRegistryAcl(\"read_product\", new()\n    {\n        ClusterId = testCluster.Id,\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        ResourceType = \"SUBJECT\",\n        ResourceName = \"product-\",\n        PatternType = \"PREFIXED\",\n        Host = \"*\",\n        Operation = \"READ\",\n        Permission = \"ALLOW\",\n        Username = testUser.Name,\n        Password = userPw,\n        AllowDeletion = srAclAllowDeletion,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            schemaRegistryAdmin,\n        },\n    });\n\n    var writeOrders = new Redpanda.SchemaRegistryAcl(\"write_orders\", new()\n    {\n        ClusterId = testCluster.Id,\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        ResourceType = \"SUBJECT\",\n        ResourceName = \"orders-value\",\n        PatternType = \"LITERAL\",\n        Host = \"*\",\n        Operation = \"WRITE\",\n        Permission = \"ALLOW\",\n        Username = testUser.Name,\n        Password = userPw,\n        AllowDeletion = true,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            schemaRegistryAdmin,\n        },\n    });\n\n    var describeTestTopic = new Redpanda.SchemaRegistryAcl(\"describe_test_topic\", new()\n    {\n        ClusterId = testCluster.Id,\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        ResourceType = \"SUBJECT\",\n        ResourceName = $\"{topicName}-\",\n        PatternType = \"PREFIXED\",\n        Host = \"*\",\n        Operation = \"DESCRIBE\",\n        Permission = \"ALLOW\",\n        Username = testUser.Name,\n        Password = userPw,\n        AllowDeletion = true,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            schemaRegistryAdmin,\n        },\n    });\n\n    var developer = new Redpanda.Role(\"developer\", new()\n    {\n        Name = roleName,\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        AllowDeletion = roleAllowDeletion,\n    });\n\n    var developerAssignment = new Redpanda.RoleAssignment(\"developer_assignment\", new()\n    {\n        RoleName = developer.Name,\n        Principal = testUser.Name,\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            testUser,\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"userSchemaInfo\"] = \n        {\n            { \"id\", userSchema.SchemaId },\n            { \"subject\", userSchema.Subject },\n            { \"version\", userSchema.Version },\n            { \"type\", userSchema.SchemaType },\n        },\n        [\"userEventSchemaInfo\"] = \n        {\n            { \"id\", userEventSchema.SchemaId },\n            { \"subject\", userEventSchema.Subject },\n            { \"version\", userEventSchema.Version },\n            { \"type\", userEventSchema.SchemaType },\n            { \"references\", userEventSchema.References },\n        },\n        [\"productSchemaInfo\"] = \n        {\n            { \"id\", productSchema.SchemaId },\n            { \"subject\", productSchema.Subject },\n            { \"version\", productSchema.Version },\n            { \"type\", productSchema.SchemaType },\n            { \"compatibility\", productSchema.Compatibility },\n        },\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/redpanda/redpanda\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := redpanda.NewResourceGroup(ctx, \"test\", \u0026redpanda.ResourceGroupArgs{\n\t\t\tName: pulumi.Any(resourceGroupName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestNetwork, err := redpanda.NewNetwork(ctx, \"test\", \u0026redpanda.NetworkArgs{\n\t\t\tName:            pulumi.Any(networkName),\n\t\t\tResourceGroupId: test.ID(),\n\t\t\tCloudProvider:   pulumi.Any(cloudProvider),\n\t\t\tRegion:          pulumi.Any(region),\n\t\t\tClusterType:     pulumi.String(\"dedicated\"),\n\t\t\tCidrBlock:       pulumi.String(\"10.0.0.0/20\"),\n\t\t\tTimeouts: \u0026redpanda.NetworkTimeoutsArgs{\n\t\t\t\tCreate: pulumi.String(\"20m\"),\n\t\t\t\tDelete: pulumi.String(\"20m\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"enable_shadow_linking\":                clusterEnableShadowLinking,\n\t\t\t\"schema_registry_enable_authorization\": true,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\ttestCluster, err := redpanda.NewCluster(ctx, \"test\", \u0026redpanda.ClusterArgs{\n\t\t\tName:            pulumi.Any(clusterName),\n\t\t\tResourceGroupId: test.ID(),\n\t\t\tNetworkId:       testNetwork.ID(),\n\t\t\tCloudProvider:   pulumi.Any(cloudProvider),\n\t\t\tRegion:          pulumi.Any(region),\n\t\t\tClusterType:     pulumi.String(\"dedicated\"),\n\t\t\tConnectionType:  pulumi.String(\"public\"),\n\t\t\tThroughputTier:  pulumi.Any(throughputTier),\n\t\t\tZones:           pulumi.Any(zones),\n\t\t\tAllowDeletion:   pulumi.Any(clusterAllowDeletion),\n\t\t\tClusterConfiguration: \u0026redpanda.ClusterClusterConfigurationArgs{\n\t\t\t\tCustomPropertiesJson: pulumi.String(json0),\n\t\t\t},\n\t\t\tTimeouts: \u0026redpanda.ClusterTimeoutsArgs{\n\t\t\t\tCreate: pulumi.String(\"90m\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestUser, err := redpanda.NewUser(ctx, \"test\", \u0026redpanda.UserArgs{\n\t\t\tName:          pulumi.Any(userName),\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tMechanism:     pulumi.Any(mechanism),\n\t\t\tClusterApiUrl: testCluster.ClusterApiUrl,\n\t\t\tAllowDeletion: pulumi.Any(userAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redpanda.NewTopic(ctx, \"test\", \u0026redpanda.TopicArgs{\n\t\t\tName:              pulumi.Any(topicName),\n\t\t\tPartitionCount:    pulumi.Any(partitionCount),\n\t\t\tReplicationFactor: pulumi.Any(replicationFactor),\n\t\t\tClusterApiUrl:     testCluster.ClusterApiUrl,\n\t\t\tAllowDeletion:     pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\ttestUser,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tclusterAdmin, err := redpanda.NewAcl(ctx, \"cluster_admin\", \u0026redpanda.AclArgs{\n\t\t\tResourceType:        pulumi.String(\"CLUSTER\"),\n\t\t\tResourceName:        pulumi.String(\"kafka-cluster\"),\n\t\t\tResourcePatternType: pulumi.String(\"LITERAL\"),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tHost:           pulumi.String(\"*\"),\n\t\t\tOperation:      pulumi.String(\"ALL\"),\n\t\t\tPermissionType: pulumi.String(\"ALLOW\"),\n\t\t\tClusterApiUrl:  testCluster.ClusterApiUrl,\n\t\t\tAllowDeletion:  pulumi.Any(aclAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tschemaRegistryAdmin, err := redpanda.NewAcl(ctx, \"schema_registry_admin\", \u0026redpanda.AclArgs{\n\t\t\tResourceType:        pulumi.String(\"CLUSTER\"),\n\t\t\tResourceName:        pulumi.String(\"kafka-cluster\"),\n\t\t\tResourcePatternType: pulumi.String(\"LITERAL\"),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tHost:           pulumi.String(\"*\"),\n\t\t\tOperation:      pulumi.String(\"ALTER\"),\n\t\t\tPermissionType: pulumi.String(\"ALLOW\"),\n\t\t\tClusterApiUrl:  testCluster.ClusterApiUrl,\n\t\t\tAllowDeletion:  pulumi.Any(aclAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tclusterAction, err := redpanda.NewAcl(ctx, \"cluster_action\", \u0026redpanda.AclArgs{\n\t\t\tResourceType:        pulumi.String(\"CLUSTER\"),\n\t\t\tResourceName:        pulumi.String(\"kafka-cluster\"),\n\t\t\tResourcePatternType: pulumi.String(\"LITERAL\"),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tHost:           pulumi.String(\"*\"),\n\t\t\tOperation:      pulumi.String(\"CLUSTER_ACTION\"),\n\t\t\tPermissionType: pulumi.String(\"ALLOW\"),\n\t\t\tClusterApiUrl:  testCluster.ClusterApiUrl,\n\t\t\tAllowDeletion:  pulumi.Any(aclAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttopicAccess, err := redpanda.NewAcl(ctx, \"topic_access\", \u0026redpanda.AclArgs{\n\t\t\tResourceType:        pulumi.String(\"TOPIC\"),\n\t\t\tResourceName:        pulumi.Any(topicName),\n\t\t\tResourcePatternType: pulumi.String(\"LITERAL\"),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tHost:           pulumi.String(\"*\"),\n\t\t\tOperation:      pulumi.String(\"ALL\"),\n\t\t\tPermissionType: pulumi.String(\"ALLOW\"),\n\t\t\tClusterApiUrl:  testCluster.ClusterApiUrl,\n\t\t\tAllowDeletion:  pulumi.Any(aclAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tallTestTopic, err := redpanda.NewSchemaRegistryAcl(ctx, \"all_test_topic\", \u0026redpanda.SchemaRegistryAclArgs{\n\t\t\tClusterId: testCluster.ID(),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tResourceType:  pulumi.String(\"SUBJECT\"),\n\t\t\tResourceName:  pulumi.Sprintf(\"%v-\", topicName),\n\t\t\tPatternType:   pulumi.String(\"PREFIXED\"),\n\t\t\tHost:          pulumi.String(\"*\"),\n\t\t\tOperation:     pulumi.String(\"ALL\"),\n\t\t\tPermission:    pulumi.String(\"ALLOW\"),\n\t\t\tUsername:      testUser.Name,\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tAllowDeletion: pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tschemaRegistryAdmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdescribeRegistry, err := redpanda.NewSchemaRegistryAcl(ctx, \"describe_registry\", \u0026redpanda.SchemaRegistryAclArgs{\n\t\t\tClusterId: testCluster.ID(),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tResourceType:  pulumi.String(\"REGISTRY\"),\n\t\t\tResourceName:  pulumi.String(\"*\"),\n\t\t\tPatternType:   pulumi.String(\"LITERAL\"),\n\t\t\tHost:          pulumi.String(\"*\"),\n\t\t\tOperation:     pulumi.String(\"DESCRIBE\"),\n\t\t\tPermission:    pulumi.String(\"ALLOW\"),\n\t\t\tUsername:      testUser.Name,\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tAllowDeletion: pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tschemaRegistryAdmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\talterConfigsRegistry, err := redpanda.NewSchemaRegistryAcl(ctx, \"alter_configs_registry\", \u0026redpanda.SchemaRegistryAclArgs{\n\t\t\tClusterId: testCluster.ID(),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tResourceType:  pulumi.String(\"REGISTRY\"),\n\t\t\tResourceName:  pulumi.String(\"*\"),\n\t\t\tPatternType:   pulumi.String(\"LITERAL\"),\n\t\t\tHost:          pulumi.String(\"*\"),\n\t\t\tOperation:     pulumi.String(\"ALTER_CONFIGS\"),\n\t\t\tPermission:    pulumi.String(\"ALLOW\"),\n\t\t\tUsername:      testUser.Name,\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tAllowDeletion: pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tschemaRegistryAdmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treadRegistry, err := redpanda.NewSchemaRegistryAcl(ctx, \"read_registry\", \u0026redpanda.SchemaRegistryAclArgs{\n\t\t\tClusterId: testCluster.ID(),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tResourceType:  pulumi.String(\"REGISTRY\"),\n\t\t\tResourceName:  pulumi.String(\"*\"),\n\t\t\tPatternType:   pulumi.String(\"LITERAL\"),\n\t\t\tHost:          pulumi.String(\"*\"),\n\t\t\tOperation:     pulumi.String(\"READ\"),\n\t\t\tPermission:    pulumi.String(\"ALLOW\"),\n\t\t\tUsername:      testUser.Name,\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tAllowDeletion: pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tschemaRegistryAdmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\twriteRegistry, err := redpanda.NewSchemaRegistryAcl(ctx, \"write_registry\", \u0026redpanda.SchemaRegistryAclArgs{\n\t\t\tClusterId: testCluster.ID(),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tResourceType:  pulumi.String(\"REGISTRY\"),\n\t\t\tResourceName:  pulumi.String(\"*\"),\n\t\t\tPatternType:   pulumi.String(\"LITERAL\"),\n\t\t\tHost:          pulumi.String(\"*\"),\n\t\t\tOperation:     pulumi.String(\"WRITE\"),\n\t\t\tPermission:    pulumi.String(\"ALLOW\"),\n\t\t\tUsername:      testUser.Name,\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tAllowDeletion: pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tschemaRegistryAdmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tuserSchema, err := redpanda.NewSchema(ctx, \"user_schema\", \u0026redpanda.SchemaArgs{\n\t\t\tClusterId:     testCluster.ID(),\n\t\t\tSubject:       pulumi.Sprintf(\"%v-value\", topicName),\n\t\t\tSchemaType:    pulumi.Any(schemaType),\n\t\t\tSchema:        pulumi.Any(userSchemaDefinition),\n\t\t\tUsername:      testUser.Name,\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tAllowDeletion: pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tclusterAdmin,\n\t\t\tschemaRegistryAdmin,\n\t\t\tclusterAction,\n\t\t\ttopicAccess,\n\t\t\tallTestTopic,\n\t\t\tdescribeRegistry,\n\t\t\talterConfigsRegistry,\n\t\t\treadRegistry,\n\t\t\twriteRegistry,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tuserEventSchema, err := redpanda.NewSchema(ctx, \"user_event_schema\", \u0026redpanda.SchemaArgs{\n\t\t\tClusterId:     testCluster.ID(),\n\t\t\tSubject:       pulumi.Sprintf(\"%v-events-value\", topicName),\n\t\t\tSchemaType:    pulumi.Any(schemaType),\n\t\t\tSchema:        pulumi.Any(userEventSchemaDefinition),\n\t\t\tUsername:      testUser.Name,\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tAllowDeletion: pulumi.Bool(true),\n\t\t\tReferences: redpanda.SchemaReferenceArray{\n\t\t\t\t\u0026redpanda.SchemaReferenceArgs{\n\t\t\t\t\tName:    pulumi.String(\"User\"),\n\t\t\t\t\tSubject: userSchema.Subject,\n\t\t\t\t\tVersion: userSchema.Version,\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tclusterAdmin,\n\t\t\tschemaRegistryAdmin,\n\t\t\tclusterAction,\n\t\t\ttopicAccess,\n\t\t\tallTestTopic,\n\t\t\tdescribeRegistry,\n\t\t\talterConfigsRegistry,\n\t\t\treadRegistry,\n\t\t\twriteRegistry,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproductSchema, err := redpanda.NewSchema(ctx, \"product_schema\", \u0026redpanda.SchemaArgs{\n\t\t\tClusterId:     testCluster.ID(),\n\t\t\tSubject:       pulumi.Sprintf(\"%v-product-value\", topicName),\n\t\t\tSchemaType:    pulumi.Any(schemaType),\n\t\t\tSchema:        pulumi.Any(productSchemaDefinition),\n\t\t\tCompatibility: pulumi.Any(compatibilityLevel),\n\t\t\tUsername:      testUser.Name,\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tAllowDeletion: pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tclusterAdmin,\n\t\t\tschemaRegistryAdmin,\n\t\t\tclusterAction,\n\t\t\ttopicAccess,\n\t\t\tallTestTopic,\n\t\t\tdescribeRegistry,\n\t\t\talterConfigsRegistry,\n\t\t\treadRegistry,\n\t\t\twriteRegistry,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redpanda.NewSchemaRegistryAcl(ctx, \"read_product\", \u0026redpanda.SchemaRegistryAclArgs{\n\t\t\tClusterId: testCluster.ID(),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tResourceType:  pulumi.String(\"SUBJECT\"),\n\t\t\tResourceName:  pulumi.String(\"product-\"),\n\t\t\tPatternType:   pulumi.String(\"PREFIXED\"),\n\t\t\tHost:          pulumi.String(\"*\"),\n\t\t\tOperation:     pulumi.String(\"READ\"),\n\t\t\tPermission:    pulumi.String(\"ALLOW\"),\n\t\t\tUsername:      testUser.Name,\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tAllowDeletion: pulumi.Any(srAclAllowDeletion),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tschemaRegistryAdmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redpanda.NewSchemaRegistryAcl(ctx, \"write_orders\", \u0026redpanda.SchemaRegistryAclArgs{\n\t\t\tClusterId: testCluster.ID(),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tResourceType:  pulumi.String(\"SUBJECT\"),\n\t\t\tResourceName:  pulumi.String(\"orders-value\"),\n\t\t\tPatternType:   pulumi.String(\"LITERAL\"),\n\t\t\tHost:          pulumi.String(\"*\"),\n\t\t\tOperation:     pulumi.String(\"WRITE\"),\n\t\t\tPermission:    pulumi.String(\"ALLOW\"),\n\t\t\tUsername:      testUser.Name,\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tAllowDeletion: pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tschemaRegistryAdmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redpanda.NewSchemaRegistryAcl(ctx, \"describe_test_topic\", \u0026redpanda.SchemaRegistryAclArgs{\n\t\t\tClusterId: testCluster.ID(),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tResourceType:  pulumi.String(\"SUBJECT\"),\n\t\t\tResourceName:  pulumi.Sprintf(\"%v-\", topicName),\n\t\t\tPatternType:   pulumi.String(\"PREFIXED\"),\n\t\t\tHost:          pulumi.String(\"*\"),\n\t\t\tOperation:     pulumi.String(\"DESCRIBE\"),\n\t\t\tPermission:    pulumi.String(\"ALLOW\"),\n\t\t\tUsername:      testUser.Name,\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tAllowDeletion: pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tschemaRegistryAdmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdeveloper, err := redpanda.NewRole(ctx, \"developer\", \u0026redpanda.RoleArgs{\n\t\t\tName:          pulumi.Any(roleName),\n\t\t\tClusterApiUrl: testCluster.ClusterApiUrl,\n\t\t\tAllowDeletion: pulumi.Any(roleAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redpanda.NewRoleAssignment(ctx, \"developer_assignment\", \u0026redpanda.RoleAssignmentArgs{\n\t\t\tRoleName:      developer.Name,\n\t\t\tPrincipal:     testUser.Name,\n\t\t\tClusterApiUrl: testCluster.ClusterApiUrl,\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\ttestUser,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"userSchemaInfo\", pulumi.Map{\n\t\t\t\"id\":      userSchema.SchemaId,\n\t\t\t\"subject\": userSchema.Subject,\n\t\t\t\"version\": userSchema.Version,\n\t\t\t\"type\":    userSchema.SchemaType,\n\t\t})\n\t\tctx.Export(\"userEventSchemaInfo\", pulumi.Map{\n\t\t\t\"id\":         userEventSchema.SchemaId,\n\t\t\t\"subject\":    userEventSchema.Subject,\n\t\t\t\"version\":    userEventSchema.Version,\n\t\t\t\"type\":       userEventSchema.SchemaType,\n\t\t\t\"references\": userEventSchema.References,\n\t\t})\n\t\tctx.Export(\"productSchemaInfo\", pulumi.Map{\n\t\t\t\"id\":            productSchema.SchemaId,\n\t\t\t\"subject\":       productSchema.Subject,\n\t\t\t\"version\":       productSchema.Version,\n\t\t\t\"type\":          productSchema.SchemaType,\n\t\t\t\"compatibility\": productSchema.Compatibility,\n\t\t})\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.redpanda.ResourceGroup;\nimport com.pulumi.redpanda.ResourceGroupArgs;\nimport com.pulumi.redpanda.Network;\nimport com.pulumi.redpanda.NetworkArgs;\nimport com.pulumi.redpanda.inputs.NetworkTimeoutsArgs;\nimport com.pulumi.redpanda.Cluster;\nimport com.pulumi.redpanda.ClusterArgs;\nimport com.pulumi.redpanda.inputs.ClusterClusterConfigurationArgs;\nimport com.pulumi.redpanda.inputs.ClusterTimeoutsArgs;\nimport com.pulumi.redpanda.User;\nimport com.pulumi.redpanda.UserArgs;\nimport com.pulumi.redpanda.Topic;\nimport com.pulumi.redpanda.TopicArgs;\nimport com.pulumi.redpanda.Acl;\nimport com.pulumi.redpanda.AclArgs;\nimport com.pulumi.redpanda.SchemaRegistryAcl;\nimport com.pulumi.redpanda.SchemaRegistryAclArgs;\nimport com.pulumi.redpanda.Schema;\nimport com.pulumi.redpanda.SchemaArgs;\nimport com.pulumi.redpanda.inputs.SchemaReferenceArgs;\nimport com.pulumi.redpanda.Role;\nimport com.pulumi.redpanda.RoleArgs;\nimport com.pulumi.redpanda.RoleAssignment;\nimport com.pulumi.redpanda.RoleAssignmentArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new ResourceGroup(\"test\", ResourceGroupArgs.builder()\n            .name(resourceGroupName)\n            .build());\n\n        var testNetwork = new Network(\"testNetwork\", NetworkArgs.builder()\n            .name(networkName)\n            .resourceGroupId(test.id())\n            .cloudProvider(cloudProvider)\n            .region(region)\n            .clusterType(\"dedicated\")\n            .cidrBlock(\"10.0.0.0/20\")\n            .timeouts(NetworkTimeoutsArgs.builder()\n                .create(\"20m\")\n                .delete(\"20m\")\n                .build())\n            .build());\n\n        var testCluster = new Cluster(\"testCluster\", ClusterArgs.builder()\n            .name(clusterName)\n            .resourceGroupId(test.id())\n            .networkId(testNetwork.id())\n            .cloudProvider(cloudProvider)\n            .region(region)\n            .clusterType(\"dedicated\")\n            .connectionType(\"public\")\n            .throughputTier(throughputTier)\n            .zones(zones)\n            .allowDeletion(clusterAllowDeletion)\n            .clusterConfiguration(ClusterClusterConfigurationArgs.builder()\n                .customPropertiesJson(serializeJson(\n                    jsonObject(\n                        jsonProperty(\"enable_shadow_linking\", clusterEnableShadowLinking),\n                        jsonProperty(\"schema_registry_enable_authorization\", true)\n                    )))\n                .build())\n            .timeouts(ClusterTimeoutsArgs.builder()\n                .create(\"90m\")\n                .build())\n            .build());\n\n        var testUser = new User(\"testUser\", UserArgs.builder()\n            .name(userName)\n            .password(userPw)\n            .mechanism(mechanism)\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .allowDeletion(userAllowDeletion)\n            .build());\n\n        var testTopic = new Topic(\"testTopic\", TopicArgs.builder()\n            .name(topicName)\n            .partitionCount(partitionCount)\n            .replicationFactor(replicationFactor)\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .allowDeletion(true)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(testUser)\n                .build());\n\n        var clusterAdmin = new Acl(\"clusterAdmin\", AclArgs.builder()\n            .resourceType(\"CLUSTER\")\n            .resourceName(\"kafka-cluster\")\n            .resourcePatternType(\"LITERAL\")\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .host(\"*\")\n            .operation(\"ALL\")\n            .permissionType(\"ALLOW\")\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .allowDeletion(aclAllowDeletion)\n            .build());\n\n        var schemaRegistryAdmin = new Acl(\"schemaRegistryAdmin\", AclArgs.builder()\n            .resourceType(\"CLUSTER\")\n            .resourceName(\"kafka-cluster\")\n            .resourcePatternType(\"LITERAL\")\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .host(\"*\")\n            .operation(\"ALTER\")\n            .permissionType(\"ALLOW\")\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .allowDeletion(aclAllowDeletion)\n            .build());\n\n        var clusterAction = new Acl(\"clusterAction\", AclArgs.builder()\n            .resourceType(\"CLUSTER\")\n            .resourceName(\"kafka-cluster\")\n            .resourcePatternType(\"LITERAL\")\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .host(\"*\")\n            .operation(\"CLUSTER_ACTION\")\n            .permissionType(\"ALLOW\")\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .allowDeletion(aclAllowDeletion)\n            .build());\n\n        var topicAccess = new Acl(\"topicAccess\", AclArgs.builder()\n            .resourceType(\"TOPIC\")\n            .resourceName(topicName)\n            .resourcePatternType(\"LITERAL\")\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .host(\"*\")\n            .operation(\"ALL\")\n            .permissionType(\"ALLOW\")\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .allowDeletion(aclAllowDeletion)\n            .build());\n\n        var allTestTopic = new SchemaRegistryAcl(\"allTestTopic\", SchemaRegistryAclArgs.builder()\n            .clusterId(testCluster.id())\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .resourceType(\"SUBJECT\")\n            .resourceName(String.format(\"%s-\", topicName))\n            .patternType(\"PREFIXED\")\n            .host(\"*\")\n            .operation(\"ALL\")\n            .permission(\"ALLOW\")\n            .username(testUser.name())\n            .password(userPw)\n            .allowDeletion(true)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(schemaRegistryAdmin)\n                .build());\n\n        var describeRegistry = new SchemaRegistryAcl(\"describeRegistry\", SchemaRegistryAclArgs.builder()\n            .clusterId(testCluster.id())\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .resourceType(\"REGISTRY\")\n            .resourceName(\"*\")\n            .patternType(\"LITERAL\")\n            .host(\"*\")\n            .operation(\"DESCRIBE\")\n            .permission(\"ALLOW\")\n            .username(testUser.name())\n            .password(userPw)\n            .allowDeletion(true)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(schemaRegistryAdmin)\n                .build());\n\n        var alterConfigsRegistry = new SchemaRegistryAcl(\"alterConfigsRegistry\", SchemaRegistryAclArgs.builder()\n            .clusterId(testCluster.id())\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .resourceType(\"REGISTRY\")\n            .resourceName(\"*\")\n            .patternType(\"LITERAL\")\n            .host(\"*\")\n            .operation(\"ALTER_CONFIGS\")\n            .permission(\"ALLOW\")\n            .username(testUser.name())\n            .password(userPw)\n            .allowDeletion(true)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(schemaRegistryAdmin)\n                .build());\n\n        var readRegistry = new SchemaRegistryAcl(\"readRegistry\", SchemaRegistryAclArgs.builder()\n            .clusterId(testCluster.id())\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .resourceType(\"REGISTRY\")\n            .resourceName(\"*\")\n            .patternType(\"LITERAL\")\n            .host(\"*\")\n            .operation(\"READ\")\n            .permission(\"ALLOW\")\n            .username(testUser.name())\n            .password(userPw)\n            .allowDeletion(true)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(schemaRegistryAdmin)\n                .build());\n\n        var writeRegistry = new SchemaRegistryAcl(\"writeRegistry\", SchemaRegistryAclArgs.builder()\n            .clusterId(testCluster.id())\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .resourceType(\"REGISTRY\")\n            .resourceName(\"*\")\n            .patternType(\"LITERAL\")\n            .host(\"*\")\n            .operation(\"WRITE\")\n            .permission(\"ALLOW\")\n            .username(testUser.name())\n            .password(userPw)\n            .allowDeletion(true)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(schemaRegistryAdmin)\n                .build());\n\n        var userSchema = new Schema(\"userSchema\", SchemaArgs.builder()\n            .clusterId(testCluster.id())\n            .subject(String.format(\"%s-value\", topicName))\n            .schemaType(schemaType)\n            .schema(userSchemaDefinition)\n            .username(testUser.name())\n            .password(userPw)\n            .allowDeletion(true)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(                \n                    clusterAdmin,\n                    schemaRegistryAdmin,\n                    clusterAction,\n                    topicAccess,\n                    allTestTopic,\n                    describeRegistry,\n                    alterConfigsRegistry,\n                    readRegistry,\n                    writeRegistry)\n                .build());\n\n        var userEventSchema = new Schema(\"userEventSchema\", SchemaArgs.builder()\n            .clusterId(testCluster.id())\n            .subject(String.format(\"%s-events-value\", topicName))\n            .schemaType(schemaType)\n            .schema(userEventSchemaDefinition)\n            .username(testUser.name())\n            .password(userPw)\n            .allowDeletion(true)\n            .references(SchemaReferenceArgs.builder()\n                .name(\"User\")\n                .subject(userSchema.subject())\n                .version(userSchema.version())\n                .build())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(                \n                    clusterAdmin,\n                    schemaRegistryAdmin,\n                    clusterAction,\n                    topicAccess,\n                    allTestTopic,\n                    describeRegistry,\n                    alterConfigsRegistry,\n                    readRegistry,\n                    writeRegistry)\n                .build());\n\n        var productSchema = new Schema(\"productSchema\", SchemaArgs.builder()\n            .clusterId(testCluster.id())\n            .subject(String.format(\"%s-product-value\", topicName))\n            .schemaType(schemaType)\n            .schema(productSchemaDefinition)\n            .compatibility(compatibilityLevel)\n            .username(testUser.name())\n            .password(userPw)\n            .allowDeletion(true)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(                \n                    clusterAdmin,\n                    schemaRegistryAdmin,\n                    clusterAction,\n                    topicAccess,\n                    allTestTopic,\n                    describeRegistry,\n                    alterConfigsRegistry,\n                    readRegistry,\n                    writeRegistry)\n                .build());\n\n        var readProduct = new SchemaRegistryAcl(\"readProduct\", SchemaRegistryAclArgs.builder()\n            .clusterId(testCluster.id())\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .resourceType(\"SUBJECT\")\n            .resourceName(\"product-\")\n            .patternType(\"PREFIXED\")\n            .host(\"*\")\n            .operation(\"READ\")\n            .permission(\"ALLOW\")\n            .username(testUser.name())\n            .password(userPw)\n            .allowDeletion(srAclAllowDeletion)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(schemaRegistryAdmin)\n                .build());\n\n        var writeOrders = new SchemaRegistryAcl(\"writeOrders\", SchemaRegistryAclArgs.builder()\n            .clusterId(testCluster.id())\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .resourceType(\"SUBJECT\")\n            .resourceName(\"orders-value\")\n            .patternType(\"LITERAL\")\n            .host(\"*\")\n            .operation(\"WRITE\")\n            .permission(\"ALLOW\")\n            .username(testUser.name())\n            .password(userPw)\n            .allowDeletion(true)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(schemaRegistryAdmin)\n                .build());\n\n        var describeTestTopic = new SchemaRegistryAcl(\"describeTestTopic\", SchemaRegistryAclArgs.builder()\n            .clusterId(testCluster.id())\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .resourceType(\"SUBJECT\")\n            .resourceName(String.format(\"%s-\", topicName))\n            .patternType(\"PREFIXED\")\n            .host(\"*\")\n            .operation(\"DESCRIBE\")\n            .permission(\"ALLOW\")\n            .username(testUser.name())\n            .password(userPw)\n            .allowDeletion(true)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(schemaRegistryAdmin)\n                .build());\n\n        var developer = new Role(\"developer\", RoleArgs.builder()\n            .name(roleName)\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .allowDeletion(roleAllowDeletion)\n            .build());\n\n        var developerAssignment = new RoleAssignment(\"developerAssignment\", RoleAssignmentArgs.builder()\n            .roleName(developer.name())\n            .principal(testUser.name())\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(testUser)\n                .build());\n\n        ctx.export(\"userSchemaInfo\", Map.ofEntries(\n            Map.entry(\"id\", userSchema.schemaId()),\n            Map.entry(\"subject\", userSchema.subject()),\n            Map.entry(\"version\", userSchema.version()),\n            Map.entry(\"type\", userSchema.schemaType())\n        ));\n        ctx.export(\"userEventSchemaInfo\", Map.ofEntries(\n            Map.entry(\"id\", userEventSchema.schemaId()),\n            Map.entry(\"subject\", userEventSchema.subject()),\n            Map.entry(\"version\", userEventSchema.version()),\n            Map.entry(\"type\", userEventSchema.schemaType()),\n            Map.entry(\"references\", userEventSchema.references())\n        ));\n        ctx.export(\"productSchemaInfo\", Map.ofEntries(\n            Map.entry(\"id\", productSchema.schemaId()),\n            Map.entry(\"subject\", productSchema.subject()),\n            Map.entry(\"version\", productSchema.version()),\n            Map.entry(\"type\", productSchema.schemaType()),\n            Map.entry(\"compatibility\", productSchema.compatibility())\n        ));\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: redpanda:ResourceGroup\n    properties:\n      name: ${resourceGroupName}\n  testNetwork:\n    type: redpanda:Network\n    name: test\n    properties:\n      name: ${networkName}\n      resourceGroupId: ${test.id}\n      cloudProvider: ${cloudProvider}\n      region: ${region}\n      clusterType: dedicated\n      cidrBlock: 10.0.0.0/20\n      timeouts:\n        create: 20m\n        delete: 20m\n  testCluster:\n    type: redpanda:Cluster\n    name: test\n    properties:\n      name: ${clusterName}\n      resourceGroupId: ${test.id}\n      networkId: ${testNetwork.id}\n      cloudProvider: ${cloudProvider}\n      region: ${region}\n      clusterType: dedicated\n      connectionType: public\n      throughputTier: ${throughputTier}\n      zones: ${zones}\n      allowDeletion: ${clusterAllowDeletion}\n      clusterConfiguration:\n        customPropertiesJson:\n          fn::toJSON:\n            enable_shadow_linking: ${clusterEnableShadowLinking}\n            schema_registry_enable_authorization: true\n      timeouts:\n        create: 90m\n  testUser:\n    type: redpanda:User\n    name: test\n    properties:\n      name: ${userName}\n      password: ${userPw}\n      mechanism: ${mechanism}\n      clusterApiUrl: ${testCluster.clusterApiUrl}\n      allowDeletion: ${userAllowDeletion}\n  testTopic:\n    type: redpanda:Topic\n    name: test\n    properties:\n      name: ${topicName}\n      partitionCount: ${partitionCount}\n      replicationFactor: ${replicationFactor}\n      clusterApiUrl: ${testCluster.clusterApiUrl}\n      allowDeletion: true\n    options:\n      dependsOn:\n        - ${testUser}\n  userSchema:\n    type: redpanda:Schema\n    name: user_schema\n    properties:\n      clusterId: ${testCluster.id}\n      subject: ${topicName}-value\n      schemaType: ${schemaType}\n      schema: ${userSchemaDefinition}\n      username: ${testUser.name}\n      password: ${userPw}\n      allowDeletion: true\n    options:\n      dependsOn:\n        - ${clusterAdmin}\n        - ${schemaRegistryAdmin}\n        - ${clusterAction}\n        - ${topicAccess}\n        - ${allTestTopic}\n        - ${describeRegistry}\n        - ${alterConfigsRegistry}\n        - ${readRegistry}\n        - ${writeRegistry}\n  userEventSchema:\n    type: redpanda:Schema\n    name: user_event_schema\n    properties:\n      clusterId: ${testCluster.id}\n      subject: ${topicName}-events-value\n      schemaType: ${schemaType}\n      schema: ${userEventSchemaDefinition}\n      username: ${testUser.name}\n      password: ${userPw}\n      allowDeletion: true\n      references:\n        - name: User\n          subject: ${userSchema.subject}\n          version: ${userSchema.version}\n    options:\n      dependsOn:\n        - ${clusterAdmin}\n        - ${schemaRegistryAdmin}\n        - ${clusterAction}\n        - ${topicAccess}\n        - ${allTestTopic}\n        - ${describeRegistry}\n        - ${alterConfigsRegistry}\n        - ${readRegistry}\n        - ${writeRegistry}\n  productSchema:\n    type: redpanda:Schema\n    name: product_schema\n    properties:\n      clusterId: ${testCluster.id}\n      subject: ${topicName}-product-value\n      schemaType: ${schemaType}\n      schema: ${productSchemaDefinition}\n      compatibility: ${compatibilityLevel}\n      username: ${testUser.name}\n      password: ${userPw}\n      allowDeletion: true\n    options:\n      dependsOn:\n        - ${clusterAdmin}\n        - ${schemaRegistryAdmin}\n        - ${clusterAction}\n        - ${topicAccess}\n        - ${allTestTopic}\n        - ${describeRegistry}\n        - ${alterConfigsRegistry}\n        - ${readRegistry}\n        - ${writeRegistry}\n  clusterAdmin:\n    type: redpanda:Acl\n    name: cluster_admin\n    properties:\n      resourceType: CLUSTER\n      resourceName: kafka-cluster\n      resourcePatternType: LITERAL\n      principal: User:${testUser.name}\n      host: '*'\n      operation: ALL\n      permissionType: ALLOW\n      clusterApiUrl: ${testCluster.clusterApiUrl}\n      allowDeletion: ${aclAllowDeletion}\n  schemaRegistryAdmin:\n    type: redpanda:Acl\n    name: schema_registry_admin\n    properties:\n      resourceType: CLUSTER\n      resourceName: kafka-cluster\n      resourcePatternType: LITERAL\n      principal: User:${testUser.name}\n      host: '*'\n      operation: ALTER\n      permissionType: ALLOW\n      clusterApiUrl: ${testCluster.clusterApiUrl}\n      allowDeletion: ${aclAllowDeletion}\n  clusterAction:\n    type: redpanda:Acl\n    name: cluster_action\n    properties:\n      resourceType: CLUSTER\n      resourceName: kafka-cluster\n      resourcePatternType: LITERAL\n      principal: User:${testUser.name}\n      host: '*'\n      operation: CLUSTER_ACTION\n      permissionType: ALLOW\n      clusterApiUrl: ${testCluster.clusterApiUrl}\n      allowDeletion: ${aclAllowDeletion}\n  topicAccess:\n    type: redpanda:Acl\n    name: topic_access\n    properties:\n      resourceType: TOPIC\n      resourceName: ${topicName}\n      resourcePatternType: LITERAL\n      principal: User:${testUser.name}\n      host: '*'\n      operation: ALL\n      permissionType: ALLOW\n      clusterApiUrl: ${testCluster.clusterApiUrl}\n      allowDeletion: ${aclAllowDeletion}\n  readProduct:\n    type: redpanda:SchemaRegistryAcl\n    name: read_product\n    properties:\n      clusterId: ${testCluster.id}\n      principal: User:${testUser.name}\n      resourceType: SUBJECT\n      resourceName: product-\n      patternType: PREFIXED\n      host: '*'\n      operation: READ\n      permission: ALLOW\n      username: ${testUser.name}\n      password: ${userPw}\n      allowDeletion: ${srAclAllowDeletion}\n    options:\n      dependsOn:\n        - ${schemaRegistryAdmin}\n  writeOrders:\n    type: redpanda:SchemaRegistryAcl\n    name: write_orders\n    properties:\n      clusterId: ${testCluster.id}\n      principal: User:${testUser.name}\n      resourceType: SUBJECT\n      resourceName: orders-value\n      patternType: LITERAL\n      host: '*'\n      operation: WRITE\n      permission: ALLOW\n      username: ${testUser.name}\n      password: ${userPw}\n      allowDeletion: true\n    options:\n      dependsOn:\n        - ${schemaRegistryAdmin}\n  allTestTopic:\n    type: redpanda:SchemaRegistryAcl\n    name: all_test_topic\n    properties:\n      clusterId: ${testCluster.id}\n      principal: User:${testUser.name}\n      resourceType: SUBJECT\n      resourceName: ${topicName}-\n      patternType: PREFIXED\n      host: '*'\n      operation: ALL\n      permission: ALLOW\n      username: ${testUser.name}\n      password: ${userPw}\n      allowDeletion: true\n    options:\n      dependsOn:\n        - ${schemaRegistryAdmin}\n  describeTestTopic:\n    type: redpanda:SchemaRegistryAcl\n    name: describe_test_topic\n    properties:\n      clusterId: ${testCluster.id}\n      principal: User:${testUser.name}\n      resourceType: SUBJECT\n      resourceName: ${topicName}-\n      patternType: PREFIXED\n      host: '*'\n      operation: DESCRIBE\n      permission: ALLOW\n      username: ${testUser.name}\n      password: ${userPw}\n      allowDeletion: true\n    options:\n      dependsOn:\n        - ${schemaRegistryAdmin}\n  describeRegistry:\n    type: redpanda:SchemaRegistryAcl\n    name: describe_registry\n    properties:\n      clusterId: ${testCluster.id}\n      principal: User:${testUser.name}\n      resourceType: REGISTRY\n      resourceName: '*'\n      patternType: LITERAL\n      host: '*'\n      operation: DESCRIBE\n      permission: ALLOW\n      username: ${testUser.name}\n      password: ${userPw}\n      allowDeletion: true\n    options:\n      dependsOn:\n        - ${schemaRegistryAdmin}\n  alterConfigsRegistry:\n    type: redpanda:SchemaRegistryAcl\n    name: alter_configs_registry\n    properties:\n      clusterId: ${testCluster.id}\n      principal: User:${testUser.name}\n      resourceType: REGISTRY\n      resourceName: '*'\n      patternType: LITERAL\n      host: '*'\n      operation: ALTER_CONFIGS\n      permission: ALLOW\n      username: ${testUser.name}\n      password: ${userPw}\n      allowDeletion: true\n    options:\n      dependsOn:\n        - ${schemaRegistryAdmin}\n  readRegistry:\n    type: redpanda:SchemaRegistryAcl\n    name: read_registry\n    properties:\n      clusterId: ${testCluster.id}\n      principal: User:${testUser.name}\n      resourceType: REGISTRY\n      resourceName: '*'\n      patternType: LITERAL\n      host: '*'\n      operation: READ\n      permission: ALLOW\n      username: ${testUser.name}\n      password: ${userPw}\n      allowDeletion: true\n    options:\n      dependsOn:\n        - ${schemaRegistryAdmin}\n  writeRegistry:\n    type: redpanda:SchemaRegistryAcl\n    name: write_registry\n    properties:\n      clusterId: ${testCluster.id}\n      principal: User:${testUser.name}\n      resourceType: REGISTRY\n      resourceName: '*'\n      patternType: LITERAL\n      host: '*'\n      operation: WRITE\n      permission: ALLOW\n      username: ${testUser.name}\n      password: ${userPw}\n      allowDeletion: true\n    options:\n      dependsOn:\n        - ${schemaRegistryAdmin}\n  developer:\n    type: redpanda:Role\n    properties:\n      name: ${roleName}\n      clusterApiUrl: ${testCluster.clusterApiUrl}\n      allowDeletion: ${roleAllowDeletion}\n  developerAssignment:\n    type: redpanda:RoleAssignment\n    name: developer_assignment\n    properties:\n      roleName: ${developer.name}\n      principal: ${testUser.name}\n      clusterApiUrl: ${testCluster.clusterApiUrl}\n    options:\n      dependsOn:\n        - ${testUser}\noutputs:\n  userSchemaInfo:\n    id: ${userSchema.schemaId}\n    subject: ${userSchema.subject}\n    version: ${userSchema.version}\n    type: ${userSchema.schemaType}\n  userEventSchemaInfo:\n    id: ${userEventSchema.schemaId}\n    subject: ${userEventSchema.subject}\n    version: ${userEventSchema.version}\n    type: ${userEventSchema.schemaType}\n    references: ${userEventSchema.references}\n  productSchemaInfo:\n    id: ${productSchema.schemaId}\n    subject: ${productSchema.subject}\n    version: ${productSchema.version}\n    type: ${productSchema.schemaType}\n    compatibility: ${productSchema.compatibility}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### On Azure\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as redpanda from \"@pulumi/redpanda\";\n\nconst test = new redpanda.ResourceGroup(\"test\", {name: resourceGroupName});\nconst testNetwork = new redpanda.Network(\"test\", {\n    name: networkName,\n    resourceGroupId: test.id,\n    cloudProvider: cloudProvider,\n    region: region,\n    clusterType: \"dedicated\",\n    cidrBlock: \"10.0.0.0/20\",\n    timeouts: {\n        create: \"20m\",\n        \"delete\": \"20m\",\n    },\n});\nconst testCluster = new redpanda.Cluster(\"test\", {\n    name: clusterName,\n    resourceGroupId: test.id,\n    networkId: testNetwork.id,\n    cloudProvider: cloudProvider,\n    region: region,\n    clusterType: \"dedicated\",\n    connectionType: \"public\",\n    throughputTier: throughputTier,\n    zones: zones,\n    allowDeletion: clusterAllowDeletion,\n    clusterConfiguration: {\n        customPropertiesJson: JSON.stringify({\n            schema_registry_enable_authorization: true,\n        }),\n    },\n    tags: {\n        key: \"value\",\n    },\n    timeouts: {\n        create: \"90m\",\n    },\n});\nconst testUser = new redpanda.User(\"test\", {\n    name: userName,\n    password: userPw,\n    mechanism: mechanism,\n    clusterApiUrl: testCluster.clusterApiUrl,\n    allowDeletion: userAllowDeletion,\n});\nconst testTopic = new redpanda.Topic(\"test\", {\n    name: topicName,\n    partitionCount: partitionCount,\n    replicationFactor: replicationFactor,\n    clusterApiUrl: testCluster.clusterApiUrl,\n    allowDeletion: true,\n});\nconst clusterAdmin = new redpanda.Acl(\"cluster_admin\", {\n    resourceType: \"CLUSTER\",\n    resourceName: \"kafka-cluster\",\n    resourcePatternType: \"LITERAL\",\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    host: \"*\",\n    operation: \"ALL\",\n    permissionType: \"ALLOW\",\n    clusterApiUrl: testCluster.clusterApiUrl,\n    allowDeletion: aclAllowDeletion,\n});\nconst schemaRegistryAdmin = new redpanda.Acl(\"schema_registry_admin\", {\n    resourceType: \"CLUSTER\",\n    resourceName: \"kafka-cluster\",\n    resourcePatternType: \"LITERAL\",\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    host: \"*\",\n    operation: \"ALTER\",\n    permissionType: \"ALLOW\",\n    clusterApiUrl: testCluster.clusterApiUrl,\n    allowDeletion: aclAllowDeletion,\n});\nconst clusterAction = new redpanda.Acl(\"cluster_action\", {\n    resourceType: \"CLUSTER\",\n    resourceName: \"kafka-cluster\",\n    resourcePatternType: \"LITERAL\",\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    host: \"*\",\n    operation: \"CLUSTER_ACTION\",\n    permissionType: \"ALLOW\",\n    clusterApiUrl: testCluster.clusterApiUrl,\n    allowDeletion: aclAllowDeletion,\n});\nconst topicAccess = new redpanda.Acl(\"topic_access\", {\n    resourceType: \"TOPIC\",\n    resourceName: topicName,\n    resourcePatternType: \"LITERAL\",\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    host: \"*\",\n    operation: \"ALL\",\n    permissionType: \"ALLOW\",\n    clusterApiUrl: testCluster.clusterApiUrl,\n    allowDeletion: aclAllowDeletion,\n});\nconst allTestTopic = new redpanda.SchemaRegistryAcl(\"all_test_topic\", {\n    clusterId: testCluster.id,\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    resourceType: \"SUBJECT\",\n    resourceName: `${topicName}-`,\n    patternType: \"PREFIXED\",\n    host: \"*\",\n    operation: \"ALL\",\n    permission: \"ALLOW\",\n    username: testUser.name,\n    password: userPw,\n    allowDeletion: true,\n}, {\n    dependsOn: [schemaRegistryAdmin],\n});\nconst describeRegistry = new redpanda.SchemaRegistryAcl(\"describe_registry\", {\n    clusterId: testCluster.id,\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    resourceType: \"REGISTRY\",\n    resourceName: \"*\",\n    patternType: \"LITERAL\",\n    host: \"*\",\n    operation: \"DESCRIBE\",\n    permission: \"ALLOW\",\n    username: testUser.name,\n    password: userPw,\n    allowDeletion: true,\n}, {\n    dependsOn: [schemaRegistryAdmin],\n});\nconst alterConfigsRegistry = new redpanda.SchemaRegistryAcl(\"alter_configs_registry\", {\n    clusterId: testCluster.id,\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    resourceType: \"REGISTRY\",\n    resourceName: \"*\",\n    patternType: \"LITERAL\",\n    host: \"*\",\n    operation: \"ALTER_CONFIGS\",\n    permission: \"ALLOW\",\n    username: testUser.name,\n    password: userPw,\n    allowDeletion: true,\n}, {\n    dependsOn: [schemaRegistryAdmin],\n});\nconst readRegistry = new redpanda.SchemaRegistryAcl(\"read_registry\", {\n    clusterId: testCluster.id,\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    resourceType: \"REGISTRY\",\n    resourceName: \"*\",\n    patternType: \"LITERAL\",\n    host: \"*\",\n    operation: \"READ\",\n    permission: \"ALLOW\",\n    username: testUser.name,\n    password: userPw,\n    allowDeletion: true,\n}, {\n    dependsOn: [schemaRegistryAdmin],\n});\nconst writeRegistry = new redpanda.SchemaRegistryAcl(\"write_registry\", {\n    clusterId: testCluster.id,\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    resourceType: \"REGISTRY\",\n    resourceName: \"*\",\n    patternType: \"LITERAL\",\n    host: \"*\",\n    operation: \"WRITE\",\n    permission: \"ALLOW\",\n    username: testUser.name,\n    password: userPw,\n    allowDeletion: true,\n}, {\n    dependsOn: [schemaRegistryAdmin],\n});\nconst userSchema = new redpanda.Schema(\"user_schema\", {\n    clusterId: testCluster.id,\n    subject: `${topicName}-value`,\n    schemaType: schemaType,\n    schema: userSchemaDefinition,\n    username: testUser.name,\n    password: userPw,\n    allowDeletion: true,\n}, {\n    dependsOn: [\n        clusterAdmin,\n        schemaRegistryAdmin,\n        clusterAction,\n        topicAccess,\n        allTestTopic,\n        describeRegistry,\n        alterConfigsRegistry,\n        readRegistry,\n        writeRegistry,\n    ],\n});\nconst userEventSchema = new redpanda.Schema(\"user_event_schema\", {\n    clusterId: testCluster.id,\n    subject: `${topicName}-events-value`,\n    schemaType: schemaType,\n    schema: userEventSchemaDefinition,\n    username: testUser.name,\n    password: userPw,\n    allowDeletion: true,\n    references: [{\n        name: \"User\",\n        subject: userSchema.subject,\n        version: userSchema.version,\n    }],\n}, {\n    dependsOn: [\n        clusterAdmin,\n        schemaRegistryAdmin,\n        clusterAction,\n        topicAccess,\n        allTestTopic,\n        describeRegistry,\n        alterConfigsRegistry,\n        readRegistry,\n        writeRegistry,\n    ],\n});\nconst productSchema = new redpanda.Schema(\"product_schema\", {\n    clusterId: testCluster.id,\n    subject: `${topicName}-product-value`,\n    schemaType: schemaType,\n    schema: productSchemaDefinition,\n    compatibility: compatibilityLevel,\n    username: testUser.name,\n    password: userPw,\n    allowDeletion: true,\n}, {\n    dependsOn: [\n        clusterAdmin,\n        schemaRegistryAdmin,\n        clusterAction,\n        topicAccess,\n        allTestTopic,\n        describeRegistry,\n        alterConfigsRegistry,\n        readRegistry,\n        writeRegistry,\n    ],\n});\nconst readProduct = new redpanda.SchemaRegistryAcl(\"read_product\", {\n    clusterId: testCluster.id,\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    resourceType: \"SUBJECT\",\n    resourceName: \"product-\",\n    patternType: \"PREFIXED\",\n    host: \"*\",\n    operation: \"READ\",\n    permission: \"ALLOW\",\n    username: testUser.name,\n    password: userPw,\n    allowDeletion: srAclAllowDeletion,\n}, {\n    dependsOn: [schemaRegistryAdmin],\n});\nconst writeOrders = new redpanda.SchemaRegistryAcl(\"write_orders\", {\n    clusterId: testCluster.id,\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    resourceType: \"SUBJECT\",\n    resourceName: \"orders-value\",\n    patternType: \"LITERAL\",\n    host: \"*\",\n    operation: \"WRITE\",\n    permission: \"ALLOW\",\n    username: testUser.name,\n    password: userPw,\n    allowDeletion: true,\n}, {\n    dependsOn: [schemaRegistryAdmin],\n});\nconst describeTestTopic = new redpanda.SchemaRegistryAcl(\"describe_test_topic\", {\n    clusterId: testCluster.id,\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    resourceType: \"SUBJECT\",\n    resourceName: `${topicName}-`,\n    patternType: \"PREFIXED\",\n    host: \"*\",\n    operation: \"DESCRIBE\",\n    permission: \"ALLOW\",\n    username: testUser.name,\n    password: userPw,\n    allowDeletion: true,\n}, {\n    dependsOn: [schemaRegistryAdmin],\n});\nconst developer = new redpanda.Role(\"developer\", {\n    name: roleName,\n    clusterApiUrl: testCluster.clusterApiUrl,\n    allowDeletion: roleAllowDeletion,\n});\nconst developerAssignment = new redpanda.RoleAssignment(\"developer_assignment\", {\n    roleName: developer.name,\n    principal: testUser.name,\n    clusterApiUrl: testCluster.clusterApiUrl,\n}, {\n    dependsOn: [testUser],\n});\nconst testPipeline = new redpanda.Pipeline(\"test\", {\n    clusterApiUrl: testCluster.clusterApiUrl,\n    displayName: pipelineName,\n    description: pipelineDescription,\n    configYaml: pipelineConfigYaml,\n    state: pipelineState,\n    allowDeletion: pipelineAllowDeletion,\n    resources: {\n        memoryShares: pipelineMemoryShares,\n        cpuShares: pipelineCpuShares,\n    },\n    tags: {\n        environment: \"test\",\n        \"managed-by\": \"terraform\",\n    },\n});\nexport const pipelineInfo = {\n    id: testPipeline.id,\n    name: testPipeline.displayName,\n    state: testPipeline.state,\n    url: testPipeline.url,\n};\nexport const userSchemaInfo = {\n    id: userSchema.schemaId,\n    subject: userSchema.subject,\n    version: userSchema.version,\n    type: userSchema.schemaType,\n};\nexport const userEventSchemaInfo = {\n    id: userEventSchema.schemaId,\n    subject: userEventSchema.subject,\n    version: userEventSchema.version,\n    type: userEventSchema.schemaType,\n    references: userEventSchema.references,\n};\nexport const productSchemaInfo = {\n    id: productSchema.schemaId,\n    subject: productSchema.subject,\n    version: productSchema.version,\n    type: productSchema.schemaType,\n    compatibility: productSchema.compatibility,\n};\n```\n```python\nimport pulumi\nimport json\nimport pulumi_redpanda as redpanda\n\ntest = redpanda.ResourceGroup(\"test\", name=resource_group_name)\ntest_network = redpanda.Network(\"test\",\n    name=network_name,\n    resource_group_id=test.id,\n    cloud_provider=cloud_provider,\n    region=region,\n    cluster_type=\"dedicated\",\n    cidr_block=\"10.0.0.0/20\",\n    timeouts={\n        \"create\": \"20m\",\n        \"delete\": \"20m\",\n    })\ntest_cluster = redpanda.Cluster(\"test\",\n    name=cluster_name,\n    resource_group_id=test.id,\n    network_id=test_network.id,\n    cloud_provider=cloud_provider,\n    region=region,\n    cluster_type=\"dedicated\",\n    connection_type=\"public\",\n    throughput_tier=throughput_tier,\n    zones=zones,\n    allow_deletion=cluster_allow_deletion,\n    cluster_configuration={\n        \"custom_properties_json\": json.dumps({\n            \"schema_registry_enable_authorization\": True,\n        }),\n    },\n    tags={\n        \"key\": \"value\",\n    },\n    timeouts={\n        \"create\": \"90m\",\n    })\ntest_user = redpanda.User(\"test\",\n    name=user_name,\n    password=user_pw,\n    mechanism=mechanism,\n    cluster_api_url=test_cluster.cluster_api_url,\n    allow_deletion=user_allow_deletion)\ntest_topic = redpanda.Topic(\"test\",\n    name=topic_name,\n    partition_count=partition_count,\n    replication_factor=replication_factor,\n    cluster_api_url=test_cluster.cluster_api_url,\n    allow_deletion=True)\ncluster_admin = redpanda.Acl(\"cluster_admin\",\n    resource_type=\"CLUSTER\",\n    resource_name_=\"kafka-cluster\",\n    resource_pattern_type=\"LITERAL\",\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    host=\"*\",\n    operation=\"ALL\",\n    permission_type=\"ALLOW\",\n    cluster_api_url=test_cluster.cluster_api_url,\n    allow_deletion=acl_allow_deletion)\nschema_registry_admin = redpanda.Acl(\"schema_registry_admin\",\n    resource_type=\"CLUSTER\",\n    resource_name_=\"kafka-cluster\",\n    resource_pattern_type=\"LITERAL\",\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    host=\"*\",\n    operation=\"ALTER\",\n    permission_type=\"ALLOW\",\n    cluster_api_url=test_cluster.cluster_api_url,\n    allow_deletion=acl_allow_deletion)\ncluster_action = redpanda.Acl(\"cluster_action\",\n    resource_type=\"CLUSTER\",\n    resource_name_=\"kafka-cluster\",\n    resource_pattern_type=\"LITERAL\",\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    host=\"*\",\n    operation=\"CLUSTER_ACTION\",\n    permission_type=\"ALLOW\",\n    cluster_api_url=test_cluster.cluster_api_url,\n    allow_deletion=acl_allow_deletion)\ntopic_access = redpanda.Acl(\"topic_access\",\n    resource_type=\"TOPIC\",\n    resource_name_=topic_name,\n    resource_pattern_type=\"LITERAL\",\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    host=\"*\",\n    operation=\"ALL\",\n    permission_type=\"ALLOW\",\n    cluster_api_url=test_cluster.cluster_api_url,\n    allow_deletion=acl_allow_deletion)\nall_test_topic = redpanda.SchemaRegistryAcl(\"all_test_topic\",\n    cluster_id=test_cluster.id,\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    resource_type=\"SUBJECT\",\n    resource_name_=f\"{topic_name}-\",\n    pattern_type=\"PREFIXED\",\n    host=\"*\",\n    operation=\"ALL\",\n    permission=\"ALLOW\",\n    username=test_user.name,\n    password=user_pw,\n    allow_deletion=True,\n    opts = pulumi.ResourceOptions(depends_on=[schema_registry_admin]))\ndescribe_registry = redpanda.SchemaRegistryAcl(\"describe_registry\",\n    cluster_id=test_cluster.id,\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    resource_type=\"REGISTRY\",\n    resource_name_=\"*\",\n    pattern_type=\"LITERAL\",\n    host=\"*\",\n    operation=\"DESCRIBE\",\n    permission=\"ALLOW\",\n    username=test_user.name,\n    password=user_pw,\n    allow_deletion=True,\n    opts = pulumi.ResourceOptions(depends_on=[schema_registry_admin]))\nalter_configs_registry = redpanda.SchemaRegistryAcl(\"alter_configs_registry\",\n    cluster_id=test_cluster.id,\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    resource_type=\"REGISTRY\",\n    resource_name_=\"*\",\n    pattern_type=\"LITERAL\",\n    host=\"*\",\n    operation=\"ALTER_CONFIGS\",\n    permission=\"ALLOW\",\n    username=test_user.name,\n    password=user_pw,\n    allow_deletion=True,\n    opts = pulumi.ResourceOptions(depends_on=[schema_registry_admin]))\nread_registry = redpanda.SchemaRegistryAcl(\"read_registry\",\n    cluster_id=test_cluster.id,\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    resource_type=\"REGISTRY\",\n    resource_name_=\"*\",\n    pattern_type=\"LITERAL\",\n    host=\"*\",\n    operation=\"READ\",\n    permission=\"ALLOW\",\n    username=test_user.name,\n    password=user_pw,\n    allow_deletion=True,\n    opts = pulumi.ResourceOptions(depends_on=[schema_registry_admin]))\nwrite_registry = redpanda.SchemaRegistryAcl(\"write_registry\",\n    cluster_id=test_cluster.id,\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    resource_type=\"REGISTRY\",\n    resource_name_=\"*\",\n    pattern_type=\"LITERAL\",\n    host=\"*\",\n    operation=\"WRITE\",\n    permission=\"ALLOW\",\n    username=test_user.name,\n    password=user_pw,\n    allow_deletion=True,\n    opts = pulumi.ResourceOptions(depends_on=[schema_registry_admin]))\nuser_schema = redpanda.Schema(\"user_schema\",\n    cluster_id=test_cluster.id,\n    subject=f\"{topic_name}-value\",\n    schema_type=schema_type,\n    schema=user_schema_definition,\n    username=test_user.name,\n    password=user_pw,\n    allow_deletion=True,\n    opts = pulumi.ResourceOptions(depends_on=[\n            cluster_admin,\n            schema_registry_admin,\n            cluster_action,\n            topic_access,\n            all_test_topic,\n            describe_registry,\n            alter_configs_registry,\n            read_registry,\n            write_registry,\n        ]))\nuser_event_schema = redpanda.Schema(\"user_event_schema\",\n    cluster_id=test_cluster.id,\n    subject=f\"{topic_name}-events-value\",\n    schema_type=schema_type,\n    schema=user_event_schema_definition,\n    username=test_user.name,\n    password=user_pw,\n    allow_deletion=True,\n    references=[{\n        \"name\": \"User\",\n        \"subject\": user_schema.subject,\n        \"version\": user_schema.version,\n    }],\n    opts = pulumi.ResourceOptions(depends_on=[\n            cluster_admin,\n            schema_registry_admin,\n            cluster_action,\n            topic_access,\n            all_test_topic,\n            describe_registry,\n            alter_configs_registry,\n            read_registry,\n            write_registry,\n        ]))\nproduct_schema = redpanda.Schema(\"product_schema\",\n    cluster_id=test_cluster.id,\n    subject=f\"{topic_name}-product-value\",\n    schema_type=schema_type,\n    schema=product_schema_definition,\n    compatibility=compatibility_level,\n    username=test_user.name,\n    password=user_pw,\n    allow_deletion=True,\n    opts = pulumi.ResourceOptions(depends_on=[\n            cluster_admin,\n            schema_registry_admin,\n            cluster_action,\n            topic_access,\n            all_test_topic,\n            describe_registry,\n            alter_configs_registry,\n            read_registry,\n            write_registry,\n        ]))\nread_product = redpanda.SchemaRegistryAcl(\"read_product\",\n    cluster_id=test_cluster.id,\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    resource_type=\"SUBJECT\",\n    resource_name_=\"product-\",\n    pattern_type=\"PREFIXED\",\n    host=\"*\",\n    operation=\"READ\",\n    permission=\"ALLOW\",\n    username=test_user.name,\n    password=user_pw,\n    allow_deletion=sr_acl_allow_deletion,\n    opts = pulumi.ResourceOptions(depends_on=[schema_registry_admin]))\nwrite_orders = redpanda.SchemaRegistryAcl(\"write_orders\",\n    cluster_id=test_cluster.id,\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    resource_type=\"SUBJECT\",\n    resource_name_=\"orders-value\",\n    pattern_type=\"LITERAL\",\n    host=\"*\",\n    operation=\"WRITE\",\n    permission=\"ALLOW\",\n    username=test_user.name,\n    password=user_pw,\n    allow_deletion=True,\n    opts = pulumi.ResourceOptions(depends_on=[schema_registry_admin]))\ndescribe_test_topic = redpanda.SchemaRegistryAcl(\"describe_test_topic\",\n    cluster_id=test_cluster.id,\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    resource_type=\"SUBJECT\",\n    resource_name_=f\"{topic_name}-\",\n    pattern_type=\"PREFIXED\",\n    host=\"*\",\n    operation=\"DESCRIBE\",\n    permission=\"ALLOW\",\n    username=test_user.name,\n    password=user_pw,\n    allow_deletion=True,\n    opts = pulumi.ResourceOptions(depends_on=[schema_registry_admin]))\ndeveloper = redpanda.Role(\"developer\",\n    name=role_name,\n    cluster_api_url=test_cluster.cluster_api_url,\n    allow_deletion=role_allow_deletion)\ndeveloper_assignment = redpanda.RoleAssignment(\"developer_assignment\",\n    role_name=developer.name,\n    principal=test_user.name,\n    cluster_api_url=test_cluster.cluster_api_url,\n    opts = pulumi.ResourceOptions(depends_on=[test_user]))\ntest_pipeline = redpanda.Pipeline(\"test\",\n    cluster_api_url=test_cluster.cluster_api_url,\n    display_name=pipeline_name,\n    description=pipeline_description,\n    config_yaml=pipeline_config_yaml,\n    state=pipeline_state,\n    allow_deletion=pipeline_allow_deletion,\n    resources={\n        \"memory_shares\": pipeline_memory_shares,\n        \"cpu_shares\": pipeline_cpu_shares,\n    },\n    tags={\n        \"environment\": \"test\",\n        \"managed-by\": \"terraform\",\n    })\npulumi.export(\"pipelineInfo\", {\n    \"id\": test_pipeline.id,\n    \"name\": test_pipeline.display_name,\n    \"state\": test_pipeline.state,\n    \"url\": test_pipeline.url,\n})\npulumi.export(\"userSchemaInfo\", {\n    \"id\": user_schema.schema_id,\n    \"subject\": user_schema.subject,\n    \"version\": user_schema.version,\n    \"type\": user_schema.schema_type,\n})\npulumi.export(\"userEventSchemaInfo\", {\n    \"id\": user_event_schema.schema_id,\n    \"subject\": user_event_schema.subject,\n    \"version\": user_event_schema.version,\n    \"type\": user_event_schema.schema_type,\n    \"references\": user_event_schema.references,\n})\npulumi.export(\"productSchemaInfo\", {\n    \"id\": product_schema.schema_id,\n    \"subject\": product_schema.subject,\n    \"version\": product_schema.version,\n    \"type\": product_schema.schema_type,\n    \"compatibility\": product_schema.compatibility,\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Redpanda = Pulumi.Redpanda;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Redpanda.ResourceGroup(\"test\", new()\n    {\n        Name = resourceGroupName,\n    });\n\n    var testNetwork = new Redpanda.Network(\"test\", new()\n    {\n        Name = networkName,\n        ResourceGroupId = test.Id,\n        CloudProvider = cloudProvider,\n        Region = region,\n        ClusterType = \"dedicated\",\n        CidrBlock = \"10.0.0.0/20\",\n        Timeouts = new Redpanda.Inputs.NetworkTimeoutsArgs\n        {\n            Create = \"20m\",\n            Delete = \"20m\",\n        },\n    });\n\n    var testCluster = new Redpanda.Cluster(\"test\", new()\n    {\n        Name = clusterName,\n        ResourceGroupId = test.Id,\n        NetworkId = testNetwork.Id,\n        CloudProvider = cloudProvider,\n        Region = region,\n        ClusterType = \"dedicated\",\n        ConnectionType = \"public\",\n        ThroughputTier = throughputTier,\n        Zones = zones,\n        AllowDeletion = clusterAllowDeletion,\n        ClusterConfiguration = new Redpanda.Inputs.ClusterClusterConfigurationArgs\n        {\n            CustomPropertiesJson = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n            {\n                [\"schema_registry_enable_authorization\"] = true,\n            }),\n        },\n        Tags = \n        {\n            { \"key\", \"value\" },\n        },\n        Timeouts = new Redpanda.Inputs.ClusterTimeoutsArgs\n        {\n            Create = \"90m\",\n        },\n    });\n\n    var testUser = new Redpanda.User(\"test\", new()\n    {\n        Name = userName,\n        Password = userPw,\n        Mechanism = mechanism,\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        AllowDeletion = userAllowDeletion,\n    });\n\n    var testTopic = new Redpanda.Topic(\"test\", new()\n    {\n        Name = topicName,\n        PartitionCount = partitionCount,\n        ReplicationFactor = replicationFactor,\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        AllowDeletion = true,\n    });\n\n    var clusterAdmin = new Redpanda.Acl(\"cluster_admin\", new()\n    {\n        ResourceType = \"CLUSTER\",\n        ResourceName = \"kafka-cluster\",\n        ResourcePatternType = \"LITERAL\",\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        Host = \"*\",\n        Operation = \"ALL\",\n        PermissionType = \"ALLOW\",\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        AllowDeletion = aclAllowDeletion,\n    });\n\n    var schemaRegistryAdmin = new Redpanda.Acl(\"schema_registry_admin\", new()\n    {\n        ResourceType = \"CLUSTER\",\n        ResourceName = \"kafka-cluster\",\n        ResourcePatternType = \"LITERAL\",\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        Host = \"*\",\n        Operation = \"ALTER\",\n        PermissionType = \"ALLOW\",\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        AllowDeletion = aclAllowDeletion,\n    });\n\n    var clusterAction = new Redpanda.Acl(\"cluster_action\", new()\n    {\n        ResourceType = \"CLUSTER\",\n        ResourceName = \"kafka-cluster\",\n        ResourcePatternType = \"LITERAL\",\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        Host = \"*\",\n        Operation = \"CLUSTER_ACTION\",\n        PermissionType = \"ALLOW\",\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        AllowDeletion = aclAllowDeletion,\n    });\n\n    var topicAccess = new Redpanda.Acl(\"topic_access\", new()\n    {\n        ResourceType = \"TOPIC\",\n        ResourceName = topicName,\n        ResourcePatternType = \"LITERAL\",\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        Host = \"*\",\n        Operation = \"ALL\",\n        PermissionType = \"ALLOW\",\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        AllowDeletion = aclAllowDeletion,\n    });\n\n    var allTestTopic = new Redpanda.SchemaRegistryAcl(\"all_test_topic\", new()\n    {\n        ClusterId = testCluster.Id,\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        ResourceType = \"SUBJECT\",\n        ResourceName = $\"{topicName}-\",\n        PatternType = \"PREFIXED\",\n        Host = \"*\",\n        Operation = \"ALL\",\n        Permission = \"ALLOW\",\n        Username = testUser.Name,\n        Password = userPw,\n        AllowDeletion = true,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            schemaRegistryAdmin,\n        },\n    });\n\n    var describeRegistry = new Redpanda.SchemaRegistryAcl(\"describe_registry\", new()\n    {\n        ClusterId = testCluster.Id,\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        ResourceType = \"REGISTRY\",\n        ResourceName = \"*\",\n        PatternType = \"LITERAL\",\n        Host = \"*\",\n        Operation = \"DESCRIBE\",\n        Permission = \"ALLOW\",\n        Username = testUser.Name,\n        Password = userPw,\n        AllowDeletion = true,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            schemaRegistryAdmin,\n        },\n    });\n\n    var alterConfigsRegistry = new Redpanda.SchemaRegistryAcl(\"alter_configs_registry\", new()\n    {\n        ClusterId = testCluster.Id,\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        ResourceType = \"REGISTRY\",\n        ResourceName = \"*\",\n        PatternType = \"LITERAL\",\n        Host = \"*\",\n        Operation = \"ALTER_CONFIGS\",\n        Permission = \"ALLOW\",\n        Username = testUser.Name,\n        Password = userPw,\n        AllowDeletion = true,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            schemaRegistryAdmin,\n        },\n    });\n\n    var readRegistry = new Redpanda.SchemaRegistryAcl(\"read_registry\", new()\n    {\n        ClusterId = testCluster.Id,\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        ResourceType = \"REGISTRY\",\n        ResourceName = \"*\",\n        PatternType = \"LITERAL\",\n        Host = \"*\",\n        Operation = \"READ\",\n        Permission = \"ALLOW\",\n        Username = testUser.Name,\n        Password = userPw,\n        AllowDeletion = true,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            schemaRegistryAdmin,\n        },\n    });\n\n    var writeRegistry = new Redpanda.SchemaRegistryAcl(\"write_registry\", new()\n    {\n        ClusterId = testCluster.Id,\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        ResourceType = \"REGISTRY\",\n        ResourceName = \"*\",\n        PatternType = \"LITERAL\",\n        Host = \"*\",\n        Operation = \"WRITE\",\n        Permission = \"ALLOW\",\n        Username = testUser.Name,\n        Password = userPw,\n        AllowDeletion = true,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            schemaRegistryAdmin,\n        },\n    });\n\n    var userSchema = new Redpanda.Schema(\"user_schema\", new()\n    {\n        ClusterId = testCluster.Id,\n        Subject = $\"{topicName}-value\",\n        SchemaType = schemaType,\n        Schema = userSchemaDefinition,\n        Username = testUser.Name,\n        Password = userPw,\n        AllowDeletion = true,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            clusterAdmin,\n            schemaRegistryAdmin,\n            clusterAction,\n            topicAccess,\n            allTestTopic,\n            describeRegistry,\n            alterConfigsRegistry,\n            readRegistry,\n            writeRegistry,\n        },\n    });\n\n    var userEventSchema = new Redpanda.Schema(\"user_event_schema\", new()\n    {\n        ClusterId = testCluster.Id,\n        Subject = $\"{topicName}-events-value\",\n        SchemaType = schemaType,\n        Schema = userEventSchemaDefinition,\n        Username = testUser.Name,\n        Password = userPw,\n        AllowDeletion = true,\n        References = new[]\n        {\n            new Redpanda.Inputs.SchemaReferenceArgs\n            {\n                Name = \"User\",\n                Subject = userSchema.Subject,\n                Version = userSchema.Version,\n            },\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            clusterAdmin,\n            schemaRegistryAdmin,\n            clusterAction,\n            topicAccess,\n            allTestTopic,\n            describeRegistry,\n            alterConfigsRegistry,\n            readRegistry,\n            writeRegistry,\n        },\n    });\n\n    var productSchema = new Redpanda.Schema(\"product_schema\", new()\n    {\n        ClusterId = testCluster.Id,\n        Subject = $\"{topicName}-product-value\",\n        SchemaType = schemaType,\n        Schema = productSchemaDefinition,\n        Compatibility = compatibilityLevel,\n        Username = testUser.Name,\n        Password = userPw,\n        AllowDeletion = true,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            clusterAdmin,\n            schemaRegistryAdmin,\n            clusterAction,\n            topicAccess,\n            allTestTopic,\n            describeRegistry,\n            alterConfigsRegistry,\n            readRegistry,\n            writeRegistry,\n        },\n    });\n\n    var readProduct = new Redpanda.SchemaRegistryAcl(\"read_product\", new()\n    {\n        ClusterId = testCluster.Id,\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        ResourceType = \"SUBJECT\",\n        ResourceName = \"product-\",\n        PatternType = \"PREFIXED\",\n        Host = \"*\",\n        Operation = \"READ\",\n        Permission = \"ALLOW\",\n        Username = testUser.Name,\n        Password = userPw,\n        AllowDeletion = srAclAllowDeletion,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            schemaRegistryAdmin,\n        },\n    });\n\n    var writeOrders = new Redpanda.SchemaRegistryAcl(\"write_orders\", new()\n    {\n        ClusterId = testCluster.Id,\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        ResourceType = \"SUBJECT\",\n        ResourceName = \"orders-value\",\n        PatternType = \"LITERAL\",\n        Host = \"*\",\n        Operation = \"WRITE\",\n        Permission = \"ALLOW\",\n        Username = testUser.Name,\n        Password = userPw,\n        AllowDeletion = true,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            schemaRegistryAdmin,\n        },\n    });\n\n    var describeTestTopic = new Redpanda.SchemaRegistryAcl(\"describe_test_topic\", new()\n    {\n        ClusterId = testCluster.Id,\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        ResourceType = \"SUBJECT\",\n        ResourceName = $\"{topicName}-\",\n        PatternType = \"PREFIXED\",\n        Host = \"*\",\n        Operation = \"DESCRIBE\",\n        Permission = \"ALLOW\",\n        Username = testUser.Name,\n        Password = userPw,\n        AllowDeletion = true,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            schemaRegistryAdmin,\n        },\n    });\n\n    var developer = new Redpanda.Role(\"developer\", new()\n    {\n        Name = roleName,\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        AllowDeletion = roleAllowDeletion,\n    });\n\n    var developerAssignment = new Redpanda.RoleAssignment(\"developer_assignment\", new()\n    {\n        RoleName = developer.Name,\n        Principal = testUser.Name,\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            testUser,\n        },\n    });\n\n    var testPipeline = new Redpanda.Pipeline(\"test\", new()\n    {\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        DisplayName = pipelineName,\n        Description = pipelineDescription,\n        ConfigYaml = pipelineConfigYaml,\n        State = pipelineState,\n        AllowDeletion = pipelineAllowDeletion,\n        Resources = new Redpanda.Inputs.PipelineResourcesArgs\n        {\n            MemoryShares = pipelineMemoryShares,\n            CpuShares = pipelineCpuShares,\n        },\n        Tags = \n        {\n            { \"environment\", \"test\" },\n            { \"managed-by\", \"terraform\" },\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"pipelineInfo\"] = \n        {\n            { \"id\", testPipeline.Id },\n            { \"name\", testPipeline.DisplayName },\n            { \"state\", testPipeline.State },\n            { \"url\", testPipeline.Url },\n        },\n        [\"userSchemaInfo\"] = \n        {\n            { \"id\", userSchema.SchemaId },\n            { \"subject\", userSchema.Subject },\n            { \"version\", userSchema.Version },\n            { \"type\", userSchema.SchemaType },\n        },\n        [\"userEventSchemaInfo\"] = \n        {\n            { \"id\", userEventSchema.SchemaId },\n            { \"subject\", userEventSchema.Subject },\n            { \"version\", userEventSchema.Version },\n            { \"type\", userEventSchema.SchemaType },\n            { \"references\", userEventSchema.References },\n        },\n        [\"productSchemaInfo\"] = \n        {\n            { \"id\", productSchema.SchemaId },\n            { \"subject\", productSchema.Subject },\n            { \"version\", productSchema.Version },\n            { \"type\", productSchema.SchemaType },\n            { \"compatibility\", productSchema.Compatibility },\n        },\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/redpanda/redpanda\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := redpanda.NewResourceGroup(ctx, \"test\", \u0026redpanda.ResourceGroupArgs{\n\t\t\tName: pulumi.Any(resourceGroupName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestNetwork, err := redpanda.NewNetwork(ctx, \"test\", \u0026redpanda.NetworkArgs{\n\t\t\tName:            pulumi.Any(networkName),\n\t\t\tResourceGroupId: test.ID(),\n\t\t\tCloudProvider:   pulumi.Any(cloudProvider),\n\t\t\tRegion:          pulumi.Any(region),\n\t\t\tClusterType:     pulumi.String(\"dedicated\"),\n\t\t\tCidrBlock:       pulumi.String(\"10.0.0.0/20\"),\n\t\t\tTimeouts: \u0026redpanda.NetworkTimeoutsArgs{\n\t\t\t\tCreate: pulumi.String(\"20m\"),\n\t\t\t\tDelete: pulumi.String(\"20m\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"schema_registry_enable_authorization\": true,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\ttestCluster, err := redpanda.NewCluster(ctx, \"test\", \u0026redpanda.ClusterArgs{\n\t\t\tName:            pulumi.Any(clusterName),\n\t\t\tResourceGroupId: test.ID(),\n\t\t\tNetworkId:       testNetwork.ID(),\n\t\t\tCloudProvider:   pulumi.Any(cloudProvider),\n\t\t\tRegion:          pulumi.Any(region),\n\t\t\tClusterType:     pulumi.String(\"dedicated\"),\n\t\t\tConnectionType:  pulumi.String(\"public\"),\n\t\t\tThroughputTier:  pulumi.Any(throughputTier),\n\t\t\tZones:           pulumi.Any(zones),\n\t\t\tAllowDeletion:   pulumi.Any(clusterAllowDeletion),\n\t\t\tClusterConfiguration: \u0026redpanda.ClusterClusterConfigurationArgs{\n\t\t\t\tCustomPropertiesJson: pulumi.String(json0),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t\tTimeouts: \u0026redpanda.ClusterTimeoutsArgs{\n\t\t\t\tCreate: pulumi.String(\"90m\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestUser, err := redpanda.NewUser(ctx, \"test\", \u0026redpanda.UserArgs{\n\t\t\tName:          pulumi.Any(userName),\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tMechanism:     pulumi.Any(mechanism),\n\t\t\tClusterApiUrl: testCluster.ClusterApiUrl,\n\t\t\tAllowDeletion: pulumi.Any(userAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redpanda.NewTopic(ctx, \"test\", \u0026redpanda.TopicArgs{\n\t\t\tName:              pulumi.Any(topicName),\n\t\t\tPartitionCount:    pulumi.Any(partitionCount),\n\t\t\tReplicationFactor: pulumi.Any(replicationFactor),\n\t\t\tClusterApiUrl:     testCluster.ClusterApiUrl,\n\t\t\tAllowDeletion:     pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tclusterAdmin, err := redpanda.NewAcl(ctx, \"cluster_admin\", \u0026redpanda.AclArgs{\n\t\t\tResourceType:        pulumi.String(\"CLUSTER\"),\n\t\t\tResourceName:        pulumi.String(\"kafka-cluster\"),\n\t\t\tResourcePatternType: pulumi.String(\"LITERAL\"),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tHost:           pulumi.String(\"*\"),\n\t\t\tOperation:      pulumi.String(\"ALL\"),\n\t\t\tPermissionType: pulumi.String(\"ALLOW\"),\n\t\t\tClusterApiUrl:  testCluster.ClusterApiUrl,\n\t\t\tAllowDeletion:  pulumi.Any(aclAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tschemaRegistryAdmin, err := redpanda.NewAcl(ctx, \"schema_registry_admin\", \u0026redpanda.AclArgs{\n\t\t\tResourceType:        pulumi.String(\"CLUSTER\"),\n\t\t\tResourceName:        pulumi.String(\"kafka-cluster\"),\n\t\t\tResourcePatternType: pulumi.String(\"LITERAL\"),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tHost:           pulumi.String(\"*\"),\n\t\t\tOperation:      pulumi.String(\"ALTER\"),\n\t\t\tPermissionType: pulumi.String(\"ALLOW\"),\n\t\t\tClusterApiUrl:  testCluster.ClusterApiUrl,\n\t\t\tAllowDeletion:  pulumi.Any(aclAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tclusterAction, err := redpanda.NewAcl(ctx, \"cluster_action\", \u0026redpanda.AclArgs{\n\t\t\tResourceType:        pulumi.String(\"CLUSTER\"),\n\t\t\tResourceName:        pulumi.String(\"kafka-cluster\"),\n\t\t\tResourcePatternType: pulumi.String(\"LITERAL\"),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tHost:           pulumi.String(\"*\"),\n\t\t\tOperation:      pulumi.String(\"CLUSTER_ACTION\"),\n\t\t\tPermissionType: pulumi.String(\"ALLOW\"),\n\t\t\tClusterApiUrl:  testCluster.ClusterApiUrl,\n\t\t\tAllowDeletion:  pulumi.Any(aclAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttopicAccess, err := redpanda.NewAcl(ctx, \"topic_access\", \u0026redpanda.AclArgs{\n\t\t\tResourceType:        pulumi.String(\"TOPIC\"),\n\t\t\tResourceName:        pulumi.Any(topicName),\n\t\t\tResourcePatternType: pulumi.String(\"LITERAL\"),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tHost:           pulumi.String(\"*\"),\n\t\t\tOperation:      pulumi.String(\"ALL\"),\n\t\t\tPermissionType: pulumi.String(\"ALLOW\"),\n\t\t\tClusterApiUrl:  testCluster.ClusterApiUrl,\n\t\t\tAllowDeletion:  pulumi.Any(aclAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tallTestTopic, err := redpanda.NewSchemaRegistryAcl(ctx, \"all_test_topic\", \u0026redpanda.SchemaRegistryAclArgs{\n\t\t\tClusterId: testCluster.ID(),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tResourceType:  pulumi.String(\"SUBJECT\"),\n\t\t\tResourceName:  pulumi.Sprintf(\"%v-\", topicName),\n\t\t\tPatternType:   pulumi.String(\"PREFIXED\"),\n\t\t\tHost:          pulumi.String(\"*\"),\n\t\t\tOperation:     pulumi.String(\"ALL\"),\n\t\t\tPermission:    pulumi.String(\"ALLOW\"),\n\t\t\tUsername:      testUser.Name,\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tAllowDeletion: pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tschemaRegistryAdmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdescribeRegistry, err := redpanda.NewSchemaRegistryAcl(ctx, \"describe_registry\", \u0026redpanda.SchemaRegistryAclArgs{\n\t\t\tClusterId: testCluster.ID(),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tResourceType:  pulumi.String(\"REGISTRY\"),\n\t\t\tResourceName:  pulumi.String(\"*\"),\n\t\t\tPatternType:   pulumi.String(\"LITERAL\"),\n\t\t\tHost:          pulumi.String(\"*\"),\n\t\t\tOperation:     pulumi.String(\"DESCRIBE\"),\n\t\t\tPermission:    pulumi.String(\"ALLOW\"),\n\t\t\tUsername:      testUser.Name,\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tAllowDeletion: pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tschemaRegistryAdmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\talterConfigsRegistry, err := redpanda.NewSchemaRegistryAcl(ctx, \"alter_configs_registry\", \u0026redpanda.SchemaRegistryAclArgs{\n\t\t\tClusterId: testCluster.ID(),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tResourceType:  pulumi.String(\"REGISTRY\"),\n\t\t\tResourceName:  pulumi.String(\"*\"),\n\t\t\tPatternType:   pulumi.String(\"LITERAL\"),\n\t\t\tHost:          pulumi.String(\"*\"),\n\t\t\tOperation:     pulumi.String(\"ALTER_CONFIGS\"),\n\t\t\tPermission:    pulumi.String(\"ALLOW\"),\n\t\t\tUsername:      testUser.Name,\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tAllowDeletion: pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tschemaRegistryAdmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treadRegistry, err := redpanda.NewSchemaRegistryAcl(ctx, \"read_registry\", \u0026redpanda.SchemaRegistryAclArgs{\n\t\t\tClusterId: testCluster.ID(),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tResourceType:  pulumi.String(\"REGISTRY\"),\n\t\t\tResourceName:  pulumi.String(\"*\"),\n\t\t\tPatternType:   pulumi.String(\"LITERAL\"),\n\t\t\tHost:          pulumi.String(\"*\"),\n\t\t\tOperation:     pulumi.String(\"READ\"),\n\t\t\tPermission:    pulumi.String(\"ALLOW\"),\n\t\t\tUsername:      testUser.Name,\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tAllowDeletion: pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tschemaRegistryAdmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\twriteRegistry, err := redpanda.NewSchemaRegistryAcl(ctx, \"write_registry\", \u0026redpanda.SchemaRegistryAclArgs{\n\t\t\tClusterId: testCluster.ID(),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tResourceType:  pulumi.String(\"REGISTRY\"),\n\t\t\tResourceName:  pulumi.String(\"*\"),\n\t\t\tPatternType:   pulumi.String(\"LITERAL\"),\n\t\t\tHost:          pulumi.String(\"*\"),\n\t\t\tOperation:     pulumi.String(\"WRITE\"),\n\t\t\tPermission:    pulumi.String(\"ALLOW\"),\n\t\t\tUsername:      testUser.Name,\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tAllowDeletion: pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tschemaRegistryAdmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tuserSchema, err := redpanda.NewSchema(ctx, \"user_schema\", \u0026redpanda.SchemaArgs{\n\t\t\tClusterId:     testCluster.ID(),\n\t\t\tSubject:       pulumi.Sprintf(\"%v-value\", topicName),\n\t\t\tSchemaType:    pulumi.Any(schemaType),\n\t\t\tSchema:        pulumi.Any(userSchemaDefinition),\n\t\t\tUsername:      testUser.Name,\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tAllowDeletion: pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tclusterAdmin,\n\t\t\tschemaRegistryAdmin,\n\t\t\tclusterAction,\n\t\t\ttopicAccess,\n\t\t\tallTestTopic,\n\t\t\tdescribeRegistry,\n\t\t\talterConfigsRegistry,\n\t\t\treadRegistry,\n\t\t\twriteRegistry,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tuserEventSchema, err := redpanda.NewSchema(ctx, \"user_event_schema\", \u0026redpanda.SchemaArgs{\n\t\t\tClusterId:     testCluster.ID(),\n\t\t\tSubject:       pulumi.Sprintf(\"%v-events-value\", topicName),\n\t\t\tSchemaType:    pulumi.Any(schemaType),\n\t\t\tSchema:        pulumi.Any(userEventSchemaDefinition),\n\t\t\tUsername:      testUser.Name,\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tAllowDeletion: pulumi.Bool(true),\n\t\t\tReferences: redpanda.SchemaReferenceArray{\n\t\t\t\t\u0026redpanda.SchemaReferenceArgs{\n\t\t\t\t\tName:    pulumi.String(\"User\"),\n\t\t\t\t\tSubject: userSchema.Subject,\n\t\t\t\t\tVersion: userSchema.Version,\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tclusterAdmin,\n\t\t\tschemaRegistryAdmin,\n\t\t\tclusterAction,\n\t\t\ttopicAccess,\n\t\t\tallTestTopic,\n\t\t\tdescribeRegistry,\n\t\t\talterConfigsRegistry,\n\t\t\treadRegistry,\n\t\t\twriteRegistry,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproductSchema, err := redpanda.NewSchema(ctx, \"product_schema\", \u0026redpanda.SchemaArgs{\n\t\t\tClusterId:     testCluster.ID(),\n\t\t\tSubject:       pulumi.Sprintf(\"%v-product-value\", topicName),\n\t\t\tSchemaType:    pulumi.Any(schemaType),\n\t\t\tSchema:        pulumi.Any(productSchemaDefinition),\n\t\t\tCompatibility: pulumi.Any(compatibilityLevel),\n\t\t\tUsername:      testUser.Name,\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tAllowDeletion: pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tclusterAdmin,\n\t\t\tschemaRegistryAdmin,\n\t\t\tclusterAction,\n\t\t\ttopicAccess,\n\t\t\tallTestTopic,\n\t\t\tdescribeRegistry,\n\t\t\talterConfigsRegistry,\n\t\t\treadRegistry,\n\t\t\twriteRegistry,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redpanda.NewSchemaRegistryAcl(ctx, \"read_product\", \u0026redpanda.SchemaRegistryAclArgs{\n\t\t\tClusterId: testCluster.ID(),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tResourceType:  pulumi.String(\"SUBJECT\"),\n\t\t\tResourceName:  pulumi.String(\"product-\"),\n\t\t\tPatternType:   pulumi.String(\"PREFIXED\"),\n\t\t\tHost:          pulumi.String(\"*\"),\n\t\t\tOperation:     pulumi.String(\"READ\"),\n\t\t\tPermission:    pulumi.String(\"ALLOW\"),\n\t\t\tUsername:      testUser.Name,\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tAllowDeletion: pulumi.Any(srAclAllowDeletion),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tschemaRegistryAdmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redpanda.NewSchemaRegistryAcl(ctx, \"write_orders\", \u0026redpanda.SchemaRegistryAclArgs{\n\t\t\tClusterId: testCluster.ID(),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tResourceType:  pulumi.String(\"SUBJECT\"),\n\t\t\tResourceName:  pulumi.String(\"orders-value\"),\n\t\t\tPatternType:   pulumi.String(\"LITERAL\"),\n\t\t\tHost:          pulumi.String(\"*\"),\n\t\t\tOperation:     pulumi.String(\"WRITE\"),\n\t\t\tPermission:    pulumi.String(\"ALLOW\"),\n\t\t\tUsername:      testUser.Name,\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tAllowDeletion: pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tschemaRegistryAdmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redpanda.NewSchemaRegistryAcl(ctx, \"describe_test_topic\", \u0026redpanda.SchemaRegistryAclArgs{\n\t\t\tClusterId: testCluster.ID(),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tResourceType:  pulumi.String(\"SUBJECT\"),\n\t\t\tResourceName:  pulumi.Sprintf(\"%v-\", topicName),\n\t\t\tPatternType:   pulumi.String(\"PREFIXED\"),\n\t\t\tHost:          pulumi.String(\"*\"),\n\t\t\tOperation:     pulumi.String(\"DESCRIBE\"),\n\t\t\tPermission:    pulumi.String(\"ALLOW\"),\n\t\t\tUsername:      testUser.Name,\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tAllowDeletion: pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tschemaRegistryAdmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdeveloper, err := redpanda.NewRole(ctx, \"developer\", \u0026redpanda.RoleArgs{\n\t\t\tName:          pulumi.Any(roleName),\n\t\t\tClusterApiUrl: testCluster.ClusterApiUrl,\n\t\t\tAllowDeletion: pulumi.Any(roleAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redpanda.NewRoleAssignment(ctx, \"developer_assignment\", \u0026redpanda.RoleAssignmentArgs{\n\t\t\tRoleName:      developer.Name,\n\t\t\tPrincipal:     testUser.Name,\n\t\t\tClusterApiUrl: testCluster.ClusterApiUrl,\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\ttestUser,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestPipeline, err := redpanda.NewPipeline(ctx, \"test\", \u0026redpanda.PipelineArgs{\n\t\t\tClusterApiUrl: testCluster.ClusterApiUrl,\n\t\t\tDisplayName:   pulumi.Any(pipelineName),\n\t\t\tDescription:   pulumi.Any(pipelineDescription),\n\t\t\tConfigYaml:    pulumi.Any(pipelineConfigYaml),\n\t\t\tState:         pulumi.Any(pipelineState),\n\t\t\tAllowDeletion: pulumi.Any(pipelineAllowDeletion),\n\t\t\tResources: \u0026redpanda.PipelineResourcesArgs{\n\t\t\t\tMemoryShares: pulumi.Any(pipelineMemoryShares),\n\t\t\t\tCpuShares:    pulumi.Any(pipelineCpuShares),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"test\"),\n\t\t\t\t\"managed-by\":  pulumi.String(\"terraform\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"pipelineInfo\", pulumi.StringMap{\n\t\t\t\"id\":    testPipeline.ID(),\n\t\t\t\"name\":  testPipeline.DisplayName,\n\t\t\t\"state\": testPipeline.State,\n\t\t\t\"url\":   testPipeline.Url,\n\t\t})\n\t\tctx.Export(\"userSchemaInfo\", pulumi.Map{\n\t\t\t\"id\":      userSchema.SchemaId,\n\t\t\t\"subject\": userSchema.Subject,\n\t\t\t\"version\": userSchema.Version,\n\t\t\t\"type\":    userSchema.SchemaType,\n\t\t})\n\t\tctx.Export(\"userEventSchemaInfo\", pulumi.Map{\n\t\t\t\"id\":         userEventSchema.SchemaId,\n\t\t\t\"subject\":    userEventSchema.Subject,\n\t\t\t\"version\":    userEventSchema.Version,\n\t\t\t\"type\":       userEventSchema.SchemaType,\n\t\t\t\"references\": userEventSchema.References,\n\t\t})\n\t\tctx.Export(\"productSchemaInfo\", pulumi.Map{\n\t\t\t\"id\":            productSchema.SchemaId,\n\t\t\t\"subject\":       productSchema.Subject,\n\t\t\t\"version\":       productSchema.Version,\n\t\t\t\"type\":          productSchema.SchemaType,\n\t\t\t\"compatibility\": productSchema.Compatibility,\n\t\t})\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.redpanda.ResourceGroup;\nimport com.pulumi.redpanda.ResourceGroupArgs;\nimport com.pulumi.redpanda.Network;\nimport com.pulumi.redpanda.NetworkArgs;\nimport com.pulumi.redpanda.inputs.NetworkTimeoutsArgs;\nimport com.pulumi.redpanda.Cluster;\nimport com.pulumi.redpanda.ClusterArgs;\nimport com.pulumi.redpanda.inputs.ClusterClusterConfigurationArgs;\nimport com.pulumi.redpanda.inputs.ClusterTimeoutsArgs;\nimport com.pulumi.redpanda.User;\nimport com.pulumi.redpanda.UserArgs;\nimport com.pulumi.redpanda.Topic;\nimport com.pulumi.redpanda.TopicArgs;\nimport com.pulumi.redpanda.Acl;\nimport com.pulumi.redpanda.AclArgs;\nimport com.pulumi.redpanda.SchemaRegistryAcl;\nimport com.pulumi.redpanda.SchemaRegistryAclArgs;\nimport com.pulumi.redpanda.Schema;\nimport com.pulumi.redpanda.SchemaArgs;\nimport com.pulumi.redpanda.inputs.SchemaReferenceArgs;\nimport com.pulumi.redpanda.Role;\nimport com.pulumi.redpanda.RoleArgs;\nimport com.pulumi.redpanda.RoleAssignment;\nimport com.pulumi.redpanda.RoleAssignmentArgs;\nimport com.pulumi.redpanda.Pipeline;\nimport com.pulumi.redpanda.PipelineArgs;\nimport com.pulumi.redpanda.inputs.PipelineResourcesArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new ResourceGroup(\"test\", ResourceGroupArgs.builder()\n            .name(resourceGroupName)\n            .build());\n\n        var testNetwork = new Network(\"testNetwork\", NetworkArgs.builder()\n            .name(networkName)\n            .resourceGroupId(test.id())\n            .cloudProvider(cloudProvider)\n            .region(region)\n            .clusterType(\"dedicated\")\n            .cidrBlock(\"10.0.0.0/20\")\n            .timeouts(NetworkTimeoutsArgs.builder()\n                .create(\"20m\")\n                .delete(\"20m\")\n                .build())\n            .build());\n\n        var testCluster = new Cluster(\"testCluster\", ClusterArgs.builder()\n            .name(clusterName)\n            .resourceGroupId(test.id())\n            .networkId(testNetwork.id())\n            .cloudProvider(cloudProvider)\n            .region(region)\n            .clusterType(\"dedicated\")\n            .connectionType(\"public\")\n            .throughputTier(throughputTier)\n            .zones(zones)\n            .allowDeletion(clusterAllowDeletion)\n            .clusterConfiguration(ClusterClusterConfigurationArgs.builder()\n                .customPropertiesJson(serializeJson(\n                    jsonObject(\n                        jsonProperty(\"schema_registry_enable_authorization\", true)\n                    )))\n                .build())\n            .tags(Map.of(\"key\", \"value\"))\n            .timeouts(ClusterTimeoutsArgs.builder()\n                .create(\"90m\")\n                .build())\n            .build());\n\n        var testUser = new User(\"testUser\", UserArgs.builder()\n            .name(userName)\n            .password(userPw)\n            .mechanism(mechanism)\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .allowDeletion(userAllowDeletion)\n            .build());\n\n        var testTopic = new Topic(\"testTopic\", TopicArgs.builder()\n            .name(topicName)\n            .partitionCount(partitionCount)\n            .replicationFactor(replicationFactor)\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .allowDeletion(true)\n            .build());\n\n        var clusterAdmin = new Acl(\"clusterAdmin\", AclArgs.builder()\n            .resourceType(\"CLUSTER\")\n            .resourceName(\"kafka-cluster\")\n            .resourcePatternType(\"LITERAL\")\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .host(\"*\")\n            .operation(\"ALL\")\n            .permissionType(\"ALLOW\")\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .allowDeletion(aclAllowDeletion)\n            .build());\n\n        var schemaRegistryAdmin = new Acl(\"schemaRegistryAdmin\", AclArgs.builder()\n            .resourceType(\"CLUSTER\")\n            .resourceName(\"kafka-cluster\")\n            .resourcePatternType(\"LITERAL\")\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .host(\"*\")\n            .operation(\"ALTER\")\n            .permissionType(\"ALLOW\")\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .allowDeletion(aclAllowDeletion)\n            .build());\n\n        var clusterAction = new Acl(\"clusterAction\", AclArgs.builder()\n            .resourceType(\"CLUSTER\")\n            .resourceName(\"kafka-cluster\")\n            .resourcePatternType(\"LITERAL\")\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .host(\"*\")\n            .operation(\"CLUSTER_ACTION\")\n            .permissionType(\"ALLOW\")\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .allowDeletion(aclAllowDeletion)\n            .build());\n\n        var topicAccess = new Acl(\"topicAccess\", AclArgs.builder()\n            .resourceType(\"TOPIC\")\n            .resourceName(topicName)\n            .resourcePatternType(\"LITERAL\")\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .host(\"*\")\n            .operation(\"ALL\")\n            .permissionType(\"ALLOW\")\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .allowDeletion(aclAllowDeletion)\n            .build());\n\n        var allTestTopic = new SchemaRegistryAcl(\"allTestTopic\", SchemaRegistryAclArgs.builder()\n            .clusterId(testCluster.id())\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .resourceType(\"SUBJECT\")\n            .resourceName(String.format(\"%s-\", topicName))\n            .patternType(\"PREFIXED\")\n            .host(\"*\")\n            .operation(\"ALL\")\n            .permission(\"ALLOW\")\n            .username(testUser.name())\n            .password(userPw)\n            .allowDeletion(true)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(schemaRegistryAdmin)\n                .build());\n\n        var describeRegistry = new SchemaRegistryAcl(\"describeRegistry\", SchemaRegistryAclArgs.builder()\n            .clusterId(testCluster.id())\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .resourceType(\"REGISTRY\")\n            .resourceName(\"*\")\n            .patternType(\"LITERAL\")\n            .host(\"*\")\n            .operation(\"DESCRIBE\")\n            .permission(\"ALLOW\")\n            .username(testUser.name())\n            .password(userPw)\n            .allowDeletion(true)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(schemaRegistryAdmin)\n                .build());\n\n        var alterConfigsRegistry = new SchemaRegistryAcl(\"alterConfigsRegistry\", SchemaRegistryAclArgs.builder()\n            .clusterId(testCluster.id())\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .resourceType(\"REGISTRY\")\n            .resourceName(\"*\")\n            .patternType(\"LITERAL\")\n            .host(\"*\")\n            .operation(\"ALTER_CONFIGS\")\n            .permission(\"ALLOW\")\n            .username(testUser.name())\n            .password(userPw)\n            .allowDeletion(true)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(schemaRegistryAdmin)\n                .build());\n\n        var readRegistry = new SchemaRegistryAcl(\"readRegistry\", SchemaRegistryAclArgs.builder()\n            .clusterId(testCluster.id())\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .resourceType(\"REGISTRY\")\n            .resourceName(\"*\")\n            .patternType(\"LITERAL\")\n            .host(\"*\")\n            .operation(\"READ\")\n            .permission(\"ALLOW\")\n            .username(testUser.name())\n            .password(userPw)\n            .allowDeletion(true)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(schemaRegistryAdmin)\n                .build());\n\n        var writeRegistry = new SchemaRegistryAcl(\"writeRegistry\", SchemaRegistryAclArgs.builder()\n            .clusterId(testCluster.id())\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .resourceType(\"REGISTRY\")\n            .resourceName(\"*\")\n            .patternType(\"LITERAL\")\n            .host(\"*\")\n            .operation(\"WRITE\")\n            .permission(\"ALLOW\")\n            .username(testUser.name())\n            .password(userPw)\n            .allowDeletion(true)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(schemaRegistryAdmin)\n                .build());\n\n        var userSchema = new Schema(\"userSchema\", SchemaArgs.builder()\n            .clusterId(testCluster.id())\n            .subject(String.format(\"%s-value\", topicName))\n            .schemaType(schemaType)\n            .schema(userSchemaDefinition)\n            .username(testUser.name())\n            .password(userPw)\n            .allowDeletion(true)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(                \n                    clusterAdmin,\n                    schemaRegistryAdmin,\n                    clusterAction,\n                    topicAccess,\n                    allTestTopic,\n                    describeRegistry,\n                    alterConfigsRegistry,\n                    readRegistry,\n                    writeRegistry)\n                .build());\n\n        var userEventSchema = new Schema(\"userEventSchema\", SchemaArgs.builder()\n            .clusterId(testCluster.id())\n            .subject(String.format(\"%s-events-value\", topicName))\n            .schemaType(schemaType)\n            .schema(userEventSchemaDefinition)\n            .username(testUser.name())\n            .password(userPw)\n            .allowDeletion(true)\n            .references(SchemaReferenceArgs.builder()\n                .name(\"User\")\n                .subject(userSchema.subject())\n                .version(userSchema.version())\n                .build())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(                \n                    clusterAdmin,\n                    schemaRegistryAdmin,\n                    clusterAction,\n                    topicAccess,\n                    allTestTopic,\n                    describeRegistry,\n                    alterConfigsRegistry,\n                    readRegistry,\n                    writeRegistry)\n                .build());\n\n        var productSchema = new Schema(\"productSchema\", SchemaArgs.builder()\n            .clusterId(testCluster.id())\n            .subject(String.format(\"%s-product-value\", topicName))\n            .schemaType(schemaType)\n            .schema(productSchemaDefinition)\n            .compatibility(compatibilityLevel)\n            .username(testUser.name())\n            .password(userPw)\n            .allowDeletion(true)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(                \n                    clusterAdmin,\n                    schemaRegistryAdmin,\n                    clusterAction,\n                    topicAccess,\n                    allTestTopic,\n                    describeRegistry,\n                    alterConfigsRegistry,\n                    readRegistry,\n                    writeRegistry)\n                .build());\n\n        var readProduct = new SchemaRegistryAcl(\"readProduct\", SchemaRegistryAclArgs.builder()\n            .clusterId(testCluster.id())\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .resourceType(\"SUBJECT\")\n            .resourceName(\"product-\")\n            .patternType(\"PREFIXED\")\n            .host(\"*\")\n            .operation(\"READ\")\n            .permission(\"ALLOW\")\n            .username(testUser.name())\n            .password(userPw)\n            .allowDeletion(srAclAllowDeletion)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(schemaRegistryAdmin)\n                .build());\n\n        var writeOrders = new SchemaRegistryAcl(\"writeOrders\", SchemaRegistryAclArgs.builder()\n            .clusterId(testCluster.id())\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .resourceType(\"SUBJECT\")\n            .resourceName(\"orders-value\")\n            .patternType(\"LITERAL\")\n            .host(\"*\")\n            .operation(\"WRITE\")\n            .permission(\"ALLOW\")\n            .username(testUser.name())\n            .password(userPw)\n            .allowDeletion(true)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(schemaRegistryAdmin)\n                .build());\n\n        var describeTestTopic = new SchemaRegistryAcl(\"describeTestTopic\", SchemaRegistryAclArgs.builder()\n            .clusterId(testCluster.id())\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .resourceType(\"SUBJECT\")\n            .resourceName(String.format(\"%s-\", topicName))\n            .patternType(\"PREFIXED\")\n            .host(\"*\")\n            .operation(\"DESCRIBE\")\n            .permission(\"ALLOW\")\n            .username(testUser.name())\n            .password(userPw)\n            .allowDeletion(true)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(schemaRegistryAdmin)\n                .build());\n\n        var developer = new Role(\"developer\", RoleArgs.builder()\n            .name(roleName)\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .allowDeletion(roleAllowDeletion)\n            .build());\n\n        var developerAssignment = new RoleAssignment(\"developerAssignment\", RoleAssignmentArgs.builder()\n            .roleName(developer.name())\n            .principal(testUser.name())\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(testUser)\n                .build());\n\n        var testPipeline = new Pipeline(\"testPipeline\", PipelineArgs.builder()\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .displayName(pipelineName)\n            .description(pipelineDescription)\n            .configYaml(pipelineConfigYaml)\n            .state(pipelineState)\n            .allowDeletion(pipelineAllowDeletion)\n            .resources(PipelineResourcesArgs.builder()\n                .memoryShares(pipelineMemoryShares)\n                .cpuShares(pipelineCpuShares)\n                .build())\n            .tags(Map.ofEntries(\n                Map.entry(\"environment\", \"test\"),\n                Map.entry(\"managed-by\", \"terraform\")\n            ))\n            .build());\n\n        ctx.export(\"pipelineInfo\", Map.ofEntries(\n            Map.entry(\"id\", testPipeline.id()),\n            Map.entry(\"name\", testPipeline.displayName()),\n            Map.entry(\"state\", testPipeline.state()),\n            Map.entry(\"url\", testPipeline.url())\n        ));\n        ctx.export(\"userSchemaInfo\", Map.ofEntries(\n            Map.entry(\"id\", userSchema.schemaId()),\n            Map.entry(\"subject\", userSchema.subject()),\n            Map.entry(\"version\", userSchema.version()),\n            Map.entry(\"type\", userSchema.schemaType())\n        ));\n        ctx.export(\"userEventSchemaInfo\", Map.ofEntries(\n            Map.entry(\"id\", userEventSchema.schemaId()),\n            Map.entry(\"subject\", userEventSchema.subject()),\n            Map.entry(\"version\", userEventSchema.version()),\n            Map.entry(\"type\", userEventSchema.schemaType()),\n            Map.entry(\"references\", userEventSchema.references())\n        ));\n        ctx.export(\"productSchemaInfo\", Map.ofEntries(\n            Map.entry(\"id\", productSchema.schemaId()),\n            Map.entry(\"subject\", productSchema.subject()),\n            Map.entry(\"version\", productSchema.version()),\n            Map.entry(\"type\", productSchema.schemaType()),\n            Map.entry(\"compatibility\", productSchema.compatibility())\n        ));\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: redpanda:ResourceGroup\n    properties:\n      name: ${resourceGroupName}\n  testNetwork:\n    type: redpanda:Network\n    name: test\n    properties:\n      name: ${networkName}\n      resourceGroupId: ${test.id}\n      cloudProvider: ${cloudProvider}\n      region: ${region}\n      clusterType: dedicated\n      cidrBlock: 10.0.0.0/20\n      timeouts:\n        create: 20m\n        delete: 20m\n  testCluster:\n    type: redpanda:Cluster\n    name: test\n    properties:\n      name: ${clusterName}\n      resourceGroupId: ${test.id}\n      networkId: ${testNetwork.id}\n      cloudProvider: ${cloudProvider}\n      region: ${region}\n      clusterType: dedicated\n      connectionType: public\n      throughputTier: ${throughputTier}\n      zones: ${zones}\n      allowDeletion: ${clusterAllowDeletion}\n      clusterConfiguration:\n        customPropertiesJson:\n          fn::toJSON:\n            schema_registry_enable_authorization: true\n      tags:\n        key: value\n      timeouts:\n        create: 90m\n  testUser:\n    type: redpanda:User\n    name: test\n    properties:\n      name: ${userName}\n      password: ${userPw}\n      mechanism: ${mechanism}\n      clusterApiUrl: ${testCluster.clusterApiUrl}\n      allowDeletion: ${userAllowDeletion}\n  testTopic:\n    type: redpanda:Topic\n    name: test\n    properties:\n      name: ${topicName}\n      partitionCount: ${partitionCount}\n      replicationFactor: ${replicationFactor}\n      clusterApiUrl: ${testCluster.clusterApiUrl}\n      allowDeletion: true\n  userSchema:\n    type: redpanda:Schema\n    name: user_schema\n    properties:\n      clusterId: ${testCluster.id}\n      subject: ${topicName}-value\n      schemaType: ${schemaType}\n      schema: ${userSchemaDefinition}\n      username: ${testUser.name}\n      password: ${userPw}\n      allowDeletion: true\n    options:\n      dependsOn:\n        - ${clusterAdmin}\n        - ${schemaRegistryAdmin}\n        - ${clusterAction}\n        - ${topicAccess}\n        - ${allTestTopic}\n        - ${describeRegistry}\n        - ${alterConfigsRegistry}\n        - ${readRegistry}\n        - ${writeRegistry}\n  userEventSchema:\n    type: redpanda:Schema\n    name: user_event_schema\n    properties:\n      clusterId: ${testCluster.id}\n      subject: ${topicName}-events-value\n      schemaType: ${schemaType}\n      schema: ${userEventSchemaDefinition}\n      username: ${testUser.name}\n      password: ${userPw}\n      allowDeletion: true\n      references:\n        - name: User\n          subject: ${userSchema.subject}\n          version: ${userSchema.version}\n    options:\n      dependsOn:\n        - ${clusterAdmin}\n        - ${schemaRegistryAdmin}\n        - ${clusterAction}\n        - ${topicAccess}\n        - ${allTestTopic}\n        - ${describeRegistry}\n        - ${alterConfigsRegistry}\n        - ${readRegistry}\n        - ${writeRegistry}\n  productSchema:\n    type: redpanda:Schema\n    name: product_schema\n    properties:\n      clusterId: ${testCluster.id}\n      subject: ${topicName}-product-value\n      schemaType: ${schemaType}\n      schema: ${productSchemaDefinition}\n      compatibility: ${compatibilityLevel}\n      username: ${testUser.name}\n      password: ${userPw}\n      allowDeletion: true\n    options:\n      dependsOn:\n        - ${clusterAdmin}\n        - ${schemaRegistryAdmin}\n        - ${clusterAction}\n        - ${topicAccess}\n        - ${allTestTopic}\n        - ${describeRegistry}\n        - ${alterConfigsRegistry}\n        - ${readRegistry}\n        - ${writeRegistry}\n  clusterAdmin:\n    type: redpanda:Acl\n    name: cluster_admin\n    properties:\n      resourceType: CLUSTER\n      resourceName: kafka-cluster\n      resourcePatternType: LITERAL\n      principal: User:${testUser.name}\n      host: '*'\n      operation: ALL\n      permissionType: ALLOW\n      clusterApiUrl: ${testCluster.clusterApiUrl}\n      allowDeletion: ${aclAllowDeletion}\n  schemaRegistryAdmin:\n    type: redpanda:Acl\n    name: schema_registry_admin\n    properties:\n      resourceType: CLUSTER\n      resourceName: kafka-cluster\n      resourcePatternType: LITERAL\n      principal: User:${testUser.name}\n      host: '*'\n      operation: ALTER\n      permissionType: ALLOW\n      clusterApiUrl: ${testCluster.clusterApiUrl}\n      allowDeletion: ${aclAllowDeletion}\n  clusterAction:\n    type: redpanda:Acl\n    name: cluster_action\n    properties:\n      resourceType: CLUSTER\n      resourceName: kafka-cluster\n      resourcePatternType: LITERAL\n      principal: User:${testUser.name}\n      host: '*'\n      operation: CLUSTER_ACTION\n      permissionType: ALLOW\n      clusterApiUrl: ${testCluster.clusterApiUrl}\n      allowDeletion: ${aclAllowDeletion}\n  topicAccess:\n    type: redpanda:Acl\n    name: topic_access\n    properties:\n      resourceType: TOPIC\n      resourceName: ${topicName}\n      resourcePatternType: LITERAL\n      principal: User:${testUser.name}\n      host: '*'\n      operation: ALL\n      permissionType: ALLOW\n      clusterApiUrl: ${testCluster.clusterApiUrl}\n      allowDeletion: ${aclAllowDeletion}\n  readProduct:\n    type: redpanda:SchemaRegistryAcl\n    name: read_product\n    properties:\n      clusterId: ${testCluster.id}\n      principal: User:${testUser.name}\n      resourceType: SUBJECT\n      resourceName: product-\n      patternType: PREFIXED\n      host: '*'\n      operation: READ\n      permission: ALLOW\n      username: ${testUser.name}\n      password: ${userPw}\n      allowDeletion: ${srAclAllowDeletion}\n    options:\n      dependsOn:\n        - ${schemaRegistryAdmin}\n  writeOrders:\n    type: redpanda:SchemaRegistryAcl\n    name: write_orders\n    properties:\n      clusterId: ${testCluster.id}\n      principal: User:${testUser.name}\n      resourceType: SUBJECT\n      resourceName: orders-value\n      patternType: LITERAL\n      host: '*'\n      operation: WRITE\n      permission: ALLOW\n      username: ${testUser.name}\n      password: ${userPw}\n      allowDeletion: true\n    options:\n      dependsOn:\n        - ${schemaRegistryAdmin}\n  allTestTopic:\n    type: redpanda:SchemaRegistryAcl\n    name: all_test_topic\n    properties:\n      clusterId: ${testCluster.id}\n      principal: User:${testUser.name}\n      resourceType: SUBJECT\n      resourceName: ${topicName}-\n      patternType: PREFIXED\n      host: '*'\n      operation: ALL\n      permission: ALLOW\n      username: ${testUser.name}\n      password: ${userPw}\n      allowDeletion: true\n    options:\n      dependsOn:\n        - ${schemaRegistryAdmin}\n  describeTestTopic:\n    type: redpanda:SchemaRegistryAcl\n    name: describe_test_topic\n    properties:\n      clusterId: ${testCluster.id}\n      principal: User:${testUser.name}\n      resourceType: SUBJECT\n      resourceName: ${topicName}-\n      patternType: PREFIXED\n      host: '*'\n      operation: DESCRIBE\n      permission: ALLOW\n      username: ${testUser.name}\n      password: ${userPw}\n      allowDeletion: true\n    options:\n      dependsOn:\n        - ${schemaRegistryAdmin}\n  describeRegistry:\n    type: redpanda:SchemaRegistryAcl\n    name: describe_registry\n    properties:\n      clusterId: ${testCluster.id}\n      principal: User:${testUser.name}\n      resourceType: REGISTRY\n      resourceName: '*'\n      patternType: LITERAL\n      host: '*'\n      operation: DESCRIBE\n      permission: ALLOW\n      username: ${testUser.name}\n      password: ${userPw}\n      allowDeletion: true\n    options:\n      dependsOn:\n        - ${schemaRegistryAdmin}\n  alterConfigsRegistry:\n    type: redpanda:SchemaRegistryAcl\n    name: alter_configs_registry\n    properties:\n      clusterId: ${testCluster.id}\n      principal: User:${testUser.name}\n      resourceType: REGISTRY\n      resourceName: '*'\n      patternType: LITERAL\n      host: '*'\n      operation: ALTER_CONFIGS\n      permission: ALLOW\n      username: ${testUser.name}\n      password: ${userPw}\n      allowDeletion: true\n    options:\n      dependsOn:\n        - ${schemaRegistryAdmin}\n  readRegistry:\n    type: redpanda:SchemaRegistryAcl\n    name: read_registry\n    properties:\n      clusterId: ${testCluster.id}\n      principal: User:${testUser.name}\n      resourceType: REGISTRY\n      resourceName: '*'\n      patternType: LITERAL\n      host: '*'\n      operation: READ\n      permission: ALLOW\n      username: ${testUser.name}\n      password: ${userPw}\n      allowDeletion: true\n    options:\n      dependsOn:\n        - ${schemaRegistryAdmin}\n  writeRegistry:\n    type: redpanda:SchemaRegistryAcl\n    name: write_registry\n    properties:\n      clusterId: ${testCluster.id}\n      principal: User:${testUser.name}\n      resourceType: REGISTRY\n      resourceName: '*'\n      patternType: LITERAL\n      host: '*'\n      operation: WRITE\n      permission: ALLOW\n      username: ${testUser.name}\n      password: ${userPw}\n      allowDeletion: true\n    options:\n      dependsOn:\n        - ${schemaRegistryAdmin}\n  developer:\n    type: redpanda:Role\n    properties:\n      name: ${roleName}\n      clusterApiUrl: ${testCluster.clusterApiUrl}\n      allowDeletion: ${roleAllowDeletion}\n  developerAssignment:\n    type: redpanda:RoleAssignment\n    name: developer_assignment\n    properties:\n      roleName: ${developer.name}\n      principal: ${testUser.name}\n      clusterApiUrl: ${testCluster.clusterApiUrl}\n    options:\n      dependsOn:\n        - ${testUser}\n  testPipeline:\n    type: redpanda:Pipeline\n    name: test\n    properties:\n      clusterApiUrl: ${testCluster.clusterApiUrl}\n      displayName: ${pipelineName}\n      description: ${pipelineDescription}\n      configYaml: ${pipelineConfigYaml}\n      state: ${pipelineState}\n      allowDeletion: ${pipelineAllowDeletion}\n      resources:\n        memoryShares: ${pipelineMemoryShares}\n        cpuShares: ${pipelineCpuShares}\n      tags:\n        environment: test\n        managed-by: terraform\noutputs:\n  pipelineInfo:\n    id: ${testPipeline.id}\n    name: ${testPipeline.displayName}\n    state: ${testPipeline.state}\n    url: ${testPipeline.url}\n  userSchemaInfo:\n    id: ${userSchema.schemaId}\n    subject: ${userSchema.subject}\n    version: ${userSchema.version}\n    type: ${userSchema.schemaType}\n  userEventSchemaInfo:\n    id: ${userEventSchema.schemaId}\n    subject: ${userEventSchema.subject}\n    version: ${userEventSchema.version}\n    type: ${userEventSchema.schemaType}\n    references: ${userEventSchema.references}\n  productSchemaInfo:\n    id: ${productSchema.schemaId}\n    subject: ${productSchema.subject}\n    version: ${productSchema.version}\n    type: ${productSchema.schemaType}\n    compatibility: ${productSchema.compatibility}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## BYOC\n\nThis configuration of cluster allows the end user to provide access to their cloud account to the provider so that it can create the necessary infrastructure in their account rather than in Redpanda's Cloud.\n\n#### Additional Requirements\n\nTo build a BYOC cluster you must provide credentials that enable the provider to authenticate to the relevant cloud provider. How this works will depend on which cloud provider you are using.\n\n### AWS BYOC\n\nTo create a BYOC AWS cluster you must provide an AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY. The account [must have fairly wide ranging permissions](https://docs.redpanda.com/redpanda-cloud/security/authorization/cloud-iam-policies/) to create the necessary infrastructure.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as redpanda from \"@pulumi/redpanda\";\n\nconst test = new redpanda.ResourceGroup(\"test\", {name: resourceGroupName});\nconst testNetwork = new redpanda.Network(\"test\", {\n    name: networkName,\n    resourceGroupId: test.id,\n    cloudProvider: cloudProvider,\n    region: region,\n    clusterType: \"byoc\",\n    cidrBlock: \"10.0.0.0/20\",\n});\nconst testCluster = new redpanda.Cluster(\"test\", {\n    name: clusterName,\n    resourceGroupId: test.id,\n    networkId: testNetwork.id,\n    cloudProvider: testNetwork.cloudProvider,\n    region: testNetwork.region,\n    clusterType: testNetwork.clusterType,\n    connectionType: \"public\",\n    throughputTier: throughputTier,\n    zones: zones,\n    allowDeletion: clusterAllowDeletion,\n    tags: {\n        key: \"value\",\n    },\n    timeouts: {\n        create: \"90m\",\n    },\n});\nconst testUser = new redpanda.User(\"test\", {\n    name: userName,\n    password: userPw,\n    mechanism: mechanism,\n    clusterApiUrl: testCluster.clusterApiUrl,\n    allowDeletion: userAllowDeletion,\n});\nconst testTopic = new redpanda.Topic(\"test\", {\n    name: topicName,\n    partitionCount: partitionCount,\n    replicationFactor: replicationFactor,\n    clusterApiUrl: testCluster.clusterApiUrl,\n    allowDeletion: true,\n});\nconst topicAccess = new redpanda.Acl(\"topic_access\", {\n    resourceType: \"TOPIC\",\n    resourceName: testTopic.name,\n    resourcePatternType: \"LITERAL\",\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    host: \"*\",\n    operation: \"READ\",\n    permissionType: \"ALLOW\",\n    clusterApiUrl: testCluster.clusterApiUrl,\n    allowDeletion: aclAllowDeletion,\n});\n```\n```python\nimport pulumi\nimport pulumi_redpanda as redpanda\n\ntest = redpanda.ResourceGroup(\"test\", name=resource_group_name)\ntest_network = redpanda.Network(\"test\",\n    name=network_name,\n    resource_group_id=test.id,\n    cloud_provider=cloud_provider,\n    region=region,\n    cluster_type=\"byoc\",\n    cidr_block=\"10.0.0.0/20\")\ntest_cluster = redpanda.Cluster(\"test\",\n    name=cluster_name,\n    resource_group_id=test.id,\n    network_id=test_network.id,\n    cloud_provider=test_network.cloud_provider,\n    region=test_network.region,\n    cluster_type=test_network.cluster_type,\n    connection_type=\"public\",\n    throughput_tier=throughput_tier,\n    zones=zones,\n    allow_deletion=cluster_allow_deletion,\n    tags={\n        \"key\": \"value\",\n    },\n    timeouts={\n        \"create\": \"90m\",\n    })\ntest_user = redpanda.User(\"test\",\n    name=user_name,\n    password=user_pw,\n    mechanism=mechanism,\n    cluster_api_url=test_cluster.cluster_api_url,\n    allow_deletion=user_allow_deletion)\ntest_topic = redpanda.Topic(\"test\",\n    name=topic_name,\n    partition_count=partition_count,\n    replication_factor=replication_factor,\n    cluster_api_url=test_cluster.cluster_api_url,\n    allow_deletion=True)\ntopic_access = redpanda.Acl(\"topic_access\",\n    resource_type=\"TOPIC\",\n    resource_name_=test_topic.name,\n    resource_pattern_type=\"LITERAL\",\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    host=\"*\",\n    operation=\"READ\",\n    permission_type=\"ALLOW\",\n    cluster_api_url=test_cluster.cluster_api_url,\n    allow_deletion=acl_allow_deletion)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Redpanda = Pulumi.Redpanda;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Redpanda.ResourceGroup(\"test\", new()\n    {\n        Name = resourceGroupName,\n    });\n\n    var testNetwork = new Redpanda.Network(\"test\", new()\n    {\n        Name = networkName,\n        ResourceGroupId = test.Id,\n        CloudProvider = cloudProvider,\n        Region = region,\n        ClusterType = \"byoc\",\n        CidrBlock = \"10.0.0.0/20\",\n    });\n\n    var testCluster = new Redpanda.Cluster(\"test\", new()\n    {\n        Name = clusterName,\n        ResourceGroupId = test.Id,\n        NetworkId = testNetwork.Id,\n        CloudProvider = testNetwork.CloudProvider,\n        Region = testNetwork.Region,\n        ClusterType = testNetwork.ClusterType,\n        ConnectionType = \"public\",\n        ThroughputTier = throughputTier,\n        Zones = zones,\n        AllowDeletion = clusterAllowDeletion,\n        Tags = \n        {\n            { \"key\", \"value\" },\n        },\n        Timeouts = new Redpanda.Inputs.ClusterTimeoutsArgs\n        {\n            Create = \"90m\",\n        },\n    });\n\n    var testUser = new Redpanda.User(\"test\", new()\n    {\n        Name = userName,\n        Password = userPw,\n        Mechanism = mechanism,\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        AllowDeletion = userAllowDeletion,\n    });\n\n    var testTopic = new Redpanda.Topic(\"test\", new()\n    {\n        Name = topicName,\n        PartitionCount = partitionCount,\n        ReplicationFactor = replicationFactor,\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        AllowDeletion = true,\n    });\n\n    var topicAccess = new Redpanda.Acl(\"topic_access\", new()\n    {\n        ResourceType = \"TOPIC\",\n        ResourceName = testTopic.Name,\n        ResourcePatternType = \"LITERAL\",\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        Host = \"*\",\n        Operation = \"READ\",\n        PermissionType = \"ALLOW\",\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        AllowDeletion = aclAllowDeletion,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/redpanda/redpanda\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := redpanda.NewResourceGroup(ctx, \"test\", \u0026redpanda.ResourceGroupArgs{\n\t\t\tName: pulumi.Any(resourceGroupName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestNetwork, err := redpanda.NewNetwork(ctx, \"test\", \u0026redpanda.NetworkArgs{\n\t\t\tName:            pulumi.Any(networkName),\n\t\t\tResourceGroupId: test.ID(),\n\t\t\tCloudProvider:   pulumi.Any(cloudProvider),\n\t\t\tRegion:          pulumi.Any(region),\n\t\t\tClusterType:     pulumi.String(\"byoc\"),\n\t\t\tCidrBlock:       pulumi.String(\"10.0.0.0/20\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestCluster, err := redpanda.NewCluster(ctx, \"test\", \u0026redpanda.ClusterArgs{\n\t\t\tName:            pulumi.Any(clusterName),\n\t\t\tResourceGroupId: test.ID(),\n\t\t\tNetworkId:       testNetwork.ID(),\n\t\t\tCloudProvider:   testNetwork.CloudProvider,\n\t\t\tRegion:          testNetwork.Region,\n\t\t\tClusterType:     testNetwork.ClusterType,\n\t\t\tConnectionType:  pulumi.String(\"public\"),\n\t\t\tThroughputTier:  pulumi.Any(throughputTier),\n\t\t\tZones:           pulumi.Any(zones),\n\t\t\tAllowDeletion:   pulumi.Any(clusterAllowDeletion),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t\tTimeouts: \u0026redpanda.ClusterTimeoutsArgs{\n\t\t\t\tCreate: pulumi.String(\"90m\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestUser, err := redpanda.NewUser(ctx, \"test\", \u0026redpanda.UserArgs{\n\t\t\tName:          pulumi.Any(userName),\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tMechanism:     pulumi.Any(mechanism),\n\t\t\tClusterApiUrl: testCluster.ClusterApiUrl,\n\t\t\tAllowDeletion: pulumi.Any(userAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestTopic, err := redpanda.NewTopic(ctx, \"test\", \u0026redpanda.TopicArgs{\n\t\t\tName:              pulumi.Any(topicName),\n\t\t\tPartitionCount:    pulumi.Any(partitionCount),\n\t\t\tReplicationFactor: pulumi.Any(replicationFactor),\n\t\t\tClusterApiUrl:     testCluster.ClusterApiUrl,\n\t\t\tAllowDeletion:     pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redpanda.NewAcl(ctx, \"topic_access\", \u0026redpanda.AclArgs{\n\t\t\tResourceType:        pulumi.String(\"TOPIC\"),\n\t\t\tResourceName:        testTopic.Name,\n\t\t\tResourcePatternType: pulumi.String(\"LITERAL\"),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tHost:           pulumi.String(\"*\"),\n\t\t\tOperation:      pulumi.String(\"READ\"),\n\t\t\tPermissionType: pulumi.String(\"ALLOW\"),\n\t\t\tClusterApiUrl:  testCluster.ClusterApiUrl,\n\t\t\tAllowDeletion:  pulumi.Any(aclAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.redpanda.ResourceGroup;\nimport com.pulumi.redpanda.ResourceGroupArgs;\nimport com.pulumi.redpanda.Network;\nimport com.pulumi.redpanda.NetworkArgs;\nimport com.pulumi.redpanda.Cluster;\nimport com.pulumi.redpanda.ClusterArgs;\nimport com.pulumi.redpanda.inputs.ClusterTimeoutsArgs;\nimport com.pulumi.redpanda.User;\nimport com.pulumi.redpanda.UserArgs;\nimport com.pulumi.redpanda.Topic;\nimport com.pulumi.redpanda.TopicArgs;\nimport com.pulumi.redpanda.Acl;\nimport com.pulumi.redpanda.AclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new ResourceGroup(\"test\", ResourceGroupArgs.builder()\n            .name(resourceGroupName)\n            .build());\n\n        var testNetwork = new Network(\"testNetwork\", NetworkArgs.builder()\n            .name(networkName)\n            .resourceGroupId(test.id())\n            .cloudProvider(cloudProvider)\n            .region(region)\n            .clusterType(\"byoc\")\n            .cidrBlock(\"10.0.0.0/20\")\n            .build());\n\n        var testCluster = new Cluster(\"testCluster\", ClusterArgs.builder()\n            .name(clusterName)\n            .resourceGroupId(test.id())\n            .networkId(testNetwork.id())\n            .cloudProvider(testNetwork.cloudProvider())\n            .region(testNetwork.region())\n            .clusterType(testNetwork.clusterType())\n            .connectionType(\"public\")\n            .throughputTier(throughputTier)\n            .zones(zones)\n            .allowDeletion(clusterAllowDeletion)\n            .tags(Map.of(\"key\", \"value\"))\n            .timeouts(ClusterTimeoutsArgs.builder()\n                .create(\"90m\")\n                .build())\n            .build());\n\n        var testUser = new User(\"testUser\", UserArgs.builder()\n            .name(userName)\n            .password(userPw)\n            .mechanism(mechanism)\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .allowDeletion(userAllowDeletion)\n            .build());\n\n        var testTopic = new Topic(\"testTopic\", TopicArgs.builder()\n            .name(topicName)\n            .partitionCount(partitionCount)\n            .replicationFactor(replicationFactor)\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .allowDeletion(true)\n            .build());\n\n        var topicAccess = new Acl(\"topicAccess\", AclArgs.builder()\n            .resourceType(\"TOPIC\")\n            .resourceName(testTopic.name())\n            .resourcePatternType(\"LITERAL\")\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .host(\"*\")\n            .operation(\"READ\")\n            .permissionType(\"ALLOW\")\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .allowDeletion(aclAllowDeletion)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: redpanda:ResourceGroup\n    properties:\n      name: ${resourceGroupName}\n  testNetwork:\n    type: redpanda:Network\n    name: test\n    properties:\n      name: ${networkName}\n      resourceGroupId: ${test.id}\n      cloudProvider: ${cloudProvider}\n      region: ${region}\n      clusterType: byoc\n      cidrBlock: 10.0.0.0/20\n  testCluster:\n    type: redpanda:Cluster\n    name: test\n    properties:\n      name: ${clusterName}\n      resourceGroupId: ${test.id}\n      networkId: ${testNetwork.id}\n      cloudProvider: ${testNetwork.cloudProvider}\n      region: ${testNetwork.region}\n      clusterType: ${testNetwork.clusterType}\n      connectionType: public\n      throughputTier: ${throughputTier}\n      zones: ${zones}\n      allowDeletion: ${clusterAllowDeletion}\n      tags:\n        key: value\n      timeouts:\n        create: 90m\n  testUser:\n    type: redpanda:User\n    name: test\n    properties:\n      name: ${userName}\n      password: ${userPw}\n      mechanism: ${mechanism}\n      clusterApiUrl: ${testCluster.clusterApiUrl}\n      allowDeletion: ${userAllowDeletion}\n  testTopic:\n    type: redpanda:Topic\n    name: test\n    properties:\n      name: ${topicName}\n      partitionCount: ${partitionCount}\n      replicationFactor: ${replicationFactor}\n      clusterApiUrl: ${testCluster.clusterApiUrl}\n      allowDeletion: true\n  topicAccess:\n    type: redpanda:Acl\n    name: topic_access\n    properties:\n      resourceType: TOPIC\n      resourceName: ${testTopic.name}\n      resourcePatternType: LITERAL\n      principal: User:${testUser.name}\n      host: '*'\n      operation: READ\n      permissionType: ALLOW\n      clusterApiUrl: ${testCluster.clusterApiUrl}\n      allowDeletion: ${aclAllowDeletion}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### GCP BYOC\n\nTo create a GCP BYOC cluster you must provide a GCP_PROJECT_ID and GOOGLE_CREDENTIALS. We also accept the credentials encoded in base64 format if you use GOOGLE_CREDENTIALS_BASE64. The account [must have fairly wide ranging permissions](https://docs.redpanda.com/redpanda-cloud/security/authorization/cloud-iam-policies-gcp/) to create the necessary infrastructure.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as redpanda from \"@pulumi/redpanda\";\n\nconst test = new redpanda.ResourceGroup(\"test\", {name: resourceGroupName});\nconst testNetwork = new redpanda.Network(\"test\", {\n    name: networkName,\n    resourceGroupId: test.id,\n    cloudProvider: cloudProvider,\n    region: region,\n    clusterType: \"byoc\",\n    cidrBlock: \"10.0.0.0/20\",\n});\nconst testCluster = new redpanda.Cluster(\"test\", {\n    name: clusterName,\n    resourceGroupId: test.id,\n    networkId: testNetwork.id,\n    cloudProvider: testNetwork.cloudProvider,\n    region: testNetwork.region,\n    clusterType: testNetwork.clusterType,\n    connectionType: \"public\",\n    throughputTier: throughputTier,\n    zones: zones,\n    allowDeletion: clusterAllowDeletion,\n});\nconst testUser = new redpanda.User(\"test\", {\n    name: userName,\n    password: userPw,\n    mechanism: mechanism,\n    clusterApiUrl: testCluster.clusterApiUrl,\n    allowDeletion: userAllowDeletion,\n});\nconst testTopic = new redpanda.Topic(\"test\", {\n    name: topicName,\n    partitionCount: partitionCount,\n    replicationFactor: replicationFactor,\n    clusterApiUrl: testCluster.clusterApiUrl,\n    allowDeletion: true,\n});\nconst topicAccess = new redpanda.Acl(\"topic_access\", {\n    resourceType: \"TOPIC\",\n    resourceName: testTopic.name,\n    resourcePatternType: \"LITERAL\",\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    host: \"*\",\n    operation: \"READ\",\n    permissionType: \"ALLOW\",\n    clusterApiUrl: testCluster.clusterApiUrl,\n    allowDeletion: aclAllowDeletion,\n});\n```\n```python\nimport pulumi\nimport pulumi_redpanda as redpanda\n\ntest = redpanda.ResourceGroup(\"test\", name=resource_group_name)\ntest_network = redpanda.Network(\"test\",\n    name=network_name,\n    resource_group_id=test.id,\n    cloud_provider=cloud_provider,\n    region=region,\n    cluster_type=\"byoc\",\n    cidr_block=\"10.0.0.0/20\")\ntest_cluster = redpanda.Cluster(\"test\",\n    name=cluster_name,\n    resource_group_id=test.id,\n    network_id=test_network.id,\n    cloud_provider=test_network.cloud_provider,\n    region=test_network.region,\n    cluster_type=test_network.cluster_type,\n    connection_type=\"public\",\n    throughput_tier=throughput_tier,\n    zones=zones,\n    allow_deletion=cluster_allow_deletion)\ntest_user = redpanda.User(\"test\",\n    name=user_name,\n    password=user_pw,\n    mechanism=mechanism,\n    cluster_api_url=test_cluster.cluster_api_url,\n    allow_deletion=user_allow_deletion)\ntest_topic = redpanda.Topic(\"test\",\n    name=topic_name,\n    partition_count=partition_count,\n    replication_factor=replication_factor,\n    cluster_api_url=test_cluster.cluster_api_url,\n    allow_deletion=True)\ntopic_access = redpanda.Acl(\"topic_access\",\n    resource_type=\"TOPIC\",\n    resource_name_=test_topic.name,\n    resource_pattern_type=\"LITERAL\",\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    host=\"*\",\n    operation=\"READ\",\n    permission_type=\"ALLOW\",\n    cluster_api_url=test_cluster.cluster_api_url,\n    allow_deletion=acl_allow_deletion)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Redpanda = Pulumi.Redpanda;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Redpanda.ResourceGroup(\"test\", new()\n    {\n        Name = resourceGroupName,\n    });\n\n    var testNetwork = new Redpanda.Network(\"test\", new()\n    {\n        Name = networkName,\n        ResourceGroupId = test.Id,\n        CloudProvider = cloudProvider,\n        Region = region,\n        ClusterType = \"byoc\",\n        CidrBlock = \"10.0.0.0/20\",\n    });\n\n    var testCluster = new Redpanda.Cluster(\"test\", new()\n    {\n        Name = clusterName,\n        ResourceGroupId = test.Id,\n        NetworkId = testNetwork.Id,\n        CloudProvider = testNetwork.CloudProvider,\n        Region = testNetwork.Region,\n        ClusterType = testNetwork.ClusterType,\n        ConnectionType = \"public\",\n        ThroughputTier = throughputTier,\n        Zones = zones,\n        AllowDeletion = clusterAllowDeletion,\n    });\n\n    var testUser = new Redpanda.User(\"test\", new()\n    {\n        Name = userName,\n        Password = userPw,\n        Mechanism = mechanism,\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        AllowDeletion = userAllowDeletion,\n    });\n\n    var testTopic = new Redpanda.Topic(\"test\", new()\n    {\n        Name = topicName,\n        PartitionCount = partitionCount,\n        ReplicationFactor = replicationFactor,\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        AllowDeletion = true,\n    });\n\n    var topicAccess = new Redpanda.Acl(\"topic_access\", new()\n    {\n        ResourceType = \"TOPIC\",\n        ResourceName = testTopic.Name,\n        ResourcePatternType = \"LITERAL\",\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        Host = \"*\",\n        Operation = \"READ\",\n        PermissionType = \"ALLOW\",\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        AllowDeletion = aclAllowDeletion,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/redpanda/redpanda\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := redpanda.NewResourceGroup(ctx, \"test\", \u0026redpanda.ResourceGroupArgs{\n\t\t\tName: pulumi.Any(resourceGroupName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestNetwork, err := redpanda.NewNetwork(ctx, \"test\", \u0026redpanda.NetworkArgs{\n\t\t\tName:            pulumi.Any(networkName),\n\t\t\tResourceGroupId: test.ID(),\n\t\t\tCloudProvider:   pulumi.Any(cloudProvider),\n\t\t\tRegion:          pulumi.Any(region),\n\t\t\tClusterType:     pulumi.String(\"byoc\"),\n\t\t\tCidrBlock:       pulumi.String(\"10.0.0.0/20\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestCluster, err := redpanda.NewCluster(ctx, \"test\", \u0026redpanda.ClusterArgs{\n\t\t\tName:            pulumi.Any(clusterName),\n\t\t\tResourceGroupId: test.ID(),\n\t\t\tNetworkId:       testNetwork.ID(),\n\t\t\tCloudProvider:   testNetwork.CloudProvider,\n\t\t\tRegion:          testNetwork.Region,\n\t\t\tClusterType:     testNetwork.ClusterType,\n\t\t\tConnectionType:  pulumi.String(\"public\"),\n\t\t\tThroughputTier:  pulumi.Any(throughputTier),\n\t\t\tZones:           pulumi.Any(zones),\n\t\t\tAllowDeletion:   pulumi.Any(clusterAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestUser, err := redpanda.NewUser(ctx, \"test\", \u0026redpanda.UserArgs{\n\t\t\tName:          pulumi.Any(userName),\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tMechanism:     pulumi.Any(mechanism),\n\t\t\tClusterApiUrl: testCluster.ClusterApiUrl,\n\t\t\tAllowDeletion: pulumi.Any(userAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestTopic, err := redpanda.NewTopic(ctx, \"test\", \u0026redpanda.TopicArgs{\n\t\t\tName:              pulumi.Any(topicName),\n\t\t\tPartitionCount:    pulumi.Any(partitionCount),\n\t\t\tReplicationFactor: pulumi.Any(replicationFactor),\n\t\t\tClusterApiUrl:     testCluster.ClusterApiUrl,\n\t\t\tAllowDeletion:     pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redpanda.NewAcl(ctx, \"topic_access\", \u0026redpanda.AclArgs{\n\t\t\tResourceType:        pulumi.String(\"TOPIC\"),\n\t\t\tResourceName:        testTopic.Name,\n\t\t\tResourcePatternType: pulumi.String(\"LITERAL\"),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tHost:           pulumi.String(\"*\"),\n\t\t\tOperation:      pulumi.String(\"READ\"),\n\t\t\tPermissionType: pulumi.String(\"ALLOW\"),\n\t\t\tClusterApiUrl:  testCluster.ClusterApiUrl,\n\t\t\tAllowDeletion:  pulumi.Any(aclAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.redpanda.ResourceGroup;\nimport com.pulumi.redpanda.ResourceGroupArgs;\nimport com.pulumi.redpanda.Network;\nimport com.pulumi.redpanda.NetworkArgs;\nimport com.pulumi.redpanda.Cluster;\nimport com.pulumi.redpanda.ClusterArgs;\nimport com.pulumi.redpanda.User;\nimport com.pulumi.redpanda.UserArgs;\nimport com.pulumi.redpanda.Topic;\nimport com.pulumi.redpanda.TopicArgs;\nimport com.pulumi.redpanda.Acl;\nimport com.pulumi.redpanda.AclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new ResourceGroup(\"test\", ResourceGroupArgs.builder()\n            .name(resourceGroupName)\n            .build());\n\n        var testNetwork = new Network(\"testNetwork\", NetworkArgs.builder()\n            .name(networkName)\n            .resourceGroupId(test.id())\n            .cloudProvider(cloudProvider)\n            .region(region)\n            .clusterType(\"byoc\")\n            .cidrBlock(\"10.0.0.0/20\")\n            .build());\n\n        var testCluster = new Cluster(\"testCluster\", ClusterArgs.builder()\n            .name(clusterName)\n            .resourceGroupId(test.id())\n            .networkId(testNetwork.id())\n            .cloudProvider(testNetwork.cloudProvider())\n            .region(testNetwork.region())\n            .clusterType(testNetwork.clusterType())\n            .connectionType(\"public\")\n            .throughputTier(throughputTier)\n            .zones(zones)\n            .allowDeletion(clusterAllowDeletion)\n            .build());\n\n        var testUser = new User(\"testUser\", UserArgs.builder()\n            .name(userName)\n            .password(userPw)\n            .mechanism(mechanism)\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .allowDeletion(userAllowDeletion)\n            .build());\n\n        var testTopic = new Topic(\"testTopic\", TopicArgs.builder()\n            .name(topicName)\n            .partitionCount(partitionCount)\n            .replicationFactor(replicationFactor)\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .allowDeletion(true)\n            .build());\n\n        var topicAccess = new Acl(\"topicAccess\", AclArgs.builder()\n            .resourceType(\"TOPIC\")\n            .resourceName(testTopic.name())\n            .resourcePatternType(\"LITERAL\")\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .host(\"*\")\n            .operation(\"READ\")\n            .permissionType(\"ALLOW\")\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .allowDeletion(aclAllowDeletion)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: redpanda:ResourceGroup\n    properties:\n      name: ${resourceGroupName}\n  testNetwork:\n    type: redpanda:Network\n    name: test\n    properties:\n      name: ${networkName}\n      resourceGroupId: ${test.id}\n      cloudProvider: ${cloudProvider}\n      region: ${region}\n      clusterType: byoc\n      cidrBlock: 10.0.0.0/20\n  testCluster:\n    type: redpanda:Cluster\n    name: test\n    properties:\n      name: ${clusterName}\n      resourceGroupId: ${test.id}\n      networkId: ${testNetwork.id}\n      cloudProvider: ${testNetwork.cloudProvider}\n      region: ${testNetwork.region}\n      clusterType: ${testNetwork.clusterType}\n      connectionType: public\n      throughputTier: ${throughputTier}\n      zones: ${zones}\n      allowDeletion: ${clusterAllowDeletion}\n  testUser:\n    type: redpanda:User\n    name: test\n    properties:\n      name: ${userName}\n      password: ${userPw}\n      mechanism: ${mechanism}\n      clusterApiUrl: ${testCluster.clusterApiUrl}\n      allowDeletion: ${userAllowDeletion}\n  testTopic:\n    type: redpanda:Topic\n    name: test\n    properties:\n      name: ${topicName}\n      partitionCount: ${partitionCount}\n      replicationFactor: ${replicationFactor}\n      clusterApiUrl: ${testCluster.clusterApiUrl}\n      allowDeletion: true\n  topicAccess:\n    type: redpanda:Acl\n    name: topic_access\n    properties:\n      resourceType: TOPIC\n      resourceName: ${testTopic.name}\n      resourcePatternType: LITERAL\n      principal: User:${testUser.name}\n      host: '*'\n      operation: READ\n      permissionType: ALLOW\n      clusterApiUrl: ${testCluster.clusterApiUrl}\n      allowDeletion: ${aclAllowDeletion}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Azure BYOC\n\nTo create a BYOC Azure cluster you must provide Azure credentials, be logged in to the Azure CLI, or specify an Azure authentication method. This provider supports the same authentication methods and environment variables as the official AzureRM provider. For example, to use a service principal and client certificate, you can pass the environment variables `ARM_CLIENT_ID`, `ARM_CLIENT_SECRET`, `ARM_TENANT_ID`, and `ARM_SUBSCRIPTION_ID`.\n\nThe account [must have fairly wide ranging permissions](https://docs.redpanda.com/redpanda-cloud/security/authorization/cloud-iam-policies-azure/) to create the necessary infrastructure.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as redpanda from \"@pulumi/redpanda\";\n\nconst test = new redpanda.ResourceGroup(\"test\", {name: resourceGroupName});\nconst testNetwork = new redpanda.Network(\"test\", {\n    name: networkName,\n    resourceGroupId: test.id,\n    cloudProvider: cloudProvider,\n    region: region,\n    clusterType: \"byoc\",\n    cidrBlock: \"10.0.0.0/20\",\n});\nconst testCluster = new redpanda.Cluster(\"test\", {\n    name: clusterName,\n    resourceGroupId: test.id,\n    networkId: testNetwork.id,\n    cloudProvider: testNetwork.cloudProvider,\n    region: testNetwork.region,\n    clusterType: testNetwork.clusterType,\n    connectionType: \"public\",\n    throughputTier: throughputTier,\n    zones: zones,\n    allowDeletion: clusterAllowDeletion,\n    tags: {\n        key: \"value\",\n    },\n});\nconst testUser = new redpanda.User(\"test\", {\n    name: userName,\n    password: userPw,\n    mechanism: mechanism,\n    clusterApiUrl: testCluster.clusterApiUrl,\n    allowDeletion: userAllowDeletion,\n});\nconst testTopic = new redpanda.Topic(\"test\", {\n    name: topicName,\n    partitionCount: partitionCount,\n    replicationFactor: replicationFactor,\n    clusterApiUrl: testCluster.clusterApiUrl,\n    allowDeletion: true,\n});\nconst topicAccess = new redpanda.Acl(\"topic_access\", {\n    resourceType: \"TOPIC\",\n    resourceName: testTopic.name,\n    resourcePatternType: \"LITERAL\",\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    host: \"*\",\n    operation: \"READ\",\n    permissionType: \"ALLOW\",\n    clusterApiUrl: testCluster.clusterApiUrl,\n    allowDeletion: aclAllowDeletion,\n});\n```\n```python\nimport pulumi\nimport pulumi_redpanda as redpanda\n\ntest = redpanda.ResourceGroup(\"test\", name=resource_group_name)\ntest_network = redpanda.Network(\"test\",\n    name=network_name,\n    resource_group_id=test.id,\n    cloud_provider=cloud_provider,\n    region=region,\n    cluster_type=\"byoc\",\n    cidr_block=\"10.0.0.0/20\")\ntest_cluster = redpanda.Cluster(\"test\",\n    name=cluster_name,\n    resource_group_id=test.id,\n    network_id=test_network.id,\n    cloud_provider=test_network.cloud_provider,\n    region=test_network.region,\n    cluster_type=test_network.cluster_type,\n    connection_type=\"public\",\n    throughput_tier=throughput_tier,\n    zones=zones,\n    allow_deletion=cluster_allow_deletion,\n    tags={\n        \"key\": \"value\",\n    })\ntest_user = redpanda.User(\"test\",\n    name=user_name,\n    password=user_pw,\n    mechanism=mechanism,\n    cluster_api_url=test_cluster.cluster_api_url,\n    allow_deletion=user_allow_deletion)\ntest_topic = redpanda.Topic(\"test\",\n    name=topic_name,\n    partition_count=partition_count,\n    replication_factor=replication_factor,\n    cluster_api_url=test_cluster.cluster_api_url,\n    allow_deletion=True)\ntopic_access = redpanda.Acl(\"topic_access\",\n    resource_type=\"TOPIC\",\n    resource_name_=test_topic.name,\n    resource_pattern_type=\"LITERAL\",\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    host=\"*\",\n    operation=\"READ\",\n    permission_type=\"ALLOW\",\n    cluster_api_url=test_cluster.cluster_api_url,\n    allow_deletion=acl_allow_deletion)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Redpanda = Pulumi.Redpanda;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Redpanda.ResourceGroup(\"test\", new()\n    {\n        Name = resourceGroupName,\n    });\n\n    var testNetwork = new Redpanda.Network(\"test\", new()\n    {\n        Name = networkName,\n        ResourceGroupId = test.Id,\n        CloudProvider = cloudProvider,\n        Region = region,\n        ClusterType = \"byoc\",\n        CidrBlock = \"10.0.0.0/20\",\n    });\n\n    var testCluster = new Redpanda.Cluster(\"test\", new()\n    {\n        Name = clusterName,\n        ResourceGroupId = test.Id,\n        NetworkId = testNetwork.Id,\n        CloudProvider = testNetwork.CloudProvider,\n        Region = testNetwork.Region,\n        ClusterType = testNetwork.ClusterType,\n        ConnectionType = \"public\",\n        ThroughputTier = throughputTier,\n        Zones = zones,\n        AllowDeletion = clusterAllowDeletion,\n        Tags = \n        {\n            { \"key\", \"value\" },\n        },\n    });\n\n    var testUser = new Redpanda.User(\"test\", new()\n    {\n        Name = userName,\n        Password = userPw,\n        Mechanism = mechanism,\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        AllowDeletion = userAllowDeletion,\n    });\n\n    var testTopic = new Redpanda.Topic(\"test\", new()\n    {\n        Name = topicName,\n        PartitionCount = partitionCount,\n        ReplicationFactor = replicationFactor,\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        AllowDeletion = true,\n    });\n\n    var topicAccess = new Redpanda.Acl(\"topic_access\", new()\n    {\n        ResourceType = \"TOPIC\",\n        ResourceName = testTopic.Name,\n        ResourcePatternType = \"LITERAL\",\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        Host = \"*\",\n        Operation = \"READ\",\n        PermissionType = \"ALLOW\",\n        ClusterApiUrl = testCluster.ClusterApiUrl,\n        AllowDeletion = aclAllowDeletion,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/redpanda/redpanda\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := redpanda.NewResourceGroup(ctx, \"test\", \u0026redpanda.ResourceGroupArgs{\n\t\t\tName: pulumi.Any(resourceGroupName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestNetwork, err := redpanda.NewNetwork(ctx, \"test\", \u0026redpanda.NetworkArgs{\n\t\t\tName:            pulumi.Any(networkName),\n\t\t\tResourceGroupId: test.ID(),\n\t\t\tCloudProvider:   pulumi.Any(cloudProvider),\n\t\t\tRegion:          pulumi.Any(region),\n\t\t\tClusterType:     pulumi.String(\"byoc\"),\n\t\t\tCidrBlock:       pulumi.String(\"10.0.0.0/20\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestCluster, err := redpanda.NewCluster(ctx, \"test\", \u0026redpanda.ClusterArgs{\n\t\t\tName:            pulumi.Any(clusterName),\n\t\t\tResourceGroupId: test.ID(),\n\t\t\tNetworkId:       testNetwork.ID(),\n\t\t\tCloudProvider:   testNetwork.CloudProvider,\n\t\t\tRegion:          testNetwork.Region,\n\t\t\tClusterType:     testNetwork.ClusterType,\n\t\t\tConnectionType:  pulumi.String(\"public\"),\n\t\t\tThroughputTier:  pulumi.Any(throughputTier),\n\t\t\tZones:           pulumi.Any(zones),\n\t\t\tAllowDeletion:   pulumi.Any(clusterAllowDeletion),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestUser, err := redpanda.NewUser(ctx, \"test\", \u0026redpanda.UserArgs{\n\t\t\tName:          pulumi.Any(userName),\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tMechanism:     pulumi.Any(mechanism),\n\t\t\tClusterApiUrl: testCluster.ClusterApiUrl,\n\t\t\tAllowDeletion: pulumi.Any(userAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestTopic, err := redpanda.NewTopic(ctx, \"test\", \u0026redpanda.TopicArgs{\n\t\t\tName:              pulumi.Any(topicName),\n\t\t\tPartitionCount:    pulumi.Any(partitionCount),\n\t\t\tReplicationFactor: pulumi.Any(replicationFactor),\n\t\t\tClusterApiUrl:     testCluster.ClusterApiUrl,\n\t\t\tAllowDeletion:     pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redpanda.NewAcl(ctx, \"topic_access\", \u0026redpanda.AclArgs{\n\t\t\tResourceType:        pulumi.String(\"TOPIC\"),\n\t\t\tResourceName:        testTopic.Name,\n\t\t\tResourcePatternType: pulumi.String(\"LITERAL\"),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tHost:           pulumi.String(\"*\"),\n\t\t\tOperation:      pulumi.String(\"READ\"),\n\t\t\tPermissionType: pulumi.String(\"ALLOW\"),\n\t\t\tClusterApiUrl:  testCluster.ClusterApiUrl,\n\t\t\tAllowDeletion:  pulumi.Any(aclAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.redpanda.ResourceGroup;\nimport com.pulumi.redpanda.ResourceGroupArgs;\nimport com.pulumi.redpanda.Network;\nimport com.pulumi.redpanda.NetworkArgs;\nimport com.pulumi.redpanda.Cluster;\nimport com.pulumi.redpanda.ClusterArgs;\nimport com.pulumi.redpanda.User;\nimport com.pulumi.redpanda.UserArgs;\nimport com.pulumi.redpanda.Topic;\nimport com.pulumi.redpanda.TopicArgs;\nimport com.pulumi.redpanda.Acl;\nimport com.pulumi.redpanda.AclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new ResourceGroup(\"test\", ResourceGroupArgs.builder()\n            .name(resourceGroupName)\n            .build());\n\n        var testNetwork = new Network(\"testNetwork\", NetworkArgs.builder()\n            .name(networkName)\n            .resourceGroupId(test.id())\n            .cloudProvider(cloudProvider)\n            .region(region)\n            .clusterType(\"byoc\")\n            .cidrBlock(\"10.0.0.0/20\")\n            .build());\n\n        var testCluster = new Cluster(\"testCluster\", ClusterArgs.builder()\n            .name(clusterName)\n            .resourceGroupId(test.id())\n            .networkId(testNetwork.id())\n            .cloudProvider(testNetwork.cloudProvider())\n            .region(testNetwork.region())\n            .clusterType(testNetwork.clusterType())\n            .connectionType(\"public\")\n            .throughputTier(throughputTier)\n            .zones(zones)\n            .allowDeletion(clusterAllowDeletion)\n            .tags(Map.of(\"key\", \"value\"))\n            .build());\n\n        var testUser = new User(\"testUser\", UserArgs.builder()\n            .name(userName)\n            .password(userPw)\n            .mechanism(mechanism)\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .allowDeletion(userAllowDeletion)\n            .build());\n\n        var testTopic = new Topic(\"testTopic\", TopicArgs.builder()\n            .name(topicName)\n            .partitionCount(partitionCount)\n            .replicationFactor(replicationFactor)\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .allowDeletion(true)\n            .build());\n\n        var topicAccess = new Acl(\"topicAccess\", AclArgs.builder()\n            .resourceType(\"TOPIC\")\n            .resourceName(testTopic.name())\n            .resourcePatternType(\"LITERAL\")\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .host(\"*\")\n            .operation(\"READ\")\n            .permissionType(\"ALLOW\")\n            .clusterApiUrl(testCluster.clusterApiUrl())\n            .allowDeletion(aclAllowDeletion)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: redpanda:ResourceGroup\n    properties:\n      name: ${resourceGroupName}\n  testNetwork:\n    type: redpanda:Network\n    name: test\n    properties:\n      name: ${networkName}\n      resourceGroupId: ${test.id}\n      cloudProvider: ${cloudProvider}\n      region: ${region}\n      clusterType: byoc\n      cidrBlock: 10.0.0.0/20\n  testCluster:\n    type: redpanda:Cluster\n    name: test\n    properties:\n      name: ${clusterName}\n      resourceGroupId: ${test.id}\n      networkId: ${testNetwork.id}\n      cloudProvider: ${testNetwork.cloudProvider}\n      region: ${testNetwork.region}\n      clusterType: ${testNetwork.clusterType}\n      connectionType: public\n      throughputTier: ${throughputTier}\n      zones: ${zones}\n      allowDeletion: ${clusterAllowDeletion}\n      tags:\n        key: value\n  testUser:\n    type: redpanda:User\n    name: test\n    properties:\n      name: ${userName}\n      password: ${userPw}\n      mechanism: ${mechanism}\n      clusterApiUrl: ${testCluster.clusterApiUrl}\n      allowDeletion: ${userAllowDeletion}\n  testTopic:\n    type: redpanda:Topic\n    name: test\n    properties:\n      name: ${topicName}\n      partitionCount: ${partitionCount}\n      replicationFactor: ${replicationFactor}\n      clusterApiUrl: ${testCluster.clusterApiUrl}\n      allowDeletion: true\n  topicAccess:\n    type: redpanda:Acl\n    name: topic_access\n    properties:\n      resourceType: TOPIC\n      resourceName: ${testTopic.name}\n      resourcePatternType: LITERAL\n      principal: User:${testUser.name}\n      host: '*'\n      operation: READ\n      permissionType: ALLOW\n      clusterApiUrl: ${testCluster.clusterApiUrl}\n      allowDeletion: ${aclAllowDeletion}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## BYOVPC\n\nThis accepts a network and other elements created by the end user inside their cloud provider account (currently limited to AWS) and builds a Redpanda Cluster inside it.\n\nThere is a module provided for convenience of the end user here that handles the necessary setup. It contains outputs for the inputs the provider requires.\n\n### Example Usage of a data source BYOC to manage users and ACLs\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as redpanda from \"@pulumi/redpanda\";\n\nconst test = redpanda.getCluster({\n    id: clusterId,\n});\nconst testTopic = new redpanda.Topic(\"test\", {\n    name: topicName,\n    partitionCount: partitionCount,\n    replicationFactor: replicationFactor,\n    clusterApiUrl: test.then(test =\u003e test.clusterApiUrl),\n    allowDeletion: true,\n    configuration: topicConfig,\n});\nconst testUser = new redpanda.User(\"test\", {\n    name: userName,\n    password: userPw,\n    mechanism: mechanism,\n    clusterApiUrl: test.then(test =\u003e test.clusterApiUrl),\n    allowDeletion: userAllowDeletion,\n});\nconst testAcl = new redpanda.Acl(\"test\", {\n    resourceType: \"CLUSTER\",\n    resourceName: \"kafka-cluster\",\n    resourcePatternType: \"LITERAL\",\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    host: \"*\",\n    operation: \"ALTER\",\n    permissionType: \"ALLOW\",\n    clusterApiUrl: test.then(test =\u003e test.clusterApiUrl),\n    allowDeletion: aclAllowDeletion,\n});\n```\n```python\nimport pulumi\nimport pulumi_redpanda as redpanda\n\ntest = redpanda.get_cluster(id=cluster_id)\ntest_topic = redpanda.Topic(\"test\",\n    name=topic_name,\n    partition_count=partition_count,\n    replication_factor=replication_factor,\n    cluster_api_url=test.cluster_api_url,\n    allow_deletion=True,\n    configuration=topic_config)\ntest_user = redpanda.User(\"test\",\n    name=user_name,\n    password=user_pw,\n    mechanism=mechanism,\n    cluster_api_url=test.cluster_api_url,\n    allow_deletion=user_allow_deletion)\ntest_acl = redpanda.Acl(\"test\",\n    resource_type=\"CLUSTER\",\n    resource_name_=\"kafka-cluster\",\n    resource_pattern_type=\"LITERAL\",\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    host=\"*\",\n    operation=\"ALTER\",\n    permission_type=\"ALLOW\",\n    cluster_api_url=test.cluster_api_url,\n    allow_deletion=acl_allow_deletion)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Redpanda = Pulumi.Redpanda;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Redpanda.GetCluster.Invoke(new()\n    {\n        Id = clusterId,\n    });\n\n    var testTopic = new Redpanda.Topic(\"test\", new()\n    {\n        Name = topicName,\n        PartitionCount = partitionCount,\n        ReplicationFactor = replicationFactor,\n        ClusterApiUrl = test.Apply(getClusterResult =\u003e getClusterResult.ClusterApiUrl),\n        AllowDeletion = true,\n        Configuration = topicConfig,\n    });\n\n    var testUser = new Redpanda.User(\"test\", new()\n    {\n        Name = userName,\n        Password = userPw,\n        Mechanism = mechanism,\n        ClusterApiUrl = test.Apply(getClusterResult =\u003e getClusterResult.ClusterApiUrl),\n        AllowDeletion = userAllowDeletion,\n    });\n\n    var testAcl = new Redpanda.Acl(\"test\", new()\n    {\n        ResourceType = \"CLUSTER\",\n        ResourceName = \"kafka-cluster\",\n        ResourcePatternType = \"LITERAL\",\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        Host = \"*\",\n        Operation = \"ALTER\",\n        PermissionType = \"ALLOW\",\n        ClusterApiUrl = test.Apply(getClusterResult =\u003e getClusterResult.ClusterApiUrl),\n        AllowDeletion = aclAllowDeletion,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/redpanda/redpanda\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := redpanda.LookupCluster(ctx, \u0026redpanda.LookupClusterArgs{\n\t\t\tId: clusterId,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redpanda.NewTopic(ctx, \"test\", \u0026redpanda.TopicArgs{\n\t\t\tName:              pulumi.Any(topicName),\n\t\t\tPartitionCount:    pulumi.Any(partitionCount),\n\t\t\tReplicationFactor: pulumi.Any(replicationFactor),\n\t\t\tClusterApiUrl:     pulumi.String(test.ClusterApiUrl),\n\t\t\tAllowDeletion:     pulumi.Bool(true),\n\t\t\tConfiguration:     pulumi.Any(topicConfig),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestUser, err := redpanda.NewUser(ctx, \"test\", \u0026redpanda.UserArgs{\n\t\t\tName:          pulumi.Any(userName),\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tMechanism:     pulumi.Any(mechanism),\n\t\t\tClusterApiUrl: pulumi.String(test.ClusterApiUrl),\n\t\t\tAllowDeletion: pulumi.Any(userAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redpanda.NewAcl(ctx, \"test\", \u0026redpanda.AclArgs{\n\t\t\tResourceType:        pulumi.String(\"CLUSTER\"),\n\t\t\tResourceName:        pulumi.String(\"kafka-cluster\"),\n\t\t\tResourcePatternType: pulumi.String(\"LITERAL\"),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tHost:           pulumi.String(\"*\"),\n\t\t\tOperation:      pulumi.String(\"ALTER\"),\n\t\t\tPermissionType: pulumi.String(\"ALLOW\"),\n\t\t\tClusterApiUrl:  pulumi.String(test.ClusterApiUrl),\n\t\t\tAllowDeletion:  pulumi.Any(aclAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.redpanda.RedpandaFunctions;\nimport com.pulumi.redpanda.inputs.GetClusterArgs;\nimport com.pulumi.redpanda.Topic;\nimport com.pulumi.redpanda.TopicArgs;\nimport com.pulumi.redpanda.User;\nimport com.pulumi.redpanda.UserArgs;\nimport com.pulumi.redpanda.Acl;\nimport com.pulumi.redpanda.AclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = RedpandaFunctions.getCluster(GetClusterArgs.builder()\n            .id(clusterId)\n            .build());\n\n        var testTopic = new Topic(\"testTopic\", TopicArgs.builder()\n            .name(topicName)\n            .partitionCount(partitionCount)\n            .replicationFactor(replicationFactor)\n            .clusterApiUrl(test.clusterApiUrl())\n            .allowDeletion(true)\n            .configuration(topicConfig)\n            .build());\n\n        var testUser = new User(\"testUser\", UserArgs.builder()\n            .name(userName)\n            .password(userPw)\n            .mechanism(mechanism)\n            .clusterApiUrl(test.clusterApiUrl())\n            .allowDeletion(userAllowDeletion)\n            .build());\n\n        var testAcl = new Acl(\"testAcl\", AclArgs.builder()\n            .resourceType(\"CLUSTER\")\n            .resourceName(\"kafka-cluster\")\n            .resourcePatternType(\"LITERAL\")\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .host(\"*\")\n            .operation(\"ALTER\")\n            .permissionType(\"ALLOW\")\n            .clusterApiUrl(test.clusterApiUrl())\n            .allowDeletion(aclAllowDeletion)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testTopic:\n    type: redpanda:Topic\n    name: test\n    properties:\n      name: ${topicName}\n      partitionCount: ${partitionCount}\n      replicationFactor: ${replicationFactor}\n      clusterApiUrl: ${test.clusterApiUrl}\n      allowDeletion: true\n      configuration: ${topicConfig}\n  testUser:\n    type: redpanda:User\n    name: test\n    properties:\n      name: ${userName}\n      password: ${userPw}\n      mechanism: ${mechanism}\n      clusterApiUrl: ${test.clusterApiUrl}\n      allowDeletion: ${userAllowDeletion}\n  testAcl:\n    type: redpanda:Acl\n    name: test\n    properties:\n      resourceType: CLUSTER\n      resourceName: kafka-cluster\n      resourcePatternType: LITERAL\n      principal: User:${testUser.name}\n      host: '*'\n      operation: ALTER\n      permissionType: ALLOW\n      clusterApiUrl: ${test.clusterApiUrl}\n      allowDeletion: ${aclAllowDeletion}\nvariables:\n  test:\n    fn::invoke:\n      function: redpanda:getCluster\n      arguments:\n        id: ${clusterId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## API Reference\n\nFor more information, see the [Redpanda Cloud Control Plane API documentation](https://docs.redpanda.com/api/cloud-controlplane-api/).\n\n## Import\n\n```sh\n$ pulumi import redpanda:index/cluster:Cluster example clusterId\n```\n\n","properties":{"allowDeletion":{"type":"boolean","description":"Allows deletion of the cluster. Defaults to false.\n"},"awsPrivateLink":{"$ref":"#/types/redpanda:index%2FClusterAwsPrivateLink:ClusterAwsPrivateLink","description":"AWS PrivateLink configuration.\n"},"azurePrivateLink":{"$ref":"#/types/redpanda:index%2FClusterAzurePrivateLink:ClusterAzurePrivateLink","description":"Azure Private Link configuration.\n"},"cloudProvider":{"type":"string","description":"Cloud provider where resources are created.\n"},"clusterApiUrl":{"type":"string","description":"The URL of the cluster API.\n"},"clusterConfiguration":{"$ref":"#/types/redpanda:index%2FClusterClusterConfiguration:ClusterClusterConfiguration","description":"Configuration for the cluster.\n"},"clusterType":{"type":"string","description":"Cluster type. Type is immutable and can only be set on cluster creation. Can be either byoc or dedicated.\n"},"connectionType":{"type":"string","description":"Cluster connection type. Private clusters are not exposed to the internet. For BYOC clusters, private is best-practice.\n"},"createdAt":{"type":"string","description":"Timestamp when the cluster was created.\n"},"customerManagedResources":{"$ref":"#/types/redpanda:index%2FClusterCustomerManagedResources:ClusterCustomerManagedResources","description":"Customer managed resources configuration for the cluster.\n"},"gcpGlobalAccessEnabled":{"type":"boolean","description":"If true, GCP global access is enabled.\n"},"gcpPrivateServiceConnect":{"$ref":"#/types/redpanda:index%2FClusterGcpPrivateServiceConnect:ClusterGcpPrivateServiceConnect","description":"GCP Private Service Connect configuration.\n"},"httpProxy":{"$ref":"#/types/redpanda:index%2FClusterHttpProxy:ClusterHttpProxy","description":"HTTP Proxy properties.\n"},"kafkaApi":{"$ref":"#/types/redpanda:index%2FClusterKafkaApi:ClusterKafkaApi","description":"Cluster's Kafka API properties.\n"},"kafkaConnect":{"$ref":"#/types/redpanda:index%2FClusterKafkaConnect:ClusterKafkaConnect","description":"Kafka Connect configuration.\n"},"maintenanceWindowConfig":{"$ref":"#/types/redpanda:index%2FClusterMaintenanceWindowConfig:ClusterMaintenanceWindowConfig","description":"Maintenance window configuration for the cluster.\n"},"name":{"type":"string","description":"Unique name of the cluster.\n"},"networkId":{"type":"string","description":"Network ID where cluster is placed.\n"},"prometheus":{"$ref":"#/types/redpanda:index%2FClusterPrometheus:ClusterPrometheus","description":"Prometheus metrics endpoint properties.\n"},"readReplicaClusterIds":{"type":"array","items":{"type":"string"},"description":"IDs of clusters that can create read-only topics from this cluster.\n"},"redpandaConsole":{"$ref":"#/types/redpanda:index%2FClusterRedpandaConsole:ClusterRedpandaConsole","description":"Redpanda Console properties.\n"},"redpandaNodeCount":{"type":"number","description":"Number of Redpanda nodes in the cluster. NOTE: This feature is not available for all customers by default. Contact your Redpanda account team to enable this feature.\n"},"redpandaVersion":{"type":"string","description":"Current Redpanda version of the cluster.\n"},"region":{"type":"string","description":"Cloud provider region. Region represents the name of the region where the cluster will be provisioned.\n"},"resourceGroupId":{"type":"string","description":"Resource group ID of the cluster.\n"},"schemaRegistry":{"$ref":"#/types/redpanda:index%2FClusterSchemaRegistry:ClusterSchemaRegistry","description":"Schema Registry properties.\n"},"state":{"type":"string","description":"Current state of the cluster.\n"},"stateDescription":{"$ref":"#/types/redpanda:index%2FClusterStateDescription:ClusterStateDescription","description":"Detailed state description when cluster is in a non-ready state.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags placed on cloud resources. If the cloud provider is GCP and the name of a tag has the prefix \"gcp.network-tag.\", the tag is a network tag that will be added to the Redpanda cluster GKE nodes. Otherwise, the tag is a normal tag. For example, if the name of a tag is \"gcp.network-tag.network-tag-foo\", the network tag named \"network-tag-foo\" will be added to the Redpanda cluster GKE nodes. Note: The value of a network tag will be ignored. See the details on network tags at https://cloud.google.com/vpc/docs/add-remove-network-tags.\n"},"throughputTier":{"type":"string","description":"Usage tier of the cluster.\n"},"timeouts":{"$ref":"#/types/redpanda:index%2FClusterTimeouts:ClusterTimeouts"},"zones":{"type":"array","items":{"type":"string"},"description":"Zones of the cluster. Must be valid zones within the selected region. If multiple zones are used, the cluster is a multi-AZ cluster.\n"}},"type":"object","required":["allowDeletion","cloudProvider","clusterApiUrl","clusterConfiguration","clusterType","connectionType","createdAt","httpProxy","kafkaApi","kafkaConnect","maintenanceWindowConfig","name","networkId","prometheus","redpandaConsole","redpandaNodeCount","region","resourceGroupId","schemaRegistry","state","stateDescription","throughputTier","zones"],"inputProperties":{"allowDeletion":{"type":"boolean","description":"Allows deletion of the cluster. Defaults to false.\n"},"awsPrivateLink":{"$ref":"#/types/redpanda:index%2FClusterAwsPrivateLink:ClusterAwsPrivateLink","description":"AWS PrivateLink configuration.\n"},"azurePrivateLink":{"$ref":"#/types/redpanda:index%2FClusterAzurePrivateLink:ClusterAzurePrivateLink","description":"Azure Private Link configuration.\n"},"cloudProvider":{"type":"string","description":"Cloud provider where resources are created.\n"},"clusterConfiguration":{"$ref":"#/types/redpanda:index%2FClusterClusterConfiguration:ClusterClusterConfiguration","description":"Configuration for the cluster.\n"},"clusterType":{"type":"string","description":"Cluster type. Type is immutable and can only be set on cluster creation. Can be either byoc or dedicated.\n"},"connectionType":{"type":"string","description":"Cluster connection type. Private clusters are not exposed to the internet. For BYOC clusters, private is best-practice.\n"},"customerManagedResources":{"$ref":"#/types/redpanda:index%2FClusterCustomerManagedResources:ClusterCustomerManagedResources","description":"Customer managed resources configuration for the cluster.\n"},"gcpGlobalAccessEnabled":{"type":"boolean","description":"If true, GCP global access is enabled.\n"},"gcpPrivateServiceConnect":{"$ref":"#/types/redpanda:index%2FClusterGcpPrivateServiceConnect:ClusterGcpPrivateServiceConnect","description":"GCP Private Service Connect configuration.\n"},"httpProxy":{"$ref":"#/types/redpanda:index%2FClusterHttpProxy:ClusterHttpProxy","description":"HTTP Proxy properties.\n"},"kafkaApi":{"$ref":"#/types/redpanda:index%2FClusterKafkaApi:ClusterKafkaApi","description":"Cluster's Kafka API properties.\n"},"kafkaConnect":{"$ref":"#/types/redpanda:index%2FClusterKafkaConnect:ClusterKafkaConnect","description":"Kafka Connect configuration.\n"},"maintenanceWindowConfig":{"$ref":"#/types/redpanda:index%2FClusterMaintenanceWindowConfig:ClusterMaintenanceWindowConfig","description":"Maintenance window configuration for the cluster.\n"},"name":{"type":"string","description":"Unique name of the cluster.\n"},"networkId":{"type":"string","description":"Network ID where cluster is placed.\n"},"readReplicaClusterIds":{"type":"array","items":{"type":"string"},"description":"IDs of clusters that can create read-only topics from this cluster.\n"},"redpandaNodeCount":{"type":"number","description":"Number of Redpanda nodes in the cluster. NOTE: This feature is not available for all customers by default. Contact your Redpanda account team to enable this feature.\n"},"redpandaVersion":{"type":"string","description":"Current Redpanda version of the cluster.\n"},"region":{"type":"string","description":"Cloud provider region. Region represents the name of the region where the cluster will be provisioned.\n"},"resourceGroupId":{"type":"string","description":"Resource group ID of the cluster.\n"},"schemaRegistry":{"$ref":"#/types/redpanda:index%2FClusterSchemaRegistry:ClusterSchemaRegistry","description":"Schema Registry properties.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags placed on cloud resources. If the cloud provider is GCP and the name of a tag has the prefix \"gcp.network-tag.\", the tag is a network tag that will be added to the Redpanda cluster GKE nodes. Otherwise, the tag is a normal tag. For example, if the name of a tag is \"gcp.network-tag.network-tag-foo\", the network tag named \"network-tag-foo\" will be added to the Redpanda cluster GKE nodes. Note: The value of a network tag will be ignored. See the details on network tags at https://cloud.google.com/vpc/docs/add-remove-network-tags.\n"},"throughputTier":{"type":"string","description":"Usage tier of the cluster.\n"},"timeouts":{"$ref":"#/types/redpanda:index%2FClusterTimeouts:ClusterTimeouts"},"zones":{"type":"array","items":{"type":"string"},"description":"Zones of the cluster. Must be valid zones within the selected region. If multiple zones are used, the cluster is a multi-AZ cluster.\n"}},"requiredInputs":["cloudProvider","clusterType","connectionType","networkId","region","resourceGroupId","throughputTier","zones"],"stateInputs":{"description":"Input properties used for looking up and filtering Cluster resources.\n","properties":{"allowDeletion":{"type":"boolean","description":"Allows deletion of the cluster. Defaults to false.\n"},"awsPrivateLink":{"$ref":"#/types/redpanda:index%2FClusterAwsPrivateLink:ClusterAwsPrivateLink","description":"AWS PrivateLink configuration.\n"},"azurePrivateLink":{"$ref":"#/types/redpanda:index%2FClusterAzurePrivateLink:ClusterAzurePrivateLink","description":"Azure Private Link configuration.\n"},"cloudProvider":{"type":"string","description":"Cloud provider where resources are created.\n"},"clusterApiUrl":{"type":"string","description":"The URL of the cluster API.\n"},"clusterConfiguration":{"$ref":"#/types/redpanda:index%2FClusterClusterConfiguration:ClusterClusterConfiguration","description":"Configuration for the cluster.\n"},"clusterType":{"type":"string","description":"Cluster type. Type is immutable and can only be set on cluster creation. Can be either byoc or dedicated.\n"},"connectionType":{"type":"string","description":"Cluster connection type. Private clusters are not exposed to the internet. For BYOC clusters, private is best-practice.\n"},"createdAt":{"type":"string","description":"Timestamp when the cluster was created.\n"},"customerManagedResources":{"$ref":"#/types/redpanda:index%2FClusterCustomerManagedResources:ClusterCustomerManagedResources","description":"Customer managed resources configuration for the cluster.\n"},"gcpGlobalAccessEnabled":{"type":"boolean","description":"If true, GCP global access is enabled.\n"},"gcpPrivateServiceConnect":{"$ref":"#/types/redpanda:index%2FClusterGcpPrivateServiceConnect:ClusterGcpPrivateServiceConnect","description":"GCP Private Service Connect configuration.\n"},"httpProxy":{"$ref":"#/types/redpanda:index%2FClusterHttpProxy:ClusterHttpProxy","description":"HTTP Proxy properties.\n"},"kafkaApi":{"$ref":"#/types/redpanda:index%2FClusterKafkaApi:ClusterKafkaApi","description":"Cluster's Kafka API properties.\n"},"kafkaConnect":{"$ref":"#/types/redpanda:index%2FClusterKafkaConnect:ClusterKafkaConnect","description":"Kafka Connect configuration.\n"},"maintenanceWindowConfig":{"$ref":"#/types/redpanda:index%2FClusterMaintenanceWindowConfig:ClusterMaintenanceWindowConfig","description":"Maintenance window configuration for the cluster.\n"},"name":{"type":"string","description":"Unique name of the cluster.\n"},"networkId":{"type":"string","description":"Network ID where cluster is placed.\n"},"prometheus":{"$ref":"#/types/redpanda:index%2FClusterPrometheus:ClusterPrometheus","description":"Prometheus metrics endpoint properties.\n"},"readReplicaClusterIds":{"type":"array","items":{"type":"string"},"description":"IDs of clusters that can create read-only topics from this cluster.\n"},"redpandaConsole":{"$ref":"#/types/redpanda:index%2FClusterRedpandaConsole:ClusterRedpandaConsole","description":"Redpanda Console properties.\n"},"redpandaNodeCount":{"type":"number","description":"Number of Redpanda nodes in the cluster. NOTE: This feature is not available for all customers by default. Contact your Redpanda account team to enable this feature.\n"},"redpandaVersion":{"type":"string","description":"Current Redpanda version of the cluster.\n"},"region":{"type":"string","description":"Cloud provider region. Region represents the name of the region where the cluster will be provisioned.\n"},"resourceGroupId":{"type":"string","description":"Resource group ID of the cluster.\n"},"schemaRegistry":{"$ref":"#/types/redpanda:index%2FClusterSchemaRegistry:ClusterSchemaRegistry","description":"Schema Registry properties.\n"},"state":{"type":"string","description":"Current state of the cluster.\n"},"stateDescription":{"$ref":"#/types/redpanda:index%2FClusterStateDescription:ClusterStateDescription","description":"Detailed state description when cluster is in a non-ready state.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags placed on cloud resources. If the cloud provider is GCP and the name of a tag has the prefix \"gcp.network-tag.\", the tag is a network tag that will be added to the Redpanda cluster GKE nodes. Otherwise, the tag is a normal tag. For example, if the name of a tag is \"gcp.network-tag.network-tag-foo\", the network tag named \"network-tag-foo\" will be added to the Redpanda cluster GKE nodes. Note: The value of a network tag will be ignored. See the details on network tags at https://cloud.google.com/vpc/docs/add-remove-network-tags.\n"},"throughputTier":{"type":"string","description":"Usage tier of the cluster.\n"},"timeouts":{"$ref":"#/types/redpanda:index%2FClusterTimeouts:ClusterTimeouts"},"zones":{"type":"array","items":{"type":"string"},"description":"Zones of the cluster. Must be valid zones within the selected region. If multiple zones are used, the cluster is a multi-AZ cluster.\n"}},"type":"object"}},"redpanda:index/network:Network":{"description":"Creates a network in the Redpanda Cloud.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as redpanda from \"@pulumi/redpanda\";\n\nconst example = new redpanda.ResourceGroup(\"example\", {name: \"example-resource-group\"});\nconst exampleNetwork = new redpanda.Network(\"example\", {\n    name: \"example-network\",\n    resourceGroupId: example.id,\n    cloudProvider: \"aws\",\n    region: \"us-west-2\",\n    clusterType: \"dedicated\",\n    cidrBlock: \"10.0.0.0/20\",\n});\n```\n```python\nimport pulumi\nimport pulumi_redpanda as redpanda\n\nexample = redpanda.ResourceGroup(\"example\", name=\"example-resource-group\")\nexample_network = redpanda.Network(\"example\",\n    name=\"example-network\",\n    resource_group_id=example.id,\n    cloud_provider=\"aws\",\n    region=\"us-west-2\",\n    cluster_type=\"dedicated\",\n    cidr_block=\"10.0.0.0/20\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Redpanda = Pulumi.Redpanda;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Redpanda.ResourceGroup(\"example\", new()\n    {\n        Name = \"example-resource-group\",\n    });\n\n    var exampleNetwork = new Redpanda.Network(\"example\", new()\n    {\n        Name = \"example-network\",\n        ResourceGroupId = example.Id,\n        CloudProvider = \"aws\",\n        Region = \"us-west-2\",\n        ClusterType = \"dedicated\",\n        CidrBlock = \"10.0.0.0/20\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/redpanda/redpanda\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := redpanda.NewResourceGroup(ctx, \"example\", \u0026redpanda.ResourceGroupArgs{\n\t\t\tName: pulumi.String(\"example-resource-group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redpanda.NewNetwork(ctx, \"example\", \u0026redpanda.NetworkArgs{\n\t\t\tName:            pulumi.String(\"example-network\"),\n\t\t\tResourceGroupId: example.ID(),\n\t\t\tCloudProvider:   pulumi.String(\"aws\"),\n\t\t\tRegion:          pulumi.String(\"us-west-2\"),\n\t\t\tClusterType:     pulumi.String(\"dedicated\"),\n\t\t\tCidrBlock:       pulumi.String(\"10.0.0.0/20\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.redpanda.ResourceGroup;\nimport com.pulumi.redpanda.ResourceGroupArgs;\nimport com.pulumi.redpanda.Network;\nimport com.pulumi.redpanda.NetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new ResourceGroup(\"example\", ResourceGroupArgs.builder()\n            .name(\"example-resource-group\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .name(\"example-network\")\n            .resourceGroupId(example.id())\n            .cloudProvider(\"aws\")\n            .region(\"us-west-2\")\n            .clusterType(\"dedicated\")\n            .cidrBlock(\"10.0.0.0/20\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: redpanda:ResourceGroup\n    properties:\n      name: example-resource-group\n  exampleNetwork:\n    type: redpanda:Network\n    name: example\n    properties:\n      name: example-network\n      resourceGroupId: ${example.id}\n      cloudProvider: aws\n      region: us-west-2\n      clusterType: dedicated\n      cidrBlock: 10.0.0.0/20\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## API Reference\n\nFor more information, see the [Redpanda Cloud Control Plane API documentation](https://docs.redpanda.com/api/cloud-controlplane-api/).\n\n## Import\n\n```sh\n$ pulumi import redpanda:index/network:Network example networkId\n```\n\n","properties":{"cidrBlock":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" cidrBlock \" pulumi-lang-dotnet=\" CidrBlock \" pulumi-lang-go=\" cidrBlock \" pulumi-lang-python=\" cidr_block \" pulumi-lang-yaml=\" cidrBlock \" pulumi-lang-java=\" cidrBlock \"\u003e cidr_block \u003c/span\u003eto create the network in\n"},"cloudProvider":{"type":"string","description":"The cloud provider to create the network in.\n"},"clusterType":{"type":"string","description":"The type of cluster this network is associated with, can be one of dedicated or byoc\n"},"customerManagedResources":{"$ref":"#/types/redpanda:index%2FNetworkCustomerManagedResources:NetworkCustomerManagedResources"},"name":{"type":"string","description":"Name of the network\n"},"region":{"type":"string","description":"The region to create the network in.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group in which to create the network\n"},"timeouts":{"$ref":"#/types/redpanda:index%2FNetworkTimeouts:NetworkTimeouts"}},"type":"object","required":["cloudProvider","clusterType","name","region","resourceGroupId"],"inputProperties":{"cidrBlock":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" cidrBlock \" pulumi-lang-dotnet=\" CidrBlock \" pulumi-lang-go=\" cidrBlock \" pulumi-lang-python=\" cidr_block \" pulumi-lang-yaml=\" cidrBlock \" pulumi-lang-java=\" cidrBlock \"\u003e cidr_block \u003c/span\u003eto create the network in\n"},"cloudProvider":{"type":"string","description":"The cloud provider to create the network in.\n"},"clusterType":{"type":"string","description":"The type of cluster this network is associated with, can be one of dedicated or byoc\n"},"customerManagedResources":{"$ref":"#/types/redpanda:index%2FNetworkCustomerManagedResources:NetworkCustomerManagedResources"},"name":{"type":"string","description":"Name of the network\n"},"region":{"type":"string","description":"The region to create the network in.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group in which to create the network\n"},"timeouts":{"$ref":"#/types/redpanda:index%2FNetworkTimeouts:NetworkTimeouts"}},"requiredInputs":["cloudProvider","clusterType","region","resourceGroupId"],"stateInputs":{"description":"Input properties used for looking up and filtering Network resources.\n","properties":{"cidrBlock":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" cidrBlock \" pulumi-lang-dotnet=\" CidrBlock \" pulumi-lang-go=\" cidrBlock \" pulumi-lang-python=\" cidr_block \" pulumi-lang-yaml=\" cidrBlock \" pulumi-lang-java=\" cidrBlock \"\u003e cidr_block \u003c/span\u003eto create the network in\n"},"cloudProvider":{"type":"string","description":"The cloud provider to create the network in.\n"},"clusterType":{"type":"string","description":"The type of cluster this network is associated with, can be one of dedicated or byoc\n"},"customerManagedResources":{"$ref":"#/types/redpanda:index%2FNetworkCustomerManagedResources:NetworkCustomerManagedResources"},"name":{"type":"string","description":"Name of the network\n"},"region":{"type":"string","description":"The region to create the network in.\n"},"resourceGroupId":{"type":"string","description":"The ID of the resource group in which to create the network\n"},"timeouts":{"$ref":"#/types/redpanda:index%2FNetworkTimeouts:NetworkTimeouts"}},"type":"object"}},"redpanda:index/pipeline:Pipeline":{"description":"Manages a Redpanda Connect pipeline. Redpanda Connect is a declarative data streaming service that connects various data sources and sinks.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as redpanda from \"@pulumi/redpanda\";\n\nconst example = new redpanda.ResourceGroup(\"example\", {name: \"example-resource-group\"});\nconst exampleNetwork = new redpanda.Network(\"example\", {\n    name: \"example-network\",\n    resourceGroupId: example.id,\n    cloudProvider: \"aws\",\n    region: \"us-west-2\",\n    clusterType: \"dedicated\",\n    cidrBlock: \"10.0.0.0/20\",\n});\nconst exampleCluster = new redpanda.Cluster(\"example\", {\n    name: \"example-cluster\",\n    resourceGroupId: example.id,\n    networkId: exampleNetwork.id,\n    cloudProvider: \"aws\",\n    region: \"us-west-2\",\n    clusterType: \"dedicated\",\n    connectionType: \"public\",\n    throughputTier: \"tier-1-aws-v2-arm\",\n    zones: [\n        \"usw2-az1\",\n        \"usw2-az2\",\n        \"usw2-az3\",\n    ],\n});\nconst examplePipeline = new redpanda.Pipeline(\"example\", {\n    clusterApiUrl: exampleCluster.clusterApiUrl,\n    displayName: \"example-pipeline\",\n    description: \"An example Redpanda Connect pipeline\",\n    state: \"stopped\",\n    configYaml: `input:\n  generate:\n    interval: \\\\\"1s\\\\\"\n    mapping: |\n      root.message = \\\\\"hello world\\\\\"\n      root.timestamp = now()\n\noutput:\n  stdout: {}\n`,\n    resources: {\n        memoryShares: \"256Mi\",\n        cpuShares: \"200m\",\n    },\n    tags: {\n        environment: \"example\",\n        \"managed-by\": \"terraform\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_redpanda as redpanda\n\nexample = redpanda.ResourceGroup(\"example\", name=\"example-resource-group\")\nexample_network = redpanda.Network(\"example\",\n    name=\"example-network\",\n    resource_group_id=example.id,\n    cloud_provider=\"aws\",\n    region=\"us-west-2\",\n    cluster_type=\"dedicated\",\n    cidr_block=\"10.0.0.0/20\")\nexample_cluster = redpanda.Cluster(\"example\",\n    name=\"example-cluster\",\n    resource_group_id=example.id,\n    network_id=example_network.id,\n    cloud_provider=\"aws\",\n    region=\"us-west-2\",\n    cluster_type=\"dedicated\",\n    connection_type=\"public\",\n    throughput_tier=\"tier-1-aws-v2-arm\",\n    zones=[\n        \"usw2-az1\",\n        \"usw2-az2\",\n        \"usw2-az3\",\n    ])\nexample_pipeline = redpanda.Pipeline(\"example\",\n    cluster_api_url=example_cluster.cluster_api_url,\n    display_name=\"example-pipeline\",\n    description=\"An example Redpanda Connect pipeline\",\n    state=\"stopped\",\n    config_yaml=\"\"\"input:\n  generate:\n    interval: \\\"1s\\\"\n    mapping: |\n      root.message = \\\"hello world\\\"\n      root.timestamp = now()\n\noutput:\n  stdout: {}\n\"\"\",\n    resources={\n        \"memory_shares\": \"256Mi\",\n        \"cpu_shares\": \"200m\",\n    },\n    tags={\n        \"environment\": \"example\",\n        \"managed-by\": \"terraform\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Redpanda = Pulumi.Redpanda;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Redpanda.ResourceGroup(\"example\", new()\n    {\n        Name = \"example-resource-group\",\n    });\n\n    var exampleNetwork = new Redpanda.Network(\"example\", new()\n    {\n        Name = \"example-network\",\n        ResourceGroupId = example.Id,\n        CloudProvider = \"aws\",\n        Region = \"us-west-2\",\n        ClusterType = \"dedicated\",\n        CidrBlock = \"10.0.0.0/20\",\n    });\n\n    var exampleCluster = new Redpanda.Cluster(\"example\", new()\n    {\n        Name = \"example-cluster\",\n        ResourceGroupId = example.Id,\n        NetworkId = exampleNetwork.Id,\n        CloudProvider = \"aws\",\n        Region = \"us-west-2\",\n        ClusterType = \"dedicated\",\n        ConnectionType = \"public\",\n        ThroughputTier = \"tier-1-aws-v2-arm\",\n        Zones = new[]\n        {\n            \"usw2-az1\",\n            \"usw2-az2\",\n            \"usw2-az3\",\n        },\n    });\n\n    var examplePipeline = new Redpanda.Pipeline(\"example\", new()\n    {\n        ClusterApiUrl = exampleCluster.ClusterApiUrl,\n        DisplayName = \"example-pipeline\",\n        Description = \"An example Redpanda Connect pipeline\",\n        State = \"stopped\",\n        ConfigYaml = @\"input:\n  generate:\n    interval: \\\"\"1s\\\"\"\n    mapping: |\n      root.message = \\\"\"hello world\\\"\"\n      root.timestamp = now()\n\noutput:\n  stdout: {}\n\",\n        Resources = new Redpanda.Inputs.PipelineResourcesArgs\n        {\n            MemoryShares = \"256Mi\",\n            CpuShares = \"200m\",\n        },\n        Tags = \n        {\n            { \"environment\", \"example\" },\n            { \"managed-by\", \"terraform\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/redpanda/redpanda\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := redpanda.NewResourceGroup(ctx, \"example\", \u0026redpanda.ResourceGroupArgs{\n\t\t\tName: pulumi.String(\"example-resource-group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := redpanda.NewNetwork(ctx, \"example\", \u0026redpanda.NetworkArgs{\n\t\t\tName:            pulumi.String(\"example-network\"),\n\t\t\tResourceGroupId: example.ID(),\n\t\t\tCloudProvider:   pulumi.String(\"aws\"),\n\t\t\tRegion:          pulumi.String(\"us-west-2\"),\n\t\t\tClusterType:     pulumi.String(\"dedicated\"),\n\t\t\tCidrBlock:       pulumi.String(\"10.0.0.0/20\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCluster, err := redpanda.NewCluster(ctx, \"example\", \u0026redpanda.ClusterArgs{\n\t\t\tName:            pulumi.String(\"example-cluster\"),\n\t\t\tResourceGroupId: example.ID(),\n\t\t\tNetworkId:       exampleNetwork.ID(),\n\t\t\tCloudProvider:   pulumi.String(\"aws\"),\n\t\t\tRegion:          pulumi.String(\"us-west-2\"),\n\t\t\tClusterType:     pulumi.String(\"dedicated\"),\n\t\t\tConnectionType:  pulumi.String(\"public\"),\n\t\t\tThroughputTier:  pulumi.String(\"tier-1-aws-v2-arm\"),\n\t\t\tZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"usw2-az1\"),\n\t\t\t\tpulumi.String(\"usw2-az2\"),\n\t\t\t\tpulumi.String(\"usw2-az3\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redpanda.NewPipeline(ctx, \"example\", \u0026redpanda.PipelineArgs{\n\t\t\tClusterApiUrl: exampleCluster.ClusterApiUrl,\n\t\t\tDisplayName:   pulumi.String(\"example-pipeline\"),\n\t\t\tDescription:   pulumi.String(\"An example Redpanda Connect pipeline\"),\n\t\t\tState:         pulumi.String(\"stopped\"),\n\t\t\tConfigYaml: pulumi.String(`input:\n  generate:\n    interval: \\\"1s\\\"\n    mapping: |\n      root.message = \\\"hello world\\\"\n      root.timestamp = now()\n\noutput:\n  stdout: {}\n`),\n\t\t\tResources: \u0026redpanda.PipelineResourcesArgs{\n\t\t\t\tMemoryShares: pulumi.String(\"256Mi\"),\n\t\t\t\tCpuShares:    pulumi.String(\"200m\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"example\"),\n\t\t\t\t\"managed-by\":  pulumi.String(\"terraform\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.redpanda.ResourceGroup;\nimport com.pulumi.redpanda.ResourceGroupArgs;\nimport com.pulumi.redpanda.Network;\nimport com.pulumi.redpanda.NetworkArgs;\nimport com.pulumi.redpanda.Cluster;\nimport com.pulumi.redpanda.ClusterArgs;\nimport com.pulumi.redpanda.Pipeline;\nimport com.pulumi.redpanda.PipelineArgs;\nimport com.pulumi.redpanda.inputs.PipelineResourcesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new ResourceGroup(\"example\", ResourceGroupArgs.builder()\n            .name(\"example-resource-group\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .name(\"example-network\")\n            .resourceGroupId(example.id())\n            .cloudProvider(\"aws\")\n            .region(\"us-west-2\")\n            .clusterType(\"dedicated\")\n            .cidrBlock(\"10.0.0.0/20\")\n            .build());\n\n        var exampleCluster = new Cluster(\"exampleCluster\", ClusterArgs.builder()\n            .name(\"example-cluster\")\n            .resourceGroupId(example.id())\n            .networkId(exampleNetwork.id())\n            .cloudProvider(\"aws\")\n            .region(\"us-west-2\")\n            .clusterType(\"dedicated\")\n            .connectionType(\"public\")\n            .throughputTier(\"tier-1-aws-v2-arm\")\n            .zones(            \n                \"usw2-az1\",\n                \"usw2-az2\",\n                \"usw2-az3\")\n            .build());\n\n        var examplePipeline = new Pipeline(\"examplePipeline\", PipelineArgs.builder()\n            .clusterApiUrl(exampleCluster.clusterApiUrl())\n            .displayName(\"example-pipeline\")\n            .description(\"An example Redpanda Connect pipeline\")\n            .state(\"stopped\")\n            .configYaml(\"\"\"\ninput:\n  generate:\n    interval: \\\"1s\\\"\n    mapping: |\n      root.message = \\\"hello world\\\"\n      root.timestamp = now()\n\noutput:\n  stdout: {}\n            \"\"\")\n            .resources(PipelineResourcesArgs.builder()\n                .memoryShares(\"256Mi\")\n                .cpuShares(\"200m\")\n                .build())\n            .tags(Map.ofEntries(\n                Map.entry(\"environment\", \"example\"),\n                Map.entry(\"managed-by\", \"terraform\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: redpanda:ResourceGroup\n    properties:\n      name: example-resource-group\n  exampleNetwork:\n    type: redpanda:Network\n    name: example\n    properties:\n      name: example-network\n      resourceGroupId: ${example.id}\n      cloudProvider: aws\n      region: us-west-2\n      clusterType: dedicated\n      cidrBlock: 10.0.0.0/20\n  exampleCluster:\n    type: redpanda:Cluster\n    name: example\n    properties:\n      name: example-cluster\n      resourceGroupId: ${example.id}\n      networkId: ${exampleNetwork.id}\n      cloudProvider: aws\n      region: us-west-2\n      clusterType: dedicated\n      connectionType: public\n      throughputTier: tier-1-aws-v2-arm\n      zones:\n        - usw2-az1\n        - usw2-az2\n        - usw2-az3\n  examplePipeline:\n    type: redpanda:Pipeline\n    name: example\n    properties:\n      clusterApiUrl: ${exampleCluster.clusterApiUrl}\n      displayName: example-pipeline\n      description: An example Redpanda Connect pipeline\n      state: stopped\n      configYaml: |\n        input:\n          generate:\n            interval: \\\"1s\\\"\n            mapping: |\n              root.message = \\\"hello world\\\"\n              root.timestamp = now()\n\n        output:\n          stdout: {}\n      resources:\n        memoryShares: 256Mi\n        cpuShares: 200m\n      tags:\n        environment: example\n        managed-by: terraform\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## API Reference\n\nFor more information, see the [Redpanda Cloud Data Plane API documentation](https://docs.redpanda.com/api/cloud-dataplane-api/).\n\n## Import\n\n```sh\n$ pulumi import redpanda:index/pipeline:Pipeline example pipelineId,clusterId\n```\n\nWhere `pipelineId` is the ID of the pipeline and `clusterId` is the ID of the cluster in Redpanda Cloud.\n\n","properties":{"allowDeletion":{"type":"boolean","description":"Allows deletion of the pipeline. Default is false. Must be set to true to delete the resource.\n"},"clusterApiUrl":{"type":"string","description":"The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports.\n"},"configYaml":{"type":"string","description":"The Redpanda Connect pipeline configuration in YAML format. See https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about for configuration details.\n","secret":true},"description":{"type":"string","description":"Optional description of the pipeline.\n"},"displayName":{"type":"string","description":"User-friendly display name for the pipeline.\n"},"resources":{"$ref":"#/types/redpanda:index%2FPipelineResources:PipelineResources","description":"Resource allocation for the pipeline.\n"},"serviceAccount":{"$ref":"#/types/redpanda:index%2FPipelineServiceAccount:PipelineServiceAccount","description":"Service account credentials for the pipeline. Used to authenticate the pipeline with external services.\n"},"state":{"type":"string","description":"Desired state of the pipeline: 'running' or 'stopped'. The provider will ensure the pipeline reaches this state after create/update operations.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value pairs to tag the pipeline for organization and filtering.\n"},"timeouts":{"$ref":"#/types/redpanda:index%2FPipelineTimeouts:PipelineTimeouts"},"url":{"type":"string","description":"URL to connect to the pipeline's HTTP server, if applicable.\n"}},"type":"object","required":["allowDeletion","clusterApiUrl","configYaml","displayName","resources","state","url"],"inputProperties":{"allowDeletion":{"type":"boolean","description":"Allows deletion of the pipeline. Default is false. Must be set to true to delete the resource.\n"},"clusterApiUrl":{"type":"string","description":"The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports.\n"},"configYaml":{"type":"string","description":"The Redpanda Connect pipeline configuration in YAML format. See https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about for configuration details.\n","secret":true},"description":{"type":"string","description":"Optional description of the pipeline.\n"},"displayName":{"type":"string","description":"User-friendly display name for the pipeline.\n"},"resources":{"$ref":"#/types/redpanda:index%2FPipelineResources:PipelineResources","description":"Resource allocation for the pipeline.\n"},"serviceAccount":{"$ref":"#/types/redpanda:index%2FPipelineServiceAccount:PipelineServiceAccount","description":"Service account credentials for the pipeline. Used to authenticate the pipeline with external services.\n"},"state":{"type":"string","description":"Desired state of the pipeline: 'running' or 'stopped'. The provider will ensure the pipeline reaches this state after create/update operations.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value pairs to tag the pipeline for organization and filtering.\n"},"timeouts":{"$ref":"#/types/redpanda:index%2FPipelineTimeouts:PipelineTimeouts"}},"requiredInputs":["clusterApiUrl","configYaml","displayName"],"stateInputs":{"description":"Input properties used for looking up and filtering Pipeline resources.\n","properties":{"allowDeletion":{"type":"boolean","description":"Allows deletion of the pipeline. Default is false. Must be set to true to delete the resource.\n"},"clusterApiUrl":{"type":"string","description":"The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports.\n"},"configYaml":{"type":"string","description":"The Redpanda Connect pipeline configuration in YAML format. See https://docs.redpanda.com/redpanda-cloud/develop/connect/configuration/about for configuration details.\n","secret":true},"description":{"type":"string","description":"Optional description of the pipeline.\n"},"displayName":{"type":"string","description":"User-friendly display name for the pipeline.\n"},"resources":{"$ref":"#/types/redpanda:index%2FPipelineResources:PipelineResources","description":"Resource allocation for the pipeline.\n"},"serviceAccount":{"$ref":"#/types/redpanda:index%2FPipelineServiceAccount:PipelineServiceAccount","description":"Service account credentials for the pipeline. Used to authenticate the pipeline with external services.\n"},"state":{"type":"string","description":"Desired state of the pipeline: 'running' or 'stopped'. The provider will ensure the pipeline reaches this state after create/update operations.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value pairs to tag the pipeline for organization and filtering.\n"},"timeouts":{"$ref":"#/types/redpanda:index%2FPipelineTimeouts:PipelineTimeouts"},"url":{"type":"string","description":"URL to connect to the pipeline's HTTP server, if applicable.\n"}},"type":"object"}},"redpanda:index/resourceGroup:ResourceGroup":{"description":"A Redpanda Cloud resource group\n\nCreates a Resource Group in the Redpanda Cloud.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as redpanda from \"@pulumi/redpanda\";\n\nconst example = new redpanda.ResourceGroup(\"example\", {name: \"example-resource-group\"});\n```\n```python\nimport pulumi\nimport pulumi_redpanda as redpanda\n\nexample = redpanda.ResourceGroup(\"example\", name=\"example-resource-group\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Redpanda = Pulumi.Redpanda;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Redpanda.ResourceGroup(\"example\", new()\n    {\n        Name = \"example-resource-group\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/redpanda/redpanda\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := redpanda.NewResourceGroup(ctx, \"example\", \u0026redpanda.ResourceGroupArgs{\n\t\t\tName: pulumi.String(\"example-resource-group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.redpanda.ResourceGroup;\nimport com.pulumi.redpanda.ResourceGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new ResourceGroup(\"example\", ResourceGroupArgs.builder()\n            .name(\"example-resource-group\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: redpanda:ResourceGroup\n    properties:\n      name: example-resource-group\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## API Reference\n\nFor more information, see the [Redpanda Cloud Control Plane API documentation](https://docs.redpanda.com/api/cloud-controlplane-api/).\n\n## Import\n\n```sh\n$ pulumi import redpanda:index/resourceGroup:ResourceGroup example resourcegroupId\n```\n\n","properties":{"name":{"type":"string","description":"Name of the resource group. Changing the name of a resource group will result in a new resource group being created and the old one being destroyed\n"}},"type":"object","required":["name"],"inputProperties":{"name":{"type":"string","description":"Name of the resource group. Changing the name of a resource group will result in a new resource group being created and the old one being destroyed\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering ResourceGroup resources.\n","properties":{"name":{"type":"string","description":"Name of the resource group. Changing the name of a resource group will result in a new resource group being created and the old one being destroyed\n"}},"type":"object"}},"redpanda:index/role:Role":{"description":"\n\n## Import\n\n```sh\n$ pulumi import redpanda:index/role:Role example roleName,clusterId\n```\n\nWhere `clusterId` is the ID of the cluster in Redpanda Cloud.\n\n","properties":{"allowDeletion":{"type":"boolean","description":"Allows deletion of the role. If false, the role cannot be deleted and the resource will be removed from the state on destruction. Defaults to false.\n"},"clusterApiUrl":{"type":"string","description":"The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports\n"},"name":{"type":"string","description":"Name of the role, must be unique\n"}},"type":"object","required":["allowDeletion","clusterApiUrl","name"],"inputProperties":{"allowDeletion":{"type":"boolean","description":"Allows deletion of the role. If false, the role cannot be deleted and the resource will be removed from the state on destruction. Defaults to false.\n"},"clusterApiUrl":{"type":"string","description":"The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports\n"},"name":{"type":"string","description":"Name of the role, must be unique\n"}},"requiredInputs":["clusterApiUrl"],"stateInputs":{"description":"Input properties used for looking up and filtering Role resources.\n","properties":{"allowDeletion":{"type":"boolean","description":"Allows deletion of the role. If false, the role cannot be deleted and the resource will be removed from the state on destruction. Defaults to false.\n"},"clusterApiUrl":{"type":"string","description":"The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports\n"},"name":{"type":"string","description":"Name of the role, must be unique\n"}},"type":"object"}},"redpanda:index/roleAssignment:RoleAssignment":{"description":"Assigns an existing Redpanda role to a principal. Resource ID format: `{role_name}:{principal}`\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as redpanda from \"@pulumi/redpanda\";\n\nconst example = new redpanda.ResourceGroup(\"example\", {name: \"example-resource-group\"});\nconst exampleNetwork = new redpanda.Network(\"example\", {\n    name: \"example-network\",\n    resourceGroupId: example.id,\n    cloudProvider: \"aws\",\n    region: \"us-west-2\",\n    clusterType: \"dedicated\",\n    cidrBlock: \"10.0.0.0/20\",\n});\nconst exampleCluster = new redpanda.Cluster(\"example\", {\n    name: \"example-cluster\",\n    resourceGroupId: example.id,\n    networkId: exampleNetwork.id,\n    cloudProvider: \"aws\",\n    region: \"us-west-2\",\n    clusterType: \"dedicated\",\n    connectionType: \"public\",\n    throughputTier: \"tier-1-aws\",\n    zones: [\n        \"us-west-2a\",\n        \"us-west-2b\",\n        \"us-west-2c\",\n    ],\n});\nconst exampleUser = new redpanda.User(\"example\", {\n    name: \"example-user\",\n    password: \"secure-password-123\",\n    mechanism: \"scram-sha-256\",\n    clusterApiUrl: exampleCluster.clusterApiUrl,\n    allowDeletion: true,\n});\nconst exampleRoleAssignment = new redpanda.RoleAssignment(\"example\", {\n    roleName: \"test-role\",\n    principal: exampleUser.name,\n    clusterApiUrl: exampleCluster.clusterApiUrl,\n});\n```\n```python\nimport pulumi\nimport pulumi_redpanda as redpanda\n\nexample = redpanda.ResourceGroup(\"example\", name=\"example-resource-group\")\nexample_network = redpanda.Network(\"example\",\n    name=\"example-network\",\n    resource_group_id=example.id,\n    cloud_provider=\"aws\",\n    region=\"us-west-2\",\n    cluster_type=\"dedicated\",\n    cidr_block=\"10.0.0.0/20\")\nexample_cluster = redpanda.Cluster(\"example\",\n    name=\"example-cluster\",\n    resource_group_id=example.id,\n    network_id=example_network.id,\n    cloud_provider=\"aws\",\n    region=\"us-west-2\",\n    cluster_type=\"dedicated\",\n    connection_type=\"public\",\n    throughput_tier=\"tier-1-aws\",\n    zones=[\n        \"us-west-2a\",\n        \"us-west-2b\",\n        \"us-west-2c\",\n    ])\nexample_user = redpanda.User(\"example\",\n    name=\"example-user\",\n    password=\"secure-password-123\",\n    mechanism=\"scram-sha-256\",\n    cluster_api_url=example_cluster.cluster_api_url,\n    allow_deletion=True)\nexample_role_assignment = redpanda.RoleAssignment(\"example\",\n    role_name=\"test-role\",\n    principal=example_user.name,\n    cluster_api_url=example_cluster.cluster_api_url)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Redpanda = Pulumi.Redpanda;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Redpanda.ResourceGroup(\"example\", new()\n    {\n        Name = \"example-resource-group\",\n    });\n\n    var exampleNetwork = new Redpanda.Network(\"example\", new()\n    {\n        Name = \"example-network\",\n        ResourceGroupId = example.Id,\n        CloudProvider = \"aws\",\n        Region = \"us-west-2\",\n        ClusterType = \"dedicated\",\n        CidrBlock = \"10.0.0.0/20\",\n    });\n\n    var exampleCluster = new Redpanda.Cluster(\"example\", new()\n    {\n        Name = \"example-cluster\",\n        ResourceGroupId = example.Id,\n        NetworkId = exampleNetwork.Id,\n        CloudProvider = \"aws\",\n        Region = \"us-west-2\",\n        ClusterType = \"dedicated\",\n        ConnectionType = \"public\",\n        ThroughputTier = \"tier-1-aws\",\n        Zones = new[]\n        {\n            \"us-west-2a\",\n            \"us-west-2b\",\n            \"us-west-2c\",\n        },\n    });\n\n    var exampleUser = new Redpanda.User(\"example\", new()\n    {\n        Name = \"example-user\",\n        Password = \"secure-password-123\",\n        Mechanism = \"scram-sha-256\",\n        ClusterApiUrl = exampleCluster.ClusterApiUrl,\n        AllowDeletion = true,\n    });\n\n    var exampleRoleAssignment = new Redpanda.RoleAssignment(\"example\", new()\n    {\n        RoleName = \"test-role\",\n        Principal = exampleUser.Name,\n        ClusterApiUrl = exampleCluster.ClusterApiUrl,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/redpanda/redpanda\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := redpanda.NewResourceGroup(ctx, \"example\", \u0026redpanda.ResourceGroupArgs{\n\t\t\tName: pulumi.String(\"example-resource-group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := redpanda.NewNetwork(ctx, \"example\", \u0026redpanda.NetworkArgs{\n\t\t\tName:            pulumi.String(\"example-network\"),\n\t\t\tResourceGroupId: example.ID(),\n\t\t\tCloudProvider:   pulumi.String(\"aws\"),\n\t\t\tRegion:          pulumi.String(\"us-west-2\"),\n\t\t\tClusterType:     pulumi.String(\"dedicated\"),\n\t\t\tCidrBlock:       pulumi.String(\"10.0.0.0/20\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCluster, err := redpanda.NewCluster(ctx, \"example\", \u0026redpanda.ClusterArgs{\n\t\t\tName:            pulumi.String(\"example-cluster\"),\n\t\t\tResourceGroupId: example.ID(),\n\t\t\tNetworkId:       exampleNetwork.ID(),\n\t\t\tCloudProvider:   pulumi.String(\"aws\"),\n\t\t\tRegion:          pulumi.String(\"us-west-2\"),\n\t\t\tClusterType:     pulumi.String(\"dedicated\"),\n\t\t\tConnectionType:  pulumi.String(\"public\"),\n\t\t\tThroughputTier:  pulumi.String(\"tier-1-aws\"),\n\t\t\tZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-west-2a\"),\n\t\t\t\tpulumi.String(\"us-west-2b\"),\n\t\t\t\tpulumi.String(\"us-west-2c\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleUser, err := redpanda.NewUser(ctx, \"example\", \u0026redpanda.UserArgs{\n\t\t\tName:          pulumi.String(\"example-user\"),\n\t\t\tPassword:      pulumi.String(\"secure-password-123\"),\n\t\t\tMechanism:     pulumi.String(\"scram-sha-256\"),\n\t\t\tClusterApiUrl: exampleCluster.ClusterApiUrl,\n\t\t\tAllowDeletion: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redpanda.NewRoleAssignment(ctx, \"example\", \u0026redpanda.RoleAssignmentArgs{\n\t\t\tRoleName:      pulumi.String(\"test-role\"),\n\t\t\tPrincipal:     exampleUser.Name,\n\t\t\tClusterApiUrl: exampleCluster.ClusterApiUrl,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.redpanda.ResourceGroup;\nimport com.pulumi.redpanda.ResourceGroupArgs;\nimport com.pulumi.redpanda.Network;\nimport com.pulumi.redpanda.NetworkArgs;\nimport com.pulumi.redpanda.Cluster;\nimport com.pulumi.redpanda.ClusterArgs;\nimport com.pulumi.redpanda.User;\nimport com.pulumi.redpanda.UserArgs;\nimport com.pulumi.redpanda.RoleAssignment;\nimport com.pulumi.redpanda.RoleAssignmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new ResourceGroup(\"example\", ResourceGroupArgs.builder()\n            .name(\"example-resource-group\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .name(\"example-network\")\n            .resourceGroupId(example.id())\n            .cloudProvider(\"aws\")\n            .region(\"us-west-2\")\n            .clusterType(\"dedicated\")\n            .cidrBlock(\"10.0.0.0/20\")\n            .build());\n\n        var exampleCluster = new Cluster(\"exampleCluster\", ClusterArgs.builder()\n            .name(\"example-cluster\")\n            .resourceGroupId(example.id())\n            .networkId(exampleNetwork.id())\n            .cloudProvider(\"aws\")\n            .region(\"us-west-2\")\n            .clusterType(\"dedicated\")\n            .connectionType(\"public\")\n            .throughputTier(\"tier-1-aws\")\n            .zones(            \n                \"us-west-2a\",\n                \"us-west-2b\",\n                \"us-west-2c\")\n            .build());\n\n        var exampleUser = new User(\"exampleUser\", UserArgs.builder()\n            .name(\"example-user\")\n            .password(\"secure-password-123\")\n            .mechanism(\"scram-sha-256\")\n            .clusterApiUrl(exampleCluster.clusterApiUrl())\n            .allowDeletion(true)\n            .build());\n\n        var exampleRoleAssignment = new RoleAssignment(\"exampleRoleAssignment\", RoleAssignmentArgs.builder()\n            .roleName(\"test-role\")\n            .principal(exampleUser.name())\n            .clusterApiUrl(exampleCluster.clusterApiUrl())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: redpanda:ResourceGroup\n    properties:\n      name: example-resource-group\n  exampleNetwork:\n    type: redpanda:Network\n    name: example\n    properties:\n      name: example-network\n      resourceGroupId: ${example.id}\n      cloudProvider: aws\n      region: us-west-2\n      clusterType: dedicated\n      cidrBlock: 10.0.0.0/20\n  exampleCluster:\n    type: redpanda:Cluster\n    name: example\n    properties:\n      name: example-cluster\n      resourceGroupId: ${example.id}\n      networkId: ${exampleNetwork.id}\n      cloudProvider: aws\n      region: us-west-2\n      clusterType: dedicated\n      connectionType: public\n      throughputTier: tier-1-aws\n      zones:\n        - us-west-2a\n        - us-west-2b\n        - us-west-2c\n  exampleUser:\n    type: redpanda:User\n    name: example\n    properties:\n      name: example-user\n      password: secure-password-123\n      mechanism: scram-sha-256\n      clusterApiUrl: ${exampleCluster.clusterApiUrl}\n      allowDeletion: true\n  exampleRoleAssignment:\n    type: redpanda:RoleAssignment\n    name: example\n    properties:\n      roleName: test-role\n      principal: ${exampleUser.name}\n      clusterApiUrl: ${exampleCluster.clusterApiUrl}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n## Notes\n\n- The role must already exist before it can be assigned. Create roles using the \u003cspan pulumi-lang-nodejs=\"`redpanda.Role`\" pulumi-lang-dotnet=\"`redpanda.Role`\" pulumi-lang-go=\"`Role`\" pulumi-lang-python=\"`Role`\" pulumi-lang-yaml=\"`redpanda.Role`\" pulumi-lang-java=\"`redpanda.Role`\"\u003e`redpanda.Role`\u003c/span\u003e resource, or import existing roles created via \u003cspan pulumi-lang-nodejs=\"`rpk`\" pulumi-lang-dotnet=\"`Rpk`\" pulumi-lang-go=\"`rpk`\" pulumi-lang-python=\"`rpk`\" pulumi-lang-yaml=\"`rpk`\" pulumi-lang-java=\"`rpk`\"\u003e`rpk`\u003c/span\u003e or Redpanda Console.\n- The principal should be specified as just the username (e.g., `\"john.doe\"`). While Redpanda's native format is `User:username`, this resource automatically handles the `User:` prefix for you. The prefix will be automatically stripped if provided.\n- A user can have multiple role assignments simultaneously. Permissions from all assigned roles are combined.\n- Role assignments are atomic operations - you cannot update an existing assignment. To change a role assignment, delete and recreate the resource.\n- The resource uses the Redpanda gRPC SecurityService (via console endpoint) for role management operations.\n\n## API Reference\n\nFor more information, see:\n- [Redpanda RBAC in Data Plane](https://docs.redpanda.com/redpanda-cloud/security/authorization/rbac/rbac_dp/)\n- [Redpanda Cloud Data Plane API](https://docs.redpanda.com/api/cloud-dataplane-api/)\n\n## Import\n\nRole assignments can be imported using the format `role_name:principal`:\n\n```sh\n$ pulumi import redpanda:index/roleAssignment:RoleAssignment test \"test-role:test-user\"\n```\n\nNote: The `cluster_api_url` must be specified in your Terraform configuration. The import will validate the role assignment exists during the next `pulumi preview` or `pulumi up`.\n\n","properties":{"clusterApiUrl":{"type":"string","description":"The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster\n"},"principal":{"type":"string","description":"The principal to assign the role to. Specify just the username (e.g., `\"john.doe\"`)\n"},"roleName":{"type":"string","description":"The name of the role to assign\n"}},"type":"object","required":["clusterApiUrl","principal","roleName"],"inputProperties":{"clusterApiUrl":{"type":"string","description":"The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster\n"},"principal":{"type":"string","description":"The principal to assign the role to. Specify just the username (e.g., `\"john.doe\"`)\n"},"roleName":{"type":"string","description":"The name of the role to assign\n"}},"requiredInputs":["clusterApiUrl","principal","roleName"],"stateInputs":{"description":"Input properties used for looking up and filtering RoleAssignment resources.\n","properties":{"clusterApiUrl":{"type":"string","description":"The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster\n"},"principal":{"type":"string","description":"The principal to assign the role to. Specify just the username (e.g., `\"john.doe\"`)\n"},"roleName":{"type":"string","description":"The name of the role to assign\n"}},"type":"object"}},"redpanda:index/schema:Schema":{"description":"\n\n## Import\n\nSchemas can be imported using a colon-separated string with the following format:\n\ncluster_id:subject:version:username:password\n\nExample imports:\n\nImport a schema with version 1\n\n```sh\n$ pulumi import redpanda:index/schema:Schema example \"cluster-123:user-value:1:myuser:mypassword\"\n```\n\nImport a schema with a complex subject name\n\n```sh\n$ pulumi import redpanda:index/schema:Schema product \"cluster-456:com.example.Product-v2:5:admin:secret123\"\n```\n\nImport schema version 0\n\n```sh\n$ pulumi import redpanda:index/schema:Schema initial \"cluster-789:test-subject:0:svc_account:p@ssw0rd\"\n```\n\n","properties":{"allowDeletion":{"type":"boolean","description":"When enabled, prevents the resource from being deleted if the cluster is unreachable. When disabled (default), the resource will be removed from state without attempting deletion when the cluster is unreachable."},"clusterId":{"type":"string","description":"The ID of the cluster where the schema is stored.\n"},"compatibility":{"type":"string","description":"The compatibility level for schema evolution (BACKWARD, BACKWARD_TRANSITIVE, FORWARD, FORWARD_TRANSITIVE, FULL, FULL_TRANSITIVE, NONE). Defaults to BACKWARD."},"password":{"type":"string","description":"The SASL password for Schema Registry authentication. Deprecated: use\u003cspan pulumi-lang-nodejs=\" passwordWo \" pulumi-lang-dotnet=\" PasswordWo \" pulumi-lang-go=\" passwordWo \" pulumi-lang-python=\" password_wo \" pulumi-lang-yaml=\" passwordWo \" pulumi-lang-java=\" passwordWo \"\u003e password_wo \u003c/span\u003einstead.","deprecationMessage":"Deprecated","secret":true},"passwordWo":{"type":"string"},"passwordWoVersion":{"type":"number","description":"Version number for password_wo. Increment this value to trigger a password update when using password_wo."},"references":{"type":"array","items":{"$ref":"#/types/redpanda:index%2FSchemaReference:SchemaReference"},"description":"List of schema references."},"schema":{"type":"string","description":"The schema definition in JSON format.\n"},"schemaId":{"type":"number","description":"The unique identifier for the schema."},"schemaType":{"type":"string","description":"The type of schema (AVRO, JSON, PROTOBUF)."},"subject":{"type":"string","description":"The subject name for the schema.\n"},"username":{"type":"string","description":"The SASL username for Schema Registry authentication.\n","secret":true},"version":{"type":"number","description":"The version of the schema."}},"type":"object","required":["allowDeletion","clusterId","compatibility","schema","schemaId","schemaType","subject","username","version"],"inputProperties":{"allowDeletion":{"type":"boolean","description":"When enabled, prevents the resource from being deleted if the cluster is unreachable. When disabled (default), the resource will be removed from state without attempting deletion when the cluster is unreachable."},"clusterId":{"type":"string","description":"The ID of the cluster where the schema is stored.\n"},"compatibility":{"type":"string","description":"The compatibility level for schema evolution (BACKWARD, BACKWARD_TRANSITIVE, FORWARD, FORWARD_TRANSITIVE, FULL, FULL_TRANSITIVE, NONE). Defaults to BACKWARD."},"password":{"type":"string","description":"The SASL password for Schema Registry authentication. Deprecated: use\u003cspan pulumi-lang-nodejs=\" passwordWo \" pulumi-lang-dotnet=\" PasswordWo \" pulumi-lang-go=\" passwordWo \" pulumi-lang-python=\" password_wo \" pulumi-lang-yaml=\" passwordWo \" pulumi-lang-java=\" passwordWo \"\u003e password_wo \u003c/span\u003einstead.","deprecationMessage":"Deprecated","secret":true},"passwordWo":{"type":"string"},"passwordWoVersion":{"type":"number","description":"Version number for password_wo. Increment this value to trigger a password update when using password_wo."},"references":{"type":"array","items":{"$ref":"#/types/redpanda:index%2FSchemaReference:SchemaReference"},"description":"List of schema references."},"schema":{"type":"string","description":"The schema definition in JSON format.\n"},"schemaType":{"type":"string","description":"The type of schema (AVRO, JSON, PROTOBUF)."},"subject":{"type":"string","description":"The subject name for the schema.\n"},"username":{"type":"string","description":"The SASL username for Schema Registry authentication.\n","secret":true}},"requiredInputs":["clusterId","schema","subject","username"],"stateInputs":{"description":"Input properties used for looking up and filtering Schema resources.\n","properties":{"allowDeletion":{"type":"boolean","description":"When enabled, prevents the resource from being deleted if the cluster is unreachable. When disabled (default), the resource will be removed from state without attempting deletion when the cluster is unreachable."},"clusterId":{"type":"string","description":"The ID of the cluster where the schema is stored.\n"},"compatibility":{"type":"string","description":"The compatibility level for schema evolution (BACKWARD, BACKWARD_TRANSITIVE, FORWARD, FORWARD_TRANSITIVE, FULL, FULL_TRANSITIVE, NONE). Defaults to BACKWARD."},"password":{"type":"string","description":"The SASL password for Schema Registry authentication. Deprecated: use\u003cspan pulumi-lang-nodejs=\" passwordWo \" pulumi-lang-dotnet=\" PasswordWo \" pulumi-lang-go=\" passwordWo \" pulumi-lang-python=\" password_wo \" pulumi-lang-yaml=\" passwordWo \" pulumi-lang-java=\" passwordWo \"\u003e password_wo \u003c/span\u003einstead.","deprecationMessage":"Deprecated","secret":true},"passwordWo":{"type":"string"},"passwordWoVersion":{"type":"number","description":"Version number for password_wo. Increment this value to trigger a password update when using password_wo."},"references":{"type":"array","items":{"$ref":"#/types/redpanda:index%2FSchemaReference:SchemaReference"},"description":"List of schema references."},"schema":{"type":"string","description":"The schema definition in JSON format.\n"},"schemaId":{"type":"number","description":"The unique identifier for the schema."},"schemaType":{"type":"string","description":"The type of schema (AVRO, JSON, PROTOBUF)."},"subject":{"type":"string","description":"The subject name for the schema.\n"},"username":{"type":"string","description":"The SASL username for Schema Registry authentication.\n","secret":true},"version":{"type":"number","description":"The version of the schema."}},"type":"object"}},"redpanda:index/schemaRegistryAcl:SchemaRegistryAcl":{"description":"\n\n## Import\n\nSchema Registry ACLs can be imported using a colon-separated string with the following format:\n\ncluster_id:principal:resource_type:resource_name:pattern_type:host:operation:permission:username:password\n\nExample imports:\n\nImport a subject-level READ ACL for user alice\n\n```sh\n$ pulumi import redpanda:index/schemaRegistryAcl:SchemaRegistryAcl example \"cluster-123:User:alice:SUBJECT:user-value:LITERAL:*:READ:ALLOW:alice:mypassword\"\n```\n\nImport a registry-level ALL ACL for a role\n\n```sh\n$ pulumi import redpanda:index/schemaRegistryAcl:SchemaRegistryAcl admin \"cluster-123:RedpandaRole:admin:REGISTRY:*:LITERAL:*:ALL:ALLOW:admin:secret\"\n```\n\nImport a prefixed pattern ACL\n\n```sh\n$ pulumi import redpanda:index/schemaRegistryAcl:SchemaRegistryAcl prefix \"cluster-123:User:bob:SUBJECT:orders-:PREFIXED:*:WRITE:ALLOW:bob:pass123\"\n```\n\n","properties":{"allowDeletion":{"type":"boolean","description":"When set to true, allows the resource to be removed from state even if deletion fails due to permission errors"},"clusterId":{"type":"string","description":"The ID of the cluster where the Schema Registry ACL will be created\n"},"host":{"type":"string","description":"The host address to use for this ACL. Use '*' for wildcard\n"},"operation":{"type":"string","description":"The operation type that shall be allowed or denied: ALL, READ, WRITE, DELETE, DESCRIBE, DESCRIBE*CONFIGS, ALTER, ALTER*CONFIGS\n"},"password":{"type":"string","description":"Password for authentication. Deprecated: use\u003cspan pulumi-lang-nodejs=\" passwordWo \" pulumi-lang-dotnet=\" PasswordWo \" pulumi-lang-go=\" passwordWo \" pulumi-lang-python=\" password_wo \" pulumi-lang-yaml=\" passwordWo \" pulumi-lang-java=\" passwordWo \"\u003e password_wo \u003c/span\u003einstead. Can be set via REDPANDA_SR_PASSWORD environment variable","deprecationMessage":"Deprecated","secret":true},"passwordWo":{"type":"string"},"passwordWoVersion":{"type":"number","description":"Version number for password_wo. Increment this value to trigger a password update when using password_wo."},"patternType":{"type":"string","description":"The pattern type of the resource: LITERAL or PREFIXED\n"},"permission":{"type":"string","description":"The permission type: ALLOW or DENY\n"},"principal":{"type":"string","description":"The principal to apply this ACL for (e.g., User:alice or RedpandaRole:admin)\n"},"resourceName":{"type":"string","description":"The name of the resource this ACL entry will be on. Use '*' for wildcard\n"},"resourceType":{"type":"string","description":"The type of the resource: SUBJECT or REGISTRY\n"},"username":{"type":"string","description":"Username for authentication. Can be set via REDPANDA_SR_USERNAME environment variable","secret":true}},"type":"object","required":["allowDeletion","clusterId","host","operation","patternType","permission","principal","resourceName","resourceType"],"inputProperties":{"allowDeletion":{"type":"boolean","description":"When set to true, allows the resource to be removed from state even if deletion fails due to permission errors"},"clusterId":{"type":"string","description":"The ID of the cluster where the Schema Registry ACL will be created\n"},"host":{"type":"string","description":"The host address to use for this ACL. Use '*' for wildcard\n"},"operation":{"type":"string","description":"The operation type that shall be allowed or denied: ALL, READ, WRITE, DELETE, DESCRIBE, DESCRIBE*CONFIGS, ALTER, ALTER*CONFIGS\n"},"password":{"type":"string","description":"Password for authentication. Deprecated: use\u003cspan pulumi-lang-nodejs=\" passwordWo \" pulumi-lang-dotnet=\" PasswordWo \" pulumi-lang-go=\" passwordWo \" pulumi-lang-python=\" password_wo \" pulumi-lang-yaml=\" passwordWo \" pulumi-lang-java=\" passwordWo \"\u003e password_wo \u003c/span\u003einstead. Can be set via REDPANDA_SR_PASSWORD environment variable","deprecationMessage":"Deprecated","secret":true},"passwordWo":{"type":"string"},"passwordWoVersion":{"type":"number","description":"Version number for password_wo. Increment this value to trigger a password update when using password_wo."},"patternType":{"type":"string","description":"The pattern type of the resource: LITERAL or PREFIXED\n"},"permission":{"type":"string","description":"The permission type: ALLOW or DENY\n"},"principal":{"type":"string","description":"The principal to apply this ACL for (e.g., User:alice or RedpandaRole:admin)\n"},"resourceName":{"type":"string","description":"The name of the resource this ACL entry will be on. Use '*' for wildcard\n"},"resourceType":{"type":"string","description":"The type of the resource: SUBJECT or REGISTRY\n"},"username":{"type":"string","description":"Username for authentication. Can be set via REDPANDA_SR_USERNAME environment variable","secret":true}},"requiredInputs":["clusterId","host","operation","patternType","permission","principal","resourceName","resourceType"],"stateInputs":{"description":"Input properties used for looking up and filtering SchemaRegistryAcl resources.\n","properties":{"allowDeletion":{"type":"boolean","description":"When set to true, allows the resource to be removed from state even if deletion fails due to permission errors"},"clusterId":{"type":"string","description":"The ID of the cluster where the Schema Registry ACL will be created\n"},"host":{"type":"string","description":"The host address to use for this ACL. Use '*' for wildcard\n"},"operation":{"type":"string","description":"The operation type that shall be allowed or denied: ALL, READ, WRITE, DELETE, DESCRIBE, DESCRIBE*CONFIGS, ALTER, ALTER*CONFIGS\n"},"password":{"type":"string","description":"Password for authentication. Deprecated: use\u003cspan pulumi-lang-nodejs=\" passwordWo \" pulumi-lang-dotnet=\" PasswordWo \" pulumi-lang-go=\" passwordWo \" pulumi-lang-python=\" password_wo \" pulumi-lang-yaml=\" passwordWo \" pulumi-lang-java=\" passwordWo \"\u003e password_wo \u003c/span\u003einstead. Can be set via REDPANDA_SR_PASSWORD environment variable","deprecationMessage":"Deprecated","secret":true},"passwordWo":{"type":"string"},"passwordWoVersion":{"type":"number","description":"Version number for password_wo. Increment this value to trigger a password update when using password_wo."},"patternType":{"type":"string","description":"The pattern type of the resource: LITERAL or PREFIXED\n"},"permission":{"type":"string","description":"The permission type: ALLOW or DENY\n"},"principal":{"type":"string","description":"The principal to apply this ACL for (e.g., User:alice or RedpandaRole:admin)\n"},"resourceName":{"type":"string","description":"The name of the resource this ACL entry will be on. Use '*' for wildcard\n"},"resourceType":{"type":"string","description":"The type of the resource: SUBJECT or REGISTRY\n"},"username":{"type":"string","description":"Username for authentication. Can be set via REDPANDA_SR_USERNAME environment variable","secret":true}},"type":"object"}},"redpanda:index/serverlessCluster:ServerlessCluster":{"description":"Enables the provisioning and management of Redpanda Serverless clusters. A Serverless cluster requires a resource group.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  example:\n    type: redpanda:ResourceGroup\n    properties:\n      name: example-resource-group\n  exampleServerlessCluster:\n    type: redpanda:ServerlessCluster\n    name: example\n    properties:\n      name: example-serverless-cluster\n      resourceGroupId: ${example.id}\n      region: us-west-2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Limitations\n\nServerless on GCP is currently in beta. To unlock this feature for your account, contact your Redpanda account team.\n\n### Advanced Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as redpanda from \"@pulumi/redpanda\";\n\nconst test = new redpanda.ResourceGroup(\"test\", {name: resourceGroupName});\nconst testServerlessPrivateLink: redpanda.ServerlessPrivateLink[] = [];\nfor (const range = {value: 0}; range.value \u003c (privateNetworking == \"STATE_ENABLED\" ? 1 : 0); range.value++) {\n    testServerlessPrivateLink.push(new redpanda.ServerlessPrivateLink(`test-${range.value}`, {\n        name: `${clusterName}-private-link`,\n        resourceGroupId: test.id,\n        cloudProvider: \"aws\",\n        serverlessRegion: region,\n        allowDeletion: allowPrivateLinkDeletion,\n        cloudProviderConfig: {\n            aws: {\n                allowedPrincipals: allowedPrincipals,\n            },\n        },\n    }));\n}\nconst testServerlessCluster = new redpanda.ServerlessCluster(\"test\", {\n    name: clusterName,\n    resourceGroupId: test.id,\n    serverlessRegion: region,\n    privateLinkId: privateNetworking == \"STATE_ENABLED\" ? testServerlessPrivateLink[0].id : null,\n    networkingConfig: {\n        \"public\": publicNetworking,\n        \"private\": privateNetworking,\n    },\n});\nconst testTopic = new redpanda.Topic(\"test\", {\n    name: topicName,\n    partitionCount: partitionCount,\n    replicationFactor: replicationFactor,\n    clusterApiUrl: testServerlessCluster.clusterApiUrl,\n    allowDeletion: true,\n});\nconst testUser = new redpanda.User(\"test\", {\n    name: userName,\n    password: userPw,\n    mechanism: mechanism,\n    clusterApiUrl: testServerlessCluster.clusterApiUrl,\n    allowDeletion: userAllowDeletion,\n});\n```\n```python\nimport pulumi\nimport pulumi_redpanda as redpanda\n\ntest = redpanda.ResourceGroup(\"test\", name=resource_group_name)\ntest_serverless_private_link = []\nfor range in [{\"value\": i} for i in range(0, 1 if private_networking == STATE_ENABLED else 0)]:\n    test_serverless_private_link.append(redpanda.ServerlessPrivateLink(f\"test-{range['value']}\",\n        name=f\"{cluster_name}-private-link\",\n        resource_group_id=test.id,\n        cloud_provider=\"aws\",\n        serverless_region=region,\n        allow_deletion=allow_private_link_deletion,\n        cloud_provider_config={\n            \"aws\": {\n                \"allowed_principals\": allowed_principals,\n            },\n        }))\ntest_serverless_cluster = redpanda.ServerlessCluster(\"test\",\n    name=cluster_name,\n    resource_group_id=test.id,\n    serverless_region=region,\n    private_link_id=test_serverless_private_link[0].id if private_networking == \"STATE_ENABLED\" else None,\n    networking_config={\n        \"public\": public_networking,\n        \"private\": private_networking,\n    })\ntest_topic = redpanda.Topic(\"test\",\n    name=topic_name,\n    partition_count=partition_count,\n    replication_factor=replication_factor,\n    cluster_api_url=test_serverless_cluster.cluster_api_url,\n    allow_deletion=True)\ntest_user = redpanda.User(\"test\",\n    name=user_name,\n    password=user_pw,\n    mechanism=mechanism,\n    cluster_api_url=test_serverless_cluster.cluster_api_url,\n    allow_deletion=user_allow_deletion)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Redpanda = Pulumi.Redpanda;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Redpanda.ResourceGroup(\"test\", new()\n    {\n        Name = resourceGroupName,\n    });\n\n    var testServerlessPrivateLink = new List\u003cRedpanda.ServerlessPrivateLink\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c (privateNetworking == \"STATE_ENABLED\" ? 1 : 0); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        testServerlessPrivateLink.Add(new Redpanda.ServerlessPrivateLink($\"test-{range.Value}\", new()\n        {\n            Name = $\"{clusterName}-private-link\",\n            ResourceGroupId = test.Id,\n            CloudProvider = \"aws\",\n            ServerlessRegion = region,\n            AllowDeletion = allowPrivateLinkDeletion,\n            CloudProviderConfig = new Redpanda.Inputs.ServerlessPrivateLinkCloudProviderConfigArgs\n            {\n                Aws = new Redpanda.Inputs.ServerlessPrivateLinkCloudProviderConfigAwsArgs\n                {\n                    AllowedPrincipals = allowedPrincipals,\n                },\n            },\n        }));\n    }\n    var testServerlessCluster = new Redpanda.ServerlessCluster(\"test\", new()\n    {\n        Name = clusterName,\n        ResourceGroupId = test.Id,\n        ServerlessRegion = region,\n        PrivateLinkId = privateNetworking == \"STATE_ENABLED\" ? testServerlessPrivateLink[0].Id : null,\n        NetworkingConfig = new Redpanda.Inputs.ServerlessClusterNetworkingConfigArgs\n        {\n            Public = publicNetworking,\n            Private = privateNetworking,\n        },\n    });\n\n    var testTopic = new Redpanda.Topic(\"test\", new()\n    {\n        Name = topicName,\n        PartitionCount = partitionCount,\n        ReplicationFactor = replicationFactor,\n        ClusterApiUrl = testServerlessCluster.ClusterApiUrl,\n        AllowDeletion = true,\n    });\n\n    var testUser = new Redpanda.User(\"test\", new()\n    {\n        Name = userName,\n        Password = userPw,\n        Mechanism = mechanism,\n        ClusterApiUrl = testServerlessCluster.ClusterApiUrl,\n        AllowDeletion = userAllowDeletion,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/redpanda/redpanda\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := redpanda.NewResourceGroup(ctx, \"test\", \u0026redpanda.ResourceGroupArgs{\n\t\t\tName: pulumi.Any(resourceGroupName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar tmp0 float64\n\t\tif privateNetworking == \"STATE_ENABLED\" {\n\t\t\ttmp0 = 1\n\t\t} else {\n\t\t\ttmp0 = 0\n\t\t}\n\t\tvar testServerlessPrivateLink []*redpanda.ServerlessPrivateLink\n\t\tfor index := 0; index \u003c tmp0; index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := redpanda.NewServerlessPrivateLink(ctx, fmt.Sprintf(\"test-%v\", key0), \u0026redpanda.ServerlessPrivateLinkArgs{\n\t\t\t\tName:             pulumi.Sprintf(\"%v-private-link\", clusterName),\n\t\t\t\tResourceGroupId:  test.ID(),\n\t\t\t\tCloudProvider:    pulumi.String(\"aws\"),\n\t\t\t\tServerlessRegion: pulumi.Any(region),\n\t\t\t\tAllowDeletion:    pulumi.Any(allowPrivateLinkDeletion),\n\t\t\t\tCloudProviderConfig: \u0026redpanda.ServerlessPrivateLinkCloudProviderConfigArgs{\n\t\t\t\t\tAws: \u0026redpanda.ServerlessPrivateLinkCloudProviderConfigAwsArgs{\n\t\t\t\t\t\tAllowedPrincipals: pulumi.Any(allowedPrincipals),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\ttestServerlessPrivateLink = append(testServerlessPrivateLink, __res)\n\t\t}\n\t\tvar tmp1 pulumi.String\n\t\tif privateNetworking == \"STATE_ENABLED\" {\n\t\t\ttmp1 = testServerlessPrivateLink[0].ID()\n\t\t} else {\n\t\t\ttmp1 = nil\n\t\t}\n\t\ttestServerlessCluster, err := redpanda.NewServerlessCluster(ctx, \"test\", \u0026redpanda.ServerlessClusterArgs{\n\t\t\tName:             pulumi.Any(clusterName),\n\t\t\tResourceGroupId:  test.ID(),\n\t\t\tServerlessRegion: pulumi.Any(region),\n\t\t\tPrivateLinkId:    pulumi.String(tmp1),\n\t\t\tNetworkingConfig: \u0026redpanda.ServerlessClusterNetworkingConfigArgs{\n\t\t\t\tPublic:  pulumi.Any(publicNetworking),\n\t\t\t\tPrivate: pulumi.Any(privateNetworking),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redpanda.NewTopic(ctx, \"test\", \u0026redpanda.TopicArgs{\n\t\t\tName:              pulumi.Any(topicName),\n\t\t\tPartitionCount:    pulumi.Any(partitionCount),\n\t\t\tReplicationFactor: pulumi.Any(replicationFactor),\n\t\t\tClusterApiUrl:     testServerlessCluster.ClusterApiUrl,\n\t\t\tAllowDeletion:     pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redpanda.NewUser(ctx, \"test\", \u0026redpanda.UserArgs{\n\t\t\tName:          pulumi.Any(userName),\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tMechanism:     pulumi.Any(mechanism),\n\t\t\tClusterApiUrl: testServerlessCluster.ClusterApiUrl,\n\t\t\tAllowDeletion: pulumi.Any(userAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.redpanda.ResourceGroup;\nimport com.pulumi.redpanda.ResourceGroupArgs;\nimport com.pulumi.redpanda.ServerlessPrivateLink;\nimport com.pulumi.redpanda.ServerlessPrivateLinkArgs;\nimport com.pulumi.redpanda.inputs.ServerlessPrivateLinkCloudProviderConfigArgs;\nimport com.pulumi.redpanda.inputs.ServerlessPrivateLinkCloudProviderConfigAwsArgs;\nimport com.pulumi.redpanda.ServerlessCluster;\nimport com.pulumi.redpanda.ServerlessClusterArgs;\nimport com.pulumi.redpanda.inputs.ServerlessClusterNetworkingConfigArgs;\nimport com.pulumi.redpanda.Topic;\nimport com.pulumi.redpanda.TopicArgs;\nimport com.pulumi.redpanda.User;\nimport com.pulumi.redpanda.UserArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new ResourceGroup(\"test\", ResourceGroupArgs.builder()\n            .name(resourceGroupName)\n            .build());\n\n        for (var i = 0; i \u003c (privateNetworking == \"STATE_ENABLED\" ? 1 : 0); i++) {\n            new ServerlessPrivateLink(\"testServerlessPrivateLink-\" + i, ServerlessPrivateLinkArgs.builder()\n                .name(String.format(\"%s-private-link\", clusterName))\n                .resourceGroupId(test.id())\n                .cloudProvider(\"aws\")\n                .serverlessRegion(region)\n                .allowDeletion(allowPrivateLinkDeletion)\n                .cloudProviderConfig(ServerlessPrivateLinkCloudProviderConfigArgs.builder()\n                    .aws(ServerlessPrivateLinkCloudProviderConfigAwsArgs.builder()\n                        .allowedPrincipals(allowedPrincipals)\n                        .build())\n                    .build())\n                .build());\n\n        \n}\n        var testServerlessCluster = new ServerlessCluster(\"testServerlessCluster\", ServerlessClusterArgs.builder()\n            .name(clusterName)\n            .resourceGroupId(test.id())\n            .serverlessRegion(region)\n            .privateLinkId(privateNetworking == \"STATE_ENABLED\" ? testServerlessPrivateLink[0].id() : null)\n            .networkingConfig(ServerlessClusterNetworkingConfigArgs.builder()\n                .public_(publicNetworking)\n                .private_(privateNetworking)\n                .build())\n            .build());\n\n        var testTopic = new Topic(\"testTopic\", TopicArgs.builder()\n            .name(topicName)\n            .partitionCount(partitionCount)\n            .replicationFactor(replicationFactor)\n            .clusterApiUrl(testServerlessCluster.clusterApiUrl())\n            .allowDeletion(true)\n            .build());\n\n        var testUser = new User(\"testUser\", UserArgs.builder()\n            .name(userName)\n            .password(userPw)\n            .mechanism(mechanism)\n            .clusterApiUrl(testServerlessCluster.clusterApiUrl())\n            .allowDeletion(userAllowDeletion)\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## API Reference\n\nFor more information, see the [Redpanda Cloud Control Plane API documentation](https://docs.redpanda.com/api/cloud-controlplane-api/).\n\n## Import\n\n```sh\n$ pulumi import redpanda:index/serverlessCluster:ServerlessCluster example serverlessClusterId\n```\n\n","properties":{"clusterApiUrl":{"type":"string","description":"The URL of the dataplane API for the serverless cluster\n","deprecationMessage":"Deprecated"},"consolePrivateUrl":{"type":"string","description":"Private Console URL for the serverless cluster\n"},"consoleUrl":{"type":"string","description":"Public Console URL for the serverless cluster\n"},"dataplaneApi":{"$ref":"#/types/redpanda:index%2FServerlessClusterDataplaneApi:ServerlessClusterDataplaneApi","description":"Dataplane API endpoints for the serverless cluster\n"},"kafkaApi":{"$ref":"#/types/redpanda:index%2FServerlessClusterKafkaApi:ServerlessClusterKafkaApi","description":"Kafka API endpoints for the serverless cluster\n"},"name":{"type":"string","description":"Name of the serverless cluster\n"},"networkingConfig":{"$ref":"#/types/redpanda:index%2FServerlessClusterNetworkingConfig:ServerlessClusterNetworkingConfig","description":"Network configuration controlling public/private access to the cluster\n"},"privateLinkId":{"type":"string","description":"Private link ID for the serverless cluster. Must be set if private networking is enabled.\n"},"prometheus":{"$ref":"#/types/redpanda:index%2FServerlessClusterPrometheus:ServerlessClusterPrometheus","description":"Prometheus metrics endpoints for the serverless cluster\n"},"resourceGroupId":{"type":"string","description":"The ID of the Resource Group in which to create the serverless cluster\n"},"schemaRegistry":{"$ref":"#/types/redpanda:index%2FServerlessClusterSchemaRegistry:ServerlessClusterSchemaRegistry","description":"Schema Registry endpoints for the serverless cluster\n"},"serverlessRegion":{"type":"string","description":"Redpanda specific region of the serverless cluster\n"}},"type":"object","required":["clusterApiUrl","consolePrivateUrl","consoleUrl","dataplaneApi","kafkaApi","name","networkingConfig","privateLinkId","prometheus","resourceGroupId","schemaRegistry","serverlessRegion"],"inputProperties":{"name":{"type":"string","description":"Name of the serverless cluster\n"},"networkingConfig":{"$ref":"#/types/redpanda:index%2FServerlessClusterNetworkingConfig:ServerlessClusterNetworkingConfig","description":"Network configuration controlling public/private access to the cluster\n"},"privateLinkId":{"type":"string","description":"Private link ID for the serverless cluster. Must be set if private networking is enabled.\n"},"resourceGroupId":{"type":"string","description":"The ID of the Resource Group in which to create the serverless cluster\n"},"serverlessRegion":{"type":"string","description":"Redpanda specific region of the serverless cluster\n"}},"requiredInputs":["resourceGroupId","serverlessRegion"],"stateInputs":{"description":"Input properties used for looking up and filtering ServerlessCluster resources.\n","properties":{"clusterApiUrl":{"type":"string","description":"The URL of the dataplane API for the serverless cluster\n","deprecationMessage":"Deprecated"},"consolePrivateUrl":{"type":"string","description":"Private Console URL for the serverless cluster\n"},"consoleUrl":{"type":"string","description":"Public Console URL for the serverless cluster\n"},"dataplaneApi":{"$ref":"#/types/redpanda:index%2FServerlessClusterDataplaneApi:ServerlessClusterDataplaneApi","description":"Dataplane API endpoints for the serverless cluster\n"},"kafkaApi":{"$ref":"#/types/redpanda:index%2FServerlessClusterKafkaApi:ServerlessClusterKafkaApi","description":"Kafka API endpoints for the serverless cluster\n"},"name":{"type":"string","description":"Name of the serverless cluster\n"},"networkingConfig":{"$ref":"#/types/redpanda:index%2FServerlessClusterNetworkingConfig:ServerlessClusterNetworkingConfig","description":"Network configuration controlling public/private access to the cluster\n"},"privateLinkId":{"type":"string","description":"Private link ID for the serverless cluster. Must be set if private networking is enabled.\n"},"prometheus":{"$ref":"#/types/redpanda:index%2FServerlessClusterPrometheus:ServerlessClusterPrometheus","description":"Prometheus metrics endpoints for the serverless cluster\n"},"resourceGroupId":{"type":"string","description":"The ID of the Resource Group in which to create the serverless cluster\n"},"schemaRegistry":{"$ref":"#/types/redpanda:index%2FServerlessClusterSchemaRegistry:ServerlessClusterSchemaRegistry","description":"Schema Registry endpoints for the serverless cluster\n"},"serverlessRegion":{"type":"string","description":"Redpanda specific region of the serverless cluster\n"}},"type":"object"}},"redpanda:index/serverlessPrivateLink:ServerlessPrivateLink":{"description":"Manages a Redpanda Serverless Private Link\n","properties":{"allowDeletion":{"type":"boolean","description":"Allows deletion of the serverless private link. Defaults to false.\n"},"cloudProvider":{"type":"string","description":"Cloud provider (aws)\n"},"cloudProviderConfig":{"$ref":"#/types/redpanda:index%2FServerlessPrivateLinkCloudProviderConfig:ServerlessPrivateLinkCloudProviderConfig","description":"Cloud provider specific configuration\n"},"createdAt":{"type":"string","description":"Timestamp when the serverless private link was created\n"},"name":{"type":"string","description":"Name of the serverless private link\n"},"resourceGroupId":{"type":"string","description":"The ID of the Resource Group in which to create the serverless private link\n"},"serverlessRegion":{"type":"string","description":"Redpanda serverless region\n"},"state":{"type":"string","description":"Current state of the serverless private link (STATE*CREATING, STATE*READY, STATE*DELETING, STATE*FAILED, STATE_UPDATING)\n"},"status":{"$ref":"#/types/redpanda:index%2FServerlessPrivateLinkStatus:ServerlessPrivateLinkStatus","description":"Cloud provider specific status information\n"},"updatedAt":{"type":"string","description":"Timestamp when the serverless private link was last updated. This value changes on every update operation.\n"}},"type":"object","required":["allowDeletion","cloudProvider","cloudProviderConfig","createdAt","name","resourceGroupId","serverlessRegion","state","status","updatedAt"],"inputProperties":{"allowDeletion":{"type":"boolean","description":"Allows deletion of the serverless private link. Defaults to false.\n"},"cloudProvider":{"type":"string","description":"Cloud provider (aws)\n"},"cloudProviderConfig":{"$ref":"#/types/redpanda:index%2FServerlessPrivateLinkCloudProviderConfig:ServerlessPrivateLinkCloudProviderConfig","description":"Cloud provider specific configuration\n"},"name":{"type":"string","description":"Name of the serverless private link\n"},"resourceGroupId":{"type":"string","description":"The ID of the Resource Group in which to create the serverless private link\n"},"serverlessRegion":{"type":"string","description":"Redpanda serverless region\n"}},"requiredInputs":["cloudProvider","cloudProviderConfig","resourceGroupId","serverlessRegion"],"stateInputs":{"description":"Input properties used for looking up and filtering ServerlessPrivateLink resources.\n","properties":{"allowDeletion":{"type":"boolean","description":"Allows deletion of the serverless private link. Defaults to false.\n"},"cloudProvider":{"type":"string","description":"Cloud provider (aws)\n"},"cloudProviderConfig":{"$ref":"#/types/redpanda:index%2FServerlessPrivateLinkCloudProviderConfig:ServerlessPrivateLinkCloudProviderConfig","description":"Cloud provider specific configuration\n"},"createdAt":{"type":"string","description":"Timestamp when the serverless private link was created\n"},"name":{"type":"string","description":"Name of the serverless private link\n"},"resourceGroupId":{"type":"string","description":"The ID of the Resource Group in which to create the serverless private link\n"},"serverlessRegion":{"type":"string","description":"Redpanda serverless region\n"},"state":{"type":"string","description":"Current state of the serverless private link (STATE*CREATING, STATE*READY, STATE*DELETING, STATE*FAILED, STATE_UPDATING)\n"},"status":{"$ref":"#/types/redpanda:index%2FServerlessPrivateLinkStatus:ServerlessPrivateLinkStatus","description":"Cloud provider specific status information\n"},"updatedAt":{"type":"string","description":"Timestamp when the serverless private link was last updated. This value changes on every update operation.\n"}},"type":"object"}},"redpanda:index/topic:Topic":{"description":"Topic represents a Kafka topic configuration\n\nCreates a topic in a Redpanda Cluster\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as redpanda from \"@pulumi/redpanda\";\n\nconst example = new redpanda.ResourceGroup(\"example\", {name: \"example-resource-group\"});\nconst exampleNetwork = new redpanda.Network(\"example\", {\n    name: \"example-network\",\n    resourceGroupId: example.id,\n    cloudProvider: \"aws\",\n    region: \"us-west-2\",\n    clusterType: \"dedicated\",\n    cidrBlock: \"10.0.0.0/20\",\n});\nconst exampleCluster = new redpanda.Cluster(\"example\", {\n    name: \"example-cluster\",\n    resourceGroupId: example.id,\n    networkId: exampleNetwork.id,\n    cloudProvider: \"aws\",\n    region: \"us-west-2\",\n    clusterType: \"dedicated\",\n    connectionType: \"public\",\n    throughputTier: \"tier-1-aws\",\n    zones: [\n        \"us-west-2a\",\n        \"us-west-2b\",\n        \"us-west-2c\",\n    ],\n});\nconst exampleTopic = new redpanda.Topic(\"example\", {\n    name: \"example-topic\",\n    partitionCount: 3,\n    replicationFactor: 3,\n    clusterApiUrl: exampleCluster.clusterApiUrl,\n    configuration: {\n        \"cleanup.policy\": \"delete\",\n        \"retention.ms\": \"604800000\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_redpanda as redpanda\n\nexample = redpanda.ResourceGroup(\"example\", name=\"example-resource-group\")\nexample_network = redpanda.Network(\"example\",\n    name=\"example-network\",\n    resource_group_id=example.id,\n    cloud_provider=\"aws\",\n    region=\"us-west-2\",\n    cluster_type=\"dedicated\",\n    cidr_block=\"10.0.0.0/20\")\nexample_cluster = redpanda.Cluster(\"example\",\n    name=\"example-cluster\",\n    resource_group_id=example.id,\n    network_id=example_network.id,\n    cloud_provider=\"aws\",\n    region=\"us-west-2\",\n    cluster_type=\"dedicated\",\n    connection_type=\"public\",\n    throughput_tier=\"tier-1-aws\",\n    zones=[\n        \"us-west-2a\",\n        \"us-west-2b\",\n        \"us-west-2c\",\n    ])\nexample_topic = redpanda.Topic(\"example\",\n    name=\"example-topic\",\n    partition_count=3,\n    replication_factor=3,\n    cluster_api_url=example_cluster.cluster_api_url,\n    configuration={\n        \"cleanup.policy\": \"delete\",\n        \"retention.ms\": \"604800000\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Redpanda = Pulumi.Redpanda;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Redpanda.ResourceGroup(\"example\", new()\n    {\n        Name = \"example-resource-group\",\n    });\n\n    var exampleNetwork = new Redpanda.Network(\"example\", new()\n    {\n        Name = \"example-network\",\n        ResourceGroupId = example.Id,\n        CloudProvider = \"aws\",\n        Region = \"us-west-2\",\n        ClusterType = \"dedicated\",\n        CidrBlock = \"10.0.0.0/20\",\n    });\n\n    var exampleCluster = new Redpanda.Cluster(\"example\", new()\n    {\n        Name = \"example-cluster\",\n        ResourceGroupId = example.Id,\n        NetworkId = exampleNetwork.Id,\n        CloudProvider = \"aws\",\n        Region = \"us-west-2\",\n        ClusterType = \"dedicated\",\n        ConnectionType = \"public\",\n        ThroughputTier = \"tier-1-aws\",\n        Zones = new[]\n        {\n            \"us-west-2a\",\n            \"us-west-2b\",\n            \"us-west-2c\",\n        },\n    });\n\n    var exampleTopic = new Redpanda.Topic(\"example\", new()\n    {\n        Name = \"example-topic\",\n        PartitionCount = 3,\n        ReplicationFactor = 3,\n        ClusterApiUrl = exampleCluster.ClusterApiUrl,\n        Configuration = \n        {\n            { \"cleanup.policy\", \"delete\" },\n            { \"retention.ms\", \"604800000\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/redpanda/redpanda\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := redpanda.NewResourceGroup(ctx, \"example\", \u0026redpanda.ResourceGroupArgs{\n\t\t\tName: pulumi.String(\"example-resource-group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetwork, err := redpanda.NewNetwork(ctx, \"example\", \u0026redpanda.NetworkArgs{\n\t\t\tName:            pulumi.String(\"example-network\"),\n\t\t\tResourceGroupId: example.ID(),\n\t\t\tCloudProvider:   pulumi.String(\"aws\"),\n\t\t\tRegion:          pulumi.String(\"us-west-2\"),\n\t\t\tClusterType:     pulumi.String(\"dedicated\"),\n\t\t\tCidrBlock:       pulumi.String(\"10.0.0.0/20\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleCluster, err := redpanda.NewCluster(ctx, \"example\", \u0026redpanda.ClusterArgs{\n\t\t\tName:            pulumi.String(\"example-cluster\"),\n\t\t\tResourceGroupId: example.ID(),\n\t\t\tNetworkId:       exampleNetwork.ID(),\n\t\t\tCloudProvider:   pulumi.String(\"aws\"),\n\t\t\tRegion:          pulumi.String(\"us-west-2\"),\n\t\t\tClusterType:     pulumi.String(\"dedicated\"),\n\t\t\tConnectionType:  pulumi.String(\"public\"),\n\t\t\tThroughputTier:  pulumi.String(\"tier-1-aws\"),\n\t\t\tZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-west-2a\"),\n\t\t\t\tpulumi.String(\"us-west-2b\"),\n\t\t\t\tpulumi.String(\"us-west-2c\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redpanda.NewTopic(ctx, \"example\", \u0026redpanda.TopicArgs{\n\t\t\tName:              pulumi.String(\"example-topic\"),\n\t\t\tPartitionCount:    pulumi.Float64(3),\n\t\t\tReplicationFactor: pulumi.Float64(3),\n\t\t\tClusterApiUrl:     exampleCluster.ClusterApiUrl,\n\t\t\tConfiguration: pulumi.StringMap{\n\t\t\t\t\"cleanup.policy\": pulumi.String(\"delete\"),\n\t\t\t\t\"retention.ms\":   pulumi.String(\"604800000\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.redpanda.ResourceGroup;\nimport com.pulumi.redpanda.ResourceGroupArgs;\nimport com.pulumi.redpanda.Network;\nimport com.pulumi.redpanda.NetworkArgs;\nimport com.pulumi.redpanda.Cluster;\nimport com.pulumi.redpanda.ClusterArgs;\nimport com.pulumi.redpanda.Topic;\nimport com.pulumi.redpanda.TopicArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new ResourceGroup(\"example\", ResourceGroupArgs.builder()\n            .name(\"example-resource-group\")\n            .build());\n\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .name(\"example-network\")\n            .resourceGroupId(example.id())\n            .cloudProvider(\"aws\")\n            .region(\"us-west-2\")\n            .clusterType(\"dedicated\")\n            .cidrBlock(\"10.0.0.0/20\")\n            .build());\n\n        var exampleCluster = new Cluster(\"exampleCluster\", ClusterArgs.builder()\n            .name(\"example-cluster\")\n            .resourceGroupId(example.id())\n            .networkId(exampleNetwork.id())\n            .cloudProvider(\"aws\")\n            .region(\"us-west-2\")\n            .clusterType(\"dedicated\")\n            .connectionType(\"public\")\n            .throughputTier(\"tier-1-aws\")\n            .zones(            \n                \"us-west-2a\",\n                \"us-west-2b\",\n                \"us-west-2c\")\n            .build());\n\n        var exampleTopic = new Topic(\"exampleTopic\", TopicArgs.builder()\n            .name(\"example-topic\")\n            .partitionCount(3.0)\n            .replicationFactor(3.0)\n            .clusterApiUrl(exampleCluster.clusterApiUrl())\n            .configuration(Map.ofEntries(\n                Map.entry(\"cleanup.policy\", \"delete\"),\n                Map.entry(\"retention.ms\", \"604800000\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: redpanda:ResourceGroup\n    properties:\n      name: example-resource-group\n  exampleNetwork:\n    type: redpanda:Network\n    name: example\n    properties:\n      name: example-network\n      resourceGroupId: ${example.id}\n      cloudProvider: aws\n      region: us-west-2\n      clusterType: dedicated\n      cidrBlock: 10.0.0.0/20\n  exampleCluster:\n    type: redpanda:Cluster\n    name: example\n    properties:\n      name: example-cluster\n      resourceGroupId: ${example.id}\n      networkId: ${exampleNetwork.id}\n      cloudProvider: aws\n      region: us-west-2\n      clusterType: dedicated\n      connectionType: public\n      throughputTier: tier-1-aws\n      zones:\n        - us-west-2a\n        - us-west-2b\n        - us-west-2c\n  exampleTopic:\n    type: redpanda:Topic\n    name: example\n    properties:\n      name: example-topic\n      partitionCount: 3\n      replicationFactor: 3\n      clusterApiUrl: ${exampleCluster.clusterApiUrl}\n      configuration:\n        cleanup.policy: delete\n        retention.ms: '604800000'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Limitations\n\nWe are not currently able to support topic creation in self hosted clusters. This is an area of active development so expect that to change soon.\n\n## API Reference\n\nFor more information, see the [Redpanda Cloud Data Plane API documentation](https://docs.redpanda.com/api/cloud-dataplane-api/).\n\n## Import\n\n```sh\n$ pulumi import redpanda:index/topic:Topic example topicName,clusterId\n```\n\nWhere clusterId is the ID of the cluster in Redpanda Cloud\n\n","properties":{"allowDeletion":{"type":"boolean","description":"Indicates whether the topic can be deleted.\n"},"clusterApiUrl":{"type":"string","description":"The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports\n"},"configuration":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of string key/value pairs of topic configurations.\n"},"name":{"type":"string","description":"The name of the topic.\n"},"partitionCount":{"type":"number","description":"The number of partitions for the topic. This determines how the data is distributed across brokers. Increases are fully supported without data loss. Decreases will destroy and recreate the topic if\u003cspan pulumi-lang-nodejs=\" allowDeletion \" pulumi-lang-dotnet=\" AllowDeletion \" pulumi-lang-go=\" allowDeletion \" pulumi-lang-python=\" allow_deletion \" pulumi-lang-yaml=\" allowDeletion \" pulumi-lang-java=\" allowDeletion \"\u003e allow_deletion \u003c/span\u003eis set to true (defaults to false).\n"},"replicationFactor":{"type":"number","description":"The replication factor for the topic, which defines how many copies of the data are kept across different brokers for fault tolerance.\n"}},"type":"object","required":["allowDeletion","clusterApiUrl","configuration","name","partitionCount","replicationFactor"],"inputProperties":{"allowDeletion":{"type":"boolean","description":"Indicates whether the topic can be deleted.\n"},"clusterApiUrl":{"type":"string","description":"The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports\n"},"configuration":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of string key/value pairs of topic configurations.\n"},"name":{"type":"string","description":"The name of the topic.\n"},"partitionCount":{"type":"number","description":"The number of partitions for the topic. This determines how the data is distributed across brokers. Increases are fully supported without data loss. Decreases will destroy and recreate the topic if\u003cspan pulumi-lang-nodejs=\" allowDeletion \" pulumi-lang-dotnet=\" AllowDeletion \" pulumi-lang-go=\" allowDeletion \" pulumi-lang-python=\" allow_deletion \" pulumi-lang-yaml=\" allowDeletion \" pulumi-lang-java=\" allowDeletion \"\u003e allow_deletion \u003c/span\u003eis set to true (defaults to false).\n"},"replicationFactor":{"type":"number","description":"The replication factor for the topic, which defines how many copies of the data are kept across different brokers for fault tolerance.\n"}},"requiredInputs":["clusterApiUrl"],"stateInputs":{"description":"Input properties used for looking up and filtering Topic resources.\n","properties":{"allowDeletion":{"type":"boolean","description":"Indicates whether the topic can be deleted.\n"},"clusterApiUrl":{"type":"string","description":"The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports\n"},"configuration":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of string key/value pairs of topic configurations.\n"},"name":{"type":"string","description":"The name of the topic.\n"},"partitionCount":{"type":"number","description":"The number of partitions for the topic. This determines how the data is distributed across brokers. Increases are fully supported without data loss. Decreases will destroy and recreate the topic if\u003cspan pulumi-lang-nodejs=\" allowDeletion \" pulumi-lang-dotnet=\" AllowDeletion \" pulumi-lang-go=\" allowDeletion \" pulumi-lang-python=\" allow_deletion \" pulumi-lang-yaml=\" allowDeletion \" pulumi-lang-java=\" allowDeletion \"\u003e allow_deletion \u003c/span\u003eis set to true (defaults to false).\n"},"replicationFactor":{"type":"number","description":"The replication factor for the topic, which defines how many copies of the data are kept across different brokers for fault tolerance.\n"}},"type":"object"}},"redpanda:index/user:User":{"description":"\n\n## Import\n\nBasic import with just user name and cluster ID\n\n```sh\n$ pulumi import redpanda:index/user:User example userName,clusterId\n```\n\nExtended import with password\n\n```sh\n$ pulumi import redpanda:index/user:User example userName,clusterId,password\n```\n\nExtended import with password and mechanism\n\n```sh\n$ pulumi import redpanda:index/user:User example userName,clusterId,password,mechanism\n```\n\nWhere:\n\n- `userName` is the name of the user\n\n- `clusterId` is the ID of the cluster in Redpanda Cloud\n\n- `password` (optional) is the user's password to set in state after import\n\n- `mechanism` (optional) is the authentication mechanism (e.g., `SCRAM-SHA-256`) and can only be passed in with password\n\n","properties":{"allowDeletion":{"type":"boolean","description":"Allows deletion of the user. If false, the user cannot be deleted and the resource will be removed from the state on destruction. Defaults to false."},"clusterApiUrl":{"type":"string","description":"The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports\n"},"mechanism":{"type":"string","description":"Which authentication method to use, see https://docs.redpanda.com/current/manage/security/authentication/ for more information"},"name":{"type":"string","description":"Name of the user, must be unique\n"},"password":{"type":"string","description":"Password of the user. Deprecated: use\u003cspan pulumi-lang-nodejs=\" passwordWo \" pulumi-lang-dotnet=\" PasswordWo \" pulumi-lang-go=\" passwordWo \" pulumi-lang-python=\" password_wo \" pulumi-lang-yaml=\" passwordWo \" pulumi-lang-java=\" passwordWo \"\u003e password_wo \u003c/span\u003einstead to avoid storing password in state.","deprecationMessage":"Deprecated","secret":true},"passwordWo":{"type":"string"},"passwordWoVersion":{"type":"number","description":"Version number for password_wo. Increment this value to trigger a password update when using password_wo."}},"type":"object","required":["allowDeletion","clusterApiUrl","name"],"inputProperties":{"allowDeletion":{"type":"boolean","description":"Allows deletion of the user. If false, the user cannot be deleted and the resource will be removed from the state on destruction. Defaults to false."},"clusterApiUrl":{"type":"string","description":"The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports\n"},"mechanism":{"type":"string","description":"Which authentication method to use, see https://docs.redpanda.com/current/manage/security/authentication/ for more information"},"name":{"type":"string","description":"Name of the user, must be unique\n"},"password":{"type":"string","description":"Password of the user. Deprecated: use\u003cspan pulumi-lang-nodejs=\" passwordWo \" pulumi-lang-dotnet=\" PasswordWo \" pulumi-lang-go=\" passwordWo \" pulumi-lang-python=\" password_wo \" pulumi-lang-yaml=\" passwordWo \" pulumi-lang-java=\" passwordWo \"\u003e password_wo \u003c/span\u003einstead to avoid storing password in state.","deprecationMessage":"Deprecated","secret":true},"passwordWo":{"type":"string"},"passwordWoVersion":{"type":"number","description":"Version number for password_wo. Increment this value to trigger a password update when using password_wo."}},"requiredInputs":["clusterApiUrl"],"stateInputs":{"description":"Input properties used for looking up and filtering User resources.\n","properties":{"allowDeletion":{"type":"boolean","description":"Allows deletion of the user. If false, the user cannot be deleted and the resource will be removed from the state on destruction. Defaults to false."},"clusterApiUrl":{"type":"string","description":"The cluster API URL. Changing this will prevent deletion of the resource on the existing cluster. It is generally a better idea to delete an existing resource and create a new one than to change this value unless you are planning to do state imports\n"},"mechanism":{"type":"string","description":"Which authentication method to use, see https://docs.redpanda.com/current/manage/security/authentication/ for more information"},"name":{"type":"string","description":"Name of the user, must be unique\n"},"password":{"type":"string","description":"Password of the user. Deprecated: use\u003cspan pulumi-lang-nodejs=\" passwordWo \" pulumi-lang-dotnet=\" PasswordWo \" pulumi-lang-go=\" passwordWo \" pulumi-lang-python=\" password_wo \" pulumi-lang-yaml=\" passwordWo \" pulumi-lang-java=\" passwordWo \"\u003e password_wo \u003c/span\u003einstead to avoid storing password in state.","deprecationMessage":"Deprecated","secret":true},"passwordWo":{"type":"string"},"passwordWoVersion":{"type":"number","description":"Version number for password_wo. Increment this value to trigger a password update when using password_wo."}},"type":"object"}}},"functions":{"pulumi:providers:redpanda/terraformConfig":{"description":"This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.","inputs":{"properties":{"__self__":{"$ref":"#/resources/pulumi:providers:redpanda"}},"type":"object","required":["__self__"]},"outputs":{"properties":{"result":{"additionalProperties":{"$ref":"pulumi.json#/Any"},"type":"object"}},"required":["result"],"type":"object"}},"redpanda:index/getCluster:getCluster":{"description":"Data source for a Redpanda Cloud cluster\n\n\n## Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as redpanda from \"@pulumi/redpanda\";\n\nconst example = redpanda.getCluster({\n    id: \"cluster_id\",\n});\n```\n```python\nimport pulumi\nimport pulumi_redpanda as redpanda\n\nexample = redpanda.get_cluster(id=\"cluster_id\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Redpanda = Pulumi.Redpanda;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Redpanda.GetCluster.Invoke(new()\n    {\n        Id = \"cluster_id\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/redpanda/redpanda\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := redpanda.LookupCluster(ctx, \u0026redpanda.LookupClusterArgs{\n\t\t\tId: \"cluster_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.redpanda.RedpandaFunctions;\nimport com.pulumi.redpanda.inputs.GetClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RedpandaFunctions.getCluster(GetClusterArgs.builder()\n            .id(\"cluster_id\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: redpanda:getCluster\n      arguments:\n        id: cluster_id\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example Usage of a data source BYOC to manage users and ACLs\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as redpanda from \"@pulumi/redpanda\";\n\nconst test = redpanda.getCluster({\n    id: clusterId,\n});\nconst testTopic = new redpanda.Topic(\"test\", {\n    name: topicName,\n    partitionCount: partitionCount,\n    replicationFactor: replicationFactor,\n    clusterApiUrl: test.then(test =\u003e test.clusterApiUrl),\n    allowDeletion: true,\n    configuration: topicConfig,\n});\nconst testUser = new redpanda.User(\"test\", {\n    name: userName,\n    password: userPw,\n    mechanism: mechanism,\n    clusterApiUrl: test.then(test =\u003e test.clusterApiUrl),\n    allowDeletion: userAllowDeletion,\n});\nconst testAcl = new redpanda.Acl(\"test\", {\n    resourceType: \"CLUSTER\",\n    resourceName: \"kafka-cluster\",\n    resourcePatternType: \"LITERAL\",\n    principal: pulumi.interpolate`User:${testUser.name}`,\n    host: \"*\",\n    operation: \"ALTER\",\n    permissionType: \"ALLOW\",\n    clusterApiUrl: test.then(test =\u003e test.clusterApiUrl),\n    allowDeletion: aclAllowDeletion,\n});\n```\n```python\nimport pulumi\nimport pulumi_redpanda as redpanda\n\ntest = redpanda.get_cluster(id=cluster_id)\ntest_topic = redpanda.Topic(\"test\",\n    name=topic_name,\n    partition_count=partition_count,\n    replication_factor=replication_factor,\n    cluster_api_url=test.cluster_api_url,\n    allow_deletion=True,\n    configuration=topic_config)\ntest_user = redpanda.User(\"test\",\n    name=user_name,\n    password=user_pw,\n    mechanism=mechanism,\n    cluster_api_url=test.cluster_api_url,\n    allow_deletion=user_allow_deletion)\ntest_acl = redpanda.Acl(\"test\",\n    resource_type=\"CLUSTER\",\n    resource_name_=\"kafka-cluster\",\n    resource_pattern_type=\"LITERAL\",\n    principal=test_user.name.apply(lambda name: f\"User:{name}\"),\n    host=\"*\",\n    operation=\"ALTER\",\n    permission_type=\"ALLOW\",\n    cluster_api_url=test.cluster_api_url,\n    allow_deletion=acl_allow_deletion)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Redpanda = Pulumi.Redpanda;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Redpanda.GetCluster.Invoke(new()\n    {\n        Id = clusterId,\n    });\n\n    var testTopic = new Redpanda.Topic(\"test\", new()\n    {\n        Name = topicName,\n        PartitionCount = partitionCount,\n        ReplicationFactor = replicationFactor,\n        ClusterApiUrl = test.Apply(getClusterResult =\u003e getClusterResult.ClusterApiUrl),\n        AllowDeletion = true,\n        Configuration = topicConfig,\n    });\n\n    var testUser = new Redpanda.User(\"test\", new()\n    {\n        Name = userName,\n        Password = userPw,\n        Mechanism = mechanism,\n        ClusterApiUrl = test.Apply(getClusterResult =\u003e getClusterResult.ClusterApiUrl),\n        AllowDeletion = userAllowDeletion,\n    });\n\n    var testAcl = new Redpanda.Acl(\"test\", new()\n    {\n        ResourceType = \"CLUSTER\",\n        ResourceName = \"kafka-cluster\",\n        ResourcePatternType = \"LITERAL\",\n        Principal = testUser.Name.Apply(name =\u003e $\"User:{name}\"),\n        Host = \"*\",\n        Operation = \"ALTER\",\n        PermissionType = \"ALLOW\",\n        ClusterApiUrl = test.Apply(getClusterResult =\u003e getClusterResult.ClusterApiUrl),\n        AllowDeletion = aclAllowDeletion,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/redpanda/redpanda\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := redpanda.LookupCluster(ctx, \u0026redpanda.LookupClusterArgs{\n\t\t\tId: clusterId,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redpanda.NewTopic(ctx, \"test\", \u0026redpanda.TopicArgs{\n\t\t\tName:              pulumi.Any(topicName),\n\t\t\tPartitionCount:    pulumi.Any(partitionCount),\n\t\t\tReplicationFactor: pulumi.Any(replicationFactor),\n\t\t\tClusterApiUrl:     pulumi.String(test.ClusterApiUrl),\n\t\t\tAllowDeletion:     pulumi.Bool(true),\n\t\t\tConfiguration:     pulumi.Any(topicConfig),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestUser, err := redpanda.NewUser(ctx, \"test\", \u0026redpanda.UserArgs{\n\t\t\tName:          pulumi.Any(userName),\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tMechanism:     pulumi.Any(mechanism),\n\t\t\tClusterApiUrl: pulumi.String(test.ClusterApiUrl),\n\t\t\tAllowDeletion: pulumi.Any(userAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redpanda.NewAcl(ctx, \"test\", \u0026redpanda.AclArgs{\n\t\t\tResourceType:        pulumi.String(\"CLUSTER\"),\n\t\t\tResourceName:        pulumi.String(\"kafka-cluster\"),\n\t\t\tResourcePatternType: pulumi.String(\"LITERAL\"),\n\t\t\tPrincipal: testUser.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"User:%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tHost:           pulumi.String(\"*\"),\n\t\t\tOperation:      pulumi.String(\"ALTER\"),\n\t\t\tPermissionType: pulumi.String(\"ALLOW\"),\n\t\t\tClusterApiUrl:  pulumi.String(test.ClusterApiUrl),\n\t\t\tAllowDeletion:  pulumi.Any(aclAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.redpanda.RedpandaFunctions;\nimport com.pulumi.redpanda.inputs.GetClusterArgs;\nimport com.pulumi.redpanda.Topic;\nimport com.pulumi.redpanda.TopicArgs;\nimport com.pulumi.redpanda.User;\nimport com.pulumi.redpanda.UserArgs;\nimport com.pulumi.redpanda.Acl;\nimport com.pulumi.redpanda.AclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = RedpandaFunctions.getCluster(GetClusterArgs.builder()\n            .id(clusterId)\n            .build());\n\n        var testTopic = new Topic(\"testTopic\", TopicArgs.builder()\n            .name(topicName)\n            .partitionCount(partitionCount)\n            .replicationFactor(replicationFactor)\n            .clusterApiUrl(test.clusterApiUrl())\n            .allowDeletion(true)\n            .configuration(topicConfig)\n            .build());\n\n        var testUser = new User(\"testUser\", UserArgs.builder()\n            .name(userName)\n            .password(userPw)\n            .mechanism(mechanism)\n            .clusterApiUrl(test.clusterApiUrl())\n            .allowDeletion(userAllowDeletion)\n            .build());\n\n        var testAcl = new Acl(\"testAcl\", AclArgs.builder()\n            .resourceType(\"CLUSTER\")\n            .resourceName(\"kafka-cluster\")\n            .resourcePatternType(\"LITERAL\")\n            .principal(testUser.name().applyValue(_name -\u003e String.format(\"User:%s\", _name)))\n            .host(\"*\")\n            .operation(\"ALTER\")\n            .permissionType(\"ALLOW\")\n            .clusterApiUrl(test.clusterApiUrl())\n            .allowDeletion(aclAllowDeletion)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testTopic:\n    type: redpanda:Topic\n    name: test\n    properties:\n      name: ${topicName}\n      partitionCount: ${partitionCount}\n      replicationFactor: ${replicationFactor}\n      clusterApiUrl: ${test.clusterApiUrl}\n      allowDeletion: true\n      configuration: ${topicConfig}\n  testUser:\n    type: redpanda:User\n    name: test\n    properties:\n      name: ${userName}\n      password: ${userPw}\n      mechanism: ${mechanism}\n      clusterApiUrl: ${test.clusterApiUrl}\n      allowDeletion: ${userAllowDeletion}\n  testAcl:\n    type: redpanda:Acl\n    name: test\n    properties:\n      resourceType: CLUSTER\n      resourceName: kafka-cluster\n      resourcePatternType: LITERAL\n      principal: User:${testUser.name}\n      host: '*'\n      operation: ALTER\n      permissionType: ALLOW\n      clusterApiUrl: ${test.clusterApiUrl}\n      allowDeletion: ${aclAllowDeletion}\nvariables:\n  test:\n    fn::invoke:\n      function: redpanda:getCluster\n      arguments:\n        id: ${clusterId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Limitations\n\nCan only be used with Redpanda Cloud Dedicated and BYOC clusters.\n","inputs":{"description":"A collection of arguments for invoking getCluster.\n","properties":{"id":{"type":"string","description":"ID of the cluster. ID is an output from the Create Cluster endpoint and cannot be set by the caller.\n"},"timeouts":{"$ref":"#/types/redpanda:index%2FgetClusterTimeouts:getClusterTimeouts"}},"type":"object","required":["id"]},"outputs":{"description":"A collection of values returned by getCluster.\n","properties":{"allowDeletion":{"description":"Whether cluster deletion is allowed.\n","type":"boolean"},"awsPrivateLink":{"$ref":"#/types/redpanda:index%2FgetClusterAwsPrivateLink:getClusterAwsPrivateLink","description":"AWS PrivateLink configuration.\n"},"azurePrivateLink":{"$ref":"#/types/redpanda:index%2FgetClusterAzurePrivateLink:getClusterAzurePrivateLink","description":"Azure Private Link configuration.\n"},"cloudProvider":{"description":"Cloud provider where resources are created.\n","type":"string"},"clusterApiUrl":{"description":"The URL of the cluster API.\n","type":"string"},"clusterConfiguration":{"$ref":"#/types/redpanda:index%2FgetClusterClusterConfiguration:getClusterClusterConfiguration","description":"Configuration for the cluster.\n"},"clusterType":{"description":"Cluster type. Type is immutable and can only be set on cluster creation.\n","type":"string"},"connectionType":{"description":"Cluster connection type. Private clusters are not exposed to the internet. For BYOC clusters, private is best-practice.\n","type":"string"},"createdAt":{"description":"Timestamp when the cluster was created.\n","type":"string"},"customerManagedResources":{"$ref":"#/types/redpanda:index%2FgetClusterCustomerManagedResources:getClusterCustomerManagedResources","description":"Customer managed resources configuration for the cluster.\n"},"gcpGlobalAccessEnabled":{"description":"If true, GCP global access is enabled.\n","type":"boolean"},"gcpPrivateServiceConnect":{"$ref":"#/types/redpanda:index%2FgetClusterGcpPrivateServiceConnect:getClusterGcpPrivateServiceConnect","description":"GCP Private Service Connect configuration.\n"},"httpProxy":{"$ref":"#/types/redpanda:index%2FgetClusterHttpProxy:getClusterHttpProxy","description":"HTTP Proxy properties.\n"},"id":{"description":"ID of the cluster. ID is an output from the Create Cluster endpoint and cannot be set by the caller.\n","type":"string"},"kafkaApi":{"$ref":"#/types/redpanda:index%2FgetClusterKafkaApi:getClusterKafkaApi","description":"Cluster's Kafka API properties.\n"},"kafkaConnect":{"$ref":"#/types/redpanda:index%2FgetClusterKafkaConnect:getClusterKafkaConnect","description":"Kafka Connect configuration.\n"},"maintenanceWindowConfig":{"$ref":"#/types/redpanda:index%2FgetClusterMaintenanceWindowConfig:getClusterMaintenanceWindowConfig","description":"Maintenance window configuration for the cluster.\n"},"name":{"description":"Unique name of the cluster.\n","type":"string"},"networkId":{"description":"Network ID where cluster is placed.\n","type":"string"},"prometheus":{"$ref":"#/types/redpanda:index%2FgetClusterPrometheus:getClusterPrometheus","description":"Prometheus metrics endpoint properties.\n"},"readReplicaClusterIds":{"description":"IDs of clusters that can create read-only topics from this cluster.\n","items":{"type":"string"},"type":"array"},"redpandaConsole":{"$ref":"#/types/redpanda:index%2FgetClusterRedpandaConsole:getClusterRedpandaConsole","description":"Redpanda Console properties.\n"},"redpandaVersion":{"description":"Current Redpanda version of the cluster.\n","type":"string"},"region":{"description":"Cloud provider region.\n","type":"string"},"resourceGroupId":{"description":"Resource group ID of the cluster.\n","type":"string"},"schemaRegistry":{"$ref":"#/types/redpanda:index%2FgetClusterSchemaRegistry:getClusterSchemaRegistry","description":"Schema Registry properties.\n"},"state":{"description":"Current state of the cluster.\n","type":"string"},"stateDescription":{"$ref":"#/types/redpanda:index%2FgetClusterStateDescription:getClusterStateDescription","description":"Detailed state description when cluster is in a non-ready state.\n"},"tags":{"additionalProperties":{"type":"string"},"description":"Tags placed on cloud resources.\n","type":"object"},"throughputTier":{"description":"Usage tier of the cluster.\n","type":"string"},"timeouts":{"$ref":"#/types/redpanda:index%2FgetClusterTimeouts:getClusterTimeouts"},"zones":{"description":"Zones of the cluster. Must be valid zones within the selected region. If multiple zones are used, the cluster is a multi-AZ cluster.\n","items":{"type":"string"},"type":"array"}},"required":["allowDeletion","awsPrivateLink","azurePrivateLink","cloudProvider","clusterApiUrl","clusterConfiguration","clusterType","connectionType","createdAt","customerManagedResources","gcpGlobalAccessEnabled","gcpPrivateServiceConnect","httpProxy","id","kafkaApi","kafkaConnect","maintenanceWindowConfig","name","networkId","prometheus","readReplicaClusterIds","redpandaConsole","redpandaVersion","region","resourceGroupId","schemaRegistry","state","stateDescription","tags","throughputTier","zones"],"type":"object"}},"redpanda:index/getNetwork:getNetwork":{"description":"Data source for a Redpanda Cloud network\n\n\n## Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as redpanda from \"@pulumi/redpanda\";\n\nconst example = redpanda.getNetwork({\n    id: \"network_id\",\n});\n```\n```python\nimport pulumi\nimport pulumi_redpanda as redpanda\n\nexample = redpanda.get_network(id=\"network_id\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Redpanda = Pulumi.Redpanda;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Redpanda.GetNetwork.Invoke(new()\n    {\n        Id = \"network_id\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/redpanda/redpanda\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := redpanda.LookupNetwork(ctx, \u0026redpanda.LookupNetworkArgs{\n\t\t\tId: \"network_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.redpanda.RedpandaFunctions;\nimport com.pulumi.redpanda.inputs.GetNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RedpandaFunctions.getNetwork(GetNetworkArgs.builder()\n            .id(\"network_id\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: redpanda:getNetwork\n      arguments:\n        id: network_id\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNetwork.\n","properties":{"id":{"type":"string","description":"UUID of the network\n"}},"type":"object","required":["id"]},"outputs":{"description":"A collection of values returned by getNetwork.\n","properties":{"cidrBlock":{"description":"The\u003cspan pulumi-lang-nodejs=\" cidrBlock \" pulumi-lang-dotnet=\" CidrBlock \" pulumi-lang-go=\" cidrBlock \" pulumi-lang-python=\" cidr_block \" pulumi-lang-yaml=\" cidrBlock \" pulumi-lang-java=\" cidrBlock \"\u003e cidr_block \u003c/span\u003eto create the network in\n","type":"string"},"cloudProvider":{"description":"The cloud provider to create the network in. Can also be set at the provider level\n","type":"string"},"clusterType":{"description":"The type of cluster this network is associated with, can be one of dedicated or cloud\n","type":"string"},"customerManagedResources":{"$ref":"#/types/redpanda:index%2FgetNetworkCustomerManagedResources:getNetworkCustomerManagedResources"},"id":{"description":"UUID of the network\n","type":"string"},"name":{"description":"Name of the network\n","type":"string"},"region":{"description":"The region to create the network in. Can also be set at the provider level\n","type":"string"},"resourceGroupId":{"description":"The ID of the resource group in which to create the network\n","type":"string"}},"required":["cidrBlock","cloudProvider","clusterType","customerManagedResources","id","name","region","resourceGroupId"],"type":"object"}},"redpanda:index/getRegion:getRegion":{"description":"Data source for a Redpanda Cloud region\n","inputs":{"description":"A collection of arguments for invoking getRegion.\n","properties":{"cloudProvider":{"type":"string","description":"Cloud provider where the region exists\n"},"name":{"type":"string","description":"Name of the region\n"}},"type":"object","required":["cloudProvider","name"]},"outputs":{"description":"A collection of values returned by getRegion.\n","properties":{"cloudProvider":{"description":"Cloud provider where the region exists\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"description":"Name of the region\n","type":"string"},"zones":{"description":"Zones available in the region\n","items":{"type":"string"},"type":"array"}},"required":["cloudProvider","id","name","zones"],"type":"object"}},"redpanda:index/getRegions:getRegions":{"description":"Data source for a list of Redpanda Cloud regions\n","inputs":{"description":"A collection of arguments for invoking getRegions.\n","properties":{"cloudProvider":{"type":"string","description":"Cloud provider where the regions exist\n"}},"type":"object","required":["cloudProvider"]},"outputs":{"description":"A collection of values returned by getRegions.\n","properties":{"cloudProvider":{"description":"Cloud provider where the regions exist\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"regions":{"description":"Regions available for the cloud provider\n","items":{"$ref":"#/types/redpanda:index%2FgetRegionsRegion:getRegionsRegion"},"type":"array"}},"required":["cloudProvider","id","regions"],"type":"object"}},"redpanda:index/getResourceGroup:getResourceGroup":{"description":"Data source for a Redpanda Cloud resource group\n\n## Usage\n\n### Search by ID\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as redpanda from \"@pulumi/redpanda\";\n\nconst example = redpanda.getResourceGroup({\n    id: \"resource_group_id\",\n});\n```\n```python\nimport pulumi\nimport pulumi_redpanda as redpanda\n\nexample = redpanda.get_resource_group(id=\"resource_group_id\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Redpanda = Pulumi.Redpanda;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Redpanda.GetResourceGroup.Invoke(new()\n    {\n        Id = \"resource_group_id\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/redpanda/redpanda\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := redpanda.LookupResourceGroup(ctx, \u0026redpanda.LookupResourceGroupArgs{\n\t\t\tId: pulumi.StringRef(\"resource_group_id\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.redpanda.RedpandaFunctions;\nimport com.pulumi.redpanda.inputs.GetResourceGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RedpandaFunctions.getResourceGroup(GetResourceGroupArgs.builder()\n            .id(\"resource_group_id\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: redpanda:getResourceGroup\n      arguments:\n        id: resource_group_id\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Search by name\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as redpanda from \"@pulumi/redpanda\";\n\nconst example = redpanda.getResourceGroup({\n    name: \"default\",\n});\n```\n```python\nimport pulumi\nimport pulumi_redpanda as redpanda\n\nexample = redpanda.get_resource_group(name=\"default\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Redpanda = Pulumi.Redpanda;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Redpanda.GetResourceGroup.Invoke(new()\n    {\n        Name = \"default\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/redpanda/redpanda\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := redpanda.LookupResourceGroup(ctx, \u0026redpanda.LookupResourceGroupArgs{\n\t\t\tName: pulumi.StringRef(\"default\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.redpanda.RedpandaFunctions;\nimport com.pulumi.redpanda.inputs.GetResourceGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RedpandaFunctions.getResourceGroup(GetResourceGroupArgs.builder()\n            .name(\"default\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: redpanda:getResourceGroup\n      arguments:\n        name: default\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getResourceGroup.\n","properties":{"id":{"type":"string","description":"UUID of the resource group\n"},"name":{"type":"string","description":"Name of the resource group\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getResourceGroup.\n","properties":{"id":{"description":"UUID of the resource group\n","type":"string"},"name":{"description":"Name of the resource group\n","type":"string"}},"required":["id","name"],"type":"object"}},"redpanda:index/getSchema:getSchema":{"description":"Schema data source allows you to retrieve information about a Schema Registry schema\n","inputs":{"description":"A collection of arguments for invoking getSchema.\n","properties":{"clusterId":{"type":"string","description":"The ID of the cluster where the schema is stored.\n"},"subject":{"type":"string","description":"The subject name for the schema.\n"},"version":{"type":"number","description":"The version of the schema. If not specified, the latest version is used.\n"}},"type":"object","required":["clusterId","subject"]},"outputs":{"description":"A collection of values returned by getSchema.\n","properties":{"clusterId":{"description":"The ID of the cluster where the schema is stored.\n","type":"string"},"id":{"description":"The unique identifier for the schema.\n","type":"number"},"references":{"description":"List of schema references.\n","items":{"$ref":"#/types/redpanda:index%2FgetSchemaReference:getSchemaReference"},"type":"array"},"schema":{"description":"The schema definition in JSON format.\n","type":"string"},"schemaType":{"description":"The type of schema (AVRO, JSON, PROTOBUF).\n","type":"string"},"subject":{"description":"The subject name for the schema.\n","type":"string"},"version":{"description":"The version of the schema. If not specified, the latest version is used.\n","type":"number"}},"required":["clusterId","id","references","schema","schemaType","subject","version"],"type":"object"}},"redpanda:index/getServerlessCluster:getServerlessCluster":{"description":"Data source for a Redpanda Cloud serverless cluster\n\n\n## Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as redpanda from \"@pulumi/redpanda\";\n\nconst example = redpanda.getServerlessCluster({\n    id: \"serverless_cluster_id\",\n});\n```\n```python\nimport pulumi\nimport pulumi_redpanda as redpanda\n\nexample = redpanda.get_serverless_cluster(id=\"serverless_cluster_id\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Redpanda = Pulumi.Redpanda;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Redpanda.GetServerlessCluster.Invoke(new()\n    {\n        Id = \"serverless_cluster_id\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/redpanda/redpanda\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := redpanda.LookupServerlessCluster(ctx, \u0026redpanda.LookupServerlessClusterArgs{\n\t\t\tId: \"serverless_cluster_id\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.redpanda.RedpandaFunctions;\nimport com.pulumi.redpanda.inputs.GetServerlessClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = RedpandaFunctions.getServerlessCluster(GetServerlessClusterArgs.builder()\n            .id(\"serverless_cluster_id\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: redpanda:getServerlessCluster\n      arguments:\n        id: serverless_cluster_id\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example Usage to create a serverless cluster\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as redpanda from \"@pulumi/redpanda\";\n\nconst test = new redpanda.ResourceGroup(\"test\", {name: resourceGroupName});\nconst testServerlessPrivateLink: redpanda.ServerlessPrivateLink[] = [];\nfor (const range = {value: 0}; range.value \u003c (privateNetworking == \"STATE_ENABLED\" ? 1 : 0); range.value++) {\n    testServerlessPrivateLink.push(new redpanda.ServerlessPrivateLink(`test-${range.value}`, {\n        name: `${clusterName}-private-link`,\n        resourceGroupId: test.id,\n        cloudProvider: \"aws\",\n        serverlessRegion: region,\n        allowDeletion: allowPrivateLinkDeletion,\n        cloudProviderConfig: {\n            aws: {\n                allowedPrincipals: allowedPrincipals,\n            },\n        },\n    }));\n}\nconst testServerlessCluster = new redpanda.ServerlessCluster(\"test\", {\n    name: clusterName,\n    resourceGroupId: test.id,\n    serverlessRegion: region,\n    privateLinkId: privateNetworking == \"STATE_ENABLED\" ? testServerlessPrivateLink[0].id : null,\n    networkingConfig: {\n        \"public\": publicNetworking,\n        \"private\": privateNetworking,\n    },\n});\nconst testTopic = new redpanda.Topic(\"test\", {\n    name: topicName,\n    partitionCount: partitionCount,\n    replicationFactor: replicationFactor,\n    clusterApiUrl: testServerlessCluster.clusterApiUrl,\n    allowDeletion: true,\n});\nconst testUser = new redpanda.User(\"test\", {\n    name: userName,\n    password: userPw,\n    mechanism: mechanism,\n    clusterApiUrl: testServerlessCluster.clusterApiUrl,\n    allowDeletion: userAllowDeletion,\n});\n```\n```python\nimport pulumi\nimport pulumi_redpanda as redpanda\n\ntest = redpanda.ResourceGroup(\"test\", name=resource_group_name)\ntest_serverless_private_link = []\nfor range in [{\"value\": i} for i in range(0, 1 if private_networking == STATE_ENABLED else 0)]:\n    test_serverless_private_link.append(redpanda.ServerlessPrivateLink(f\"test-{range['value']}\",\n        name=f\"{cluster_name}-private-link\",\n        resource_group_id=test.id,\n        cloud_provider=\"aws\",\n        serverless_region=region,\n        allow_deletion=allow_private_link_deletion,\n        cloud_provider_config={\n            \"aws\": {\n                \"allowed_principals\": allowed_principals,\n            },\n        }))\ntest_serverless_cluster = redpanda.ServerlessCluster(\"test\",\n    name=cluster_name,\n    resource_group_id=test.id,\n    serverless_region=region,\n    private_link_id=test_serverless_private_link[0].id if private_networking == \"STATE_ENABLED\" else None,\n    networking_config={\n        \"public\": public_networking,\n        \"private\": private_networking,\n    })\ntest_topic = redpanda.Topic(\"test\",\n    name=topic_name,\n    partition_count=partition_count,\n    replication_factor=replication_factor,\n    cluster_api_url=test_serverless_cluster.cluster_api_url,\n    allow_deletion=True)\ntest_user = redpanda.User(\"test\",\n    name=user_name,\n    password=user_pw,\n    mechanism=mechanism,\n    cluster_api_url=test_serverless_cluster.cluster_api_url,\n    allow_deletion=user_allow_deletion)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Redpanda = Pulumi.Redpanda;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Redpanda.ResourceGroup(\"test\", new()\n    {\n        Name = resourceGroupName,\n    });\n\n    var testServerlessPrivateLink = new List\u003cRedpanda.ServerlessPrivateLink\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c (privateNetworking == \"STATE_ENABLED\" ? 1 : 0); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        testServerlessPrivateLink.Add(new Redpanda.ServerlessPrivateLink($\"test-{range.Value}\", new()\n        {\n            Name = $\"{clusterName}-private-link\",\n            ResourceGroupId = test.Id,\n            CloudProvider = \"aws\",\n            ServerlessRegion = region,\n            AllowDeletion = allowPrivateLinkDeletion,\n            CloudProviderConfig = new Redpanda.Inputs.ServerlessPrivateLinkCloudProviderConfigArgs\n            {\n                Aws = new Redpanda.Inputs.ServerlessPrivateLinkCloudProviderConfigAwsArgs\n                {\n                    AllowedPrincipals = allowedPrincipals,\n                },\n            },\n        }));\n    }\n    var testServerlessCluster = new Redpanda.ServerlessCluster(\"test\", new()\n    {\n        Name = clusterName,\n        ResourceGroupId = test.Id,\n        ServerlessRegion = region,\n        PrivateLinkId = privateNetworking == \"STATE_ENABLED\" ? testServerlessPrivateLink[0].Id : null,\n        NetworkingConfig = new Redpanda.Inputs.ServerlessClusterNetworkingConfigArgs\n        {\n            Public = publicNetworking,\n            Private = privateNetworking,\n        },\n    });\n\n    var testTopic = new Redpanda.Topic(\"test\", new()\n    {\n        Name = topicName,\n        PartitionCount = partitionCount,\n        ReplicationFactor = replicationFactor,\n        ClusterApiUrl = testServerlessCluster.ClusterApiUrl,\n        AllowDeletion = true,\n    });\n\n    var testUser = new Redpanda.User(\"test\", new()\n    {\n        Name = userName,\n        Password = userPw,\n        Mechanism = mechanism,\n        ClusterApiUrl = testServerlessCluster.ClusterApiUrl,\n        AllowDeletion = userAllowDeletion,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/redpanda/redpanda\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := redpanda.NewResourceGroup(ctx, \"test\", \u0026redpanda.ResourceGroupArgs{\n\t\t\tName: pulumi.Any(resourceGroupName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar tmp0 float64\n\t\tif privateNetworking == \"STATE_ENABLED\" {\n\t\t\ttmp0 = 1\n\t\t} else {\n\t\t\ttmp0 = 0\n\t\t}\n\t\tvar testServerlessPrivateLink []*redpanda.ServerlessPrivateLink\n\t\tfor index := 0; index \u003c tmp0; index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := redpanda.NewServerlessPrivateLink(ctx, fmt.Sprintf(\"test-%v\", key0), \u0026redpanda.ServerlessPrivateLinkArgs{\n\t\t\t\tName:             pulumi.Sprintf(\"%v-private-link\", clusterName),\n\t\t\t\tResourceGroupId:  test.ID(),\n\t\t\t\tCloudProvider:    pulumi.String(\"aws\"),\n\t\t\t\tServerlessRegion: pulumi.Any(region),\n\t\t\t\tAllowDeletion:    pulumi.Any(allowPrivateLinkDeletion),\n\t\t\t\tCloudProviderConfig: \u0026redpanda.ServerlessPrivateLinkCloudProviderConfigArgs{\n\t\t\t\t\tAws: \u0026redpanda.ServerlessPrivateLinkCloudProviderConfigAwsArgs{\n\t\t\t\t\t\tAllowedPrincipals: pulumi.Any(allowedPrincipals),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\ttestServerlessPrivateLink = append(testServerlessPrivateLink, __res)\n\t\t}\n\t\tvar tmp1 pulumi.String\n\t\tif privateNetworking == \"STATE_ENABLED\" {\n\t\t\ttmp1 = testServerlessPrivateLink[0].ID()\n\t\t} else {\n\t\t\ttmp1 = nil\n\t\t}\n\t\ttestServerlessCluster, err := redpanda.NewServerlessCluster(ctx, \"test\", \u0026redpanda.ServerlessClusterArgs{\n\t\t\tName:             pulumi.Any(clusterName),\n\t\t\tResourceGroupId:  test.ID(),\n\t\t\tServerlessRegion: pulumi.Any(region),\n\t\t\tPrivateLinkId:    pulumi.String(tmp1),\n\t\t\tNetworkingConfig: \u0026redpanda.ServerlessClusterNetworkingConfigArgs{\n\t\t\t\tPublic:  pulumi.Any(publicNetworking),\n\t\t\t\tPrivate: pulumi.Any(privateNetworking),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redpanda.NewTopic(ctx, \"test\", \u0026redpanda.TopicArgs{\n\t\t\tName:              pulumi.Any(topicName),\n\t\t\tPartitionCount:    pulumi.Any(partitionCount),\n\t\t\tReplicationFactor: pulumi.Any(replicationFactor),\n\t\t\tClusterApiUrl:     testServerlessCluster.ClusterApiUrl,\n\t\t\tAllowDeletion:     pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redpanda.NewUser(ctx, \"test\", \u0026redpanda.UserArgs{\n\t\t\tName:          pulumi.Any(userName),\n\t\t\tPassword:      pulumi.Any(userPw),\n\t\t\tMechanism:     pulumi.Any(mechanism),\n\t\t\tClusterApiUrl: testServerlessCluster.ClusterApiUrl,\n\t\t\tAllowDeletion: pulumi.Any(userAllowDeletion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.redpanda.ResourceGroup;\nimport com.pulumi.redpanda.ResourceGroupArgs;\nimport com.pulumi.redpanda.ServerlessPrivateLink;\nimport com.pulumi.redpanda.ServerlessPrivateLinkArgs;\nimport com.pulumi.redpanda.inputs.ServerlessPrivateLinkCloudProviderConfigArgs;\nimport com.pulumi.redpanda.inputs.ServerlessPrivateLinkCloudProviderConfigAwsArgs;\nimport com.pulumi.redpanda.ServerlessCluster;\nimport com.pulumi.redpanda.ServerlessClusterArgs;\nimport com.pulumi.redpanda.inputs.ServerlessClusterNetworkingConfigArgs;\nimport com.pulumi.redpanda.Topic;\nimport com.pulumi.redpanda.TopicArgs;\nimport com.pulumi.redpanda.User;\nimport com.pulumi.redpanda.UserArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new ResourceGroup(\"test\", ResourceGroupArgs.builder()\n            .name(resourceGroupName)\n            .build());\n\n        for (var i = 0; i \u003c (privateNetworking == \"STATE_ENABLED\" ? 1 : 0); i++) {\n            new ServerlessPrivateLink(\"testServerlessPrivateLink-\" + i, ServerlessPrivateLinkArgs.builder()\n                .name(String.format(\"%s-private-link\", clusterName))\n                .resourceGroupId(test.id())\n                .cloudProvider(\"aws\")\n                .serverlessRegion(region)\n                .allowDeletion(allowPrivateLinkDeletion)\n                .cloudProviderConfig(ServerlessPrivateLinkCloudProviderConfigArgs.builder()\n                    .aws(ServerlessPrivateLinkCloudProviderConfigAwsArgs.builder()\n                        .allowedPrincipals(allowedPrincipals)\n                        .build())\n                    .build())\n                .build());\n\n        \n}\n        var testServerlessCluster = new ServerlessCluster(\"testServerlessCluster\", ServerlessClusterArgs.builder()\n            .name(clusterName)\n            .resourceGroupId(test.id())\n            .serverlessRegion(region)\n            .privateLinkId(privateNetworking == \"STATE_ENABLED\" ? testServerlessPrivateLink[0].id() : null)\n            .networkingConfig(ServerlessClusterNetworkingConfigArgs.builder()\n                .public_(publicNetworking)\n                .private_(privateNetworking)\n                .build())\n            .build());\n\n        var testTopic = new Topic(\"testTopic\", TopicArgs.builder()\n            .name(topicName)\n            .partitionCount(partitionCount)\n            .replicationFactor(replicationFactor)\n            .clusterApiUrl(testServerlessCluster.clusterApiUrl())\n            .allowDeletion(true)\n            .build());\n\n        var testUser = new User(\"testUser\", UserArgs.builder()\n            .name(userName)\n            .password(userPw)\n            .mechanism(mechanism)\n            .clusterApiUrl(testServerlessCluster.clusterApiUrl())\n            .allowDeletion(userAllowDeletion)\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Limitations\n\nCan only be used with Redpanda Cloud serverless clusters.\n","inputs":{"description":"A collection of arguments for invoking getServerlessCluster.\n","properties":{"id":{"type":"string","description":"The ID of the serverless cluster\n"}},"type":"object","required":["id"]},"outputs":{"description":"A collection of values returned by getServerlessCluster.\n","properties":{"clusterApiUrl":{"description":"The URL of the cluster API\n","type":"string"},"id":{"description":"The ID of the serverless cluster\n","type":"string"},"name":{"description":"Name of the serverless cluster\n","type":"string"},"resourceGroupId":{"description":"The ID of the resource group in which to create the serverless cluster\n","type":"string"},"serverlessRegion":{"description":"Redpanda specific region for the serverless cluster\n","type":"string"}},"required":["clusterApiUrl","id","name","resourceGroupId","serverlessRegion"],"type":"object"}},"redpanda:index/getServerlessRegions:getServerlessRegions":{"description":"Data source for a list of Redpanda Cloud serverless regions\n","inputs":{"description":"A collection of arguments for invoking getServerlessRegions.\n","properties":{"cloudProvider":{"type":"string","description":"Cloud provider where the serverless regions exist\n"}},"type":"object","required":["cloudProvider"]},"outputs":{"description":"A collection of values returned by getServerlessRegions.\n","properties":{"cloudProvider":{"description":"Cloud provider where the serverless regions exist\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"serverlessRegions":{"description":"Serverless regions available for the cloud provider\n","items":{"$ref":"#/types/redpanda:index%2FgetServerlessRegionsServerlessRegion:getServerlessRegionsServerlessRegion"},"type":"array"}},"required":["cloudProvider","id","serverlessRegions"],"type":"object"}},"redpanda:index/getThroughputTiers:getThroughputTiers":{"description":"Data source for a list of Redpanda Cloud throughput tiers\n","inputs":{"description":"A collection of arguments for invoking getThroughputTiers.\n","properties":{"cloudProvider":{"type":"string","description":"Cloud provider where the Throughput Tiers are available\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getThroughputTiers.\n","properties":{"cloudProvider":{"description":"Cloud provider where the Throughput Tiers are available\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"throughputTiers":{"description":"Throughput Tiers\n","items":{"$ref":"#/types/redpanda:index%2FgetThroughputTiersThroughputTier:getThroughputTiersThroughputTier"},"type":"array"}},"required":["id","throughputTiers"],"type":"object"}}},"parameterization":{"baseProvider":{"name":"terraform-provider","version":"1.0.1"},"parameter":"eyJyZW1vdGUiOnsidXJsIjoicmVnaXN0cnkub3BlbnRvZnUub3JnL3JlZHBhbmRhLWRhdGEvcmVkcGFuZGEiLCJ2ZXJzaW9uIjoiMS42LjAifX0="}}