ClusterArgs

data class ClusterArgs(val acceptedAudiences: Output<List<AcceptedAudiencesArgs>>? = null, val allowedFqdnList: Output<List<String>>? = null, val allowedIpRangeList: Output<List<String>>? = null, val clusterName: Output<String>? = null, val enableAutoStop: Output<Boolean>? = null, val enableDiskEncryption: Output<Boolean>? = null, val enableDoubleEncryption: Output<Boolean>? = null, val enablePurge: Output<Boolean>? = null, val enableStreamingIngest: Output<Boolean>? = null, val engineType: Output<Either<String, EngineType>>? = null, val identity: Output<IdentityArgs>? = null, val keyVaultProperties: Output<KeyVaultPropertiesArgs>? = null, val languageExtensions: Output<LanguageExtensionsListArgs>? = null, val location: Output<String>? = null, val optimizedAutoscale: Output<OptimizedAutoscaleArgs>? = null, val publicIPType: Output<Either<String, PublicIPType>>? = null, val publicNetworkAccess: Output<Either<String, PublicNetworkAccess>>? = null, val resourceGroupName: Output<String>? = null, val restrictOutboundNetworkAccess: Output<Either<String, ClusterNetworkAccessFlag>>? = null, val sku: Output<AzureSkuArgs>? = null, val tags: Output<Map<String, String>>? = null, val trustedExternalTenants: Output<List<TrustedExternalTenantArgs>>? = null, val virtualClusterGraduationProperties: Output<String>? = null, val virtualNetworkConfiguration: Output<VirtualNetworkConfigurationArgs>? = null, val zones: Output<List<String>>? = null) : ConvertibleToJava<ClusterArgs>

Class representing a Kusto cluster. Uses Azure REST API version 2022-12-29. In version 1.x of the Azure Native provider, it used API version 2021-01-01. Other available API versions: 2022-07-07, 2023-05-02, 2023-08-15, 2024-04-13.

Example Usage

KustoClustersCreateOrUpdate

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var cluster = new AzureNative.Kusto.Cluster("cluster", new()
{
AllowedIpRangeList = new[]
{
"0.0.0.0/0",
},
ClusterName = "kustoCluster",
EnableAutoStop = true,
EnableDoubleEncryption = false,
EnablePurge = true,
EnableStreamingIngest = true,
Identity = new AzureNative.Kusto.Inputs.IdentityArgs
{
Type = AzureNative.Kusto.IdentityType.SystemAssigned,
},
LanguageExtensions = new AzureNative.Kusto.Inputs.LanguageExtensionsListArgs
{
Value = new[]
{
new AzureNative.Kusto.Inputs.LanguageExtensionArgs
{
LanguageExtensionImageName = AzureNative.Kusto.LanguageExtensionImageName.Python3_10_8,
LanguageExtensionName = AzureNative.Kusto.LanguageExtensionName.PYTHON,
},
new AzureNative.Kusto.Inputs.LanguageExtensionArgs
{
LanguageExtensionImageName = AzureNative.Kusto.LanguageExtensionImageName.R,
LanguageExtensionName = AzureNative.Kusto.LanguageExtensionName.R,
},
},
},
Location = "westus",
PublicIPType = AzureNative.Kusto.PublicIPType.DualStack,
PublicNetworkAccess = AzureNative.Kusto.PublicNetworkAccess.Enabled,
ResourceGroupName = "kustorptest",
Sku = new AzureNative.Kusto.Inputs.AzureSkuArgs
{
Capacity = 2,
Name = AzureNative.Kusto.AzureSkuName.Standard_L16as_v3,
Tier = AzureNative.Kusto.AzureSkuTier.Standard,
},
});
});
package main
import (
kusto "github.com/pulumi/pulumi-azure-native-sdk/kusto/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := kusto.NewCluster(ctx, "cluster", &kusto.ClusterArgs{
AllowedIpRangeList: pulumi.StringArray{
pulumi.String("0.0.0.0/0"),
},
ClusterName: pulumi.String("kustoCluster"),
EnableAutoStop: pulumi.Bool(true),
EnableDoubleEncryption: pulumi.Bool(false),
EnablePurge: pulumi.Bool(true),
EnableStreamingIngest: pulumi.Bool(true),
Identity: &kusto.IdentityArgs{
Type: pulumi.String(kusto.IdentityTypeSystemAssigned),
},
LanguageExtensions: &kusto.LanguageExtensionsListArgs{
Value: kusto.LanguageExtensionArray{
&kusto.LanguageExtensionArgs{
LanguageExtensionImageName: pulumi.String(kusto.LanguageExtensionImageName_Python3_10_8),
LanguageExtensionName: pulumi.String(kusto.LanguageExtensionNamePYTHON),
},
&kusto.LanguageExtensionArgs{
LanguageExtensionImageName: pulumi.String(kusto.LanguageExtensionImageNameR),
LanguageExtensionName: pulumi.String(kusto.LanguageExtensionNameR),
},
},
},
Location: pulumi.String("westus"),
PublicIPType: pulumi.String(kusto.PublicIPTypeDualStack),
PublicNetworkAccess: pulumi.String(kusto.PublicNetworkAccessEnabled),
ResourceGroupName: pulumi.String("kustorptest"),
Sku: &kusto.AzureSkuArgs{
Capacity: pulumi.Int(2),
Name: pulumi.String(kusto.AzureSkuName_Standard_L16as_v3),
Tier: pulumi.String(kusto.AzureSkuTierStandard),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.kusto.Cluster;
import com.pulumi.azurenative.kusto.ClusterArgs;
import com.pulumi.azurenative.kusto.inputs.IdentityArgs;
import com.pulumi.azurenative.kusto.inputs.LanguageExtensionsListArgs;
import com.pulumi.azurenative.kusto.inputs.AzureSkuArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var cluster = new Cluster("cluster", ClusterArgs.builder()
.allowedIpRangeList("0.0.0.0/0")
.clusterName("kustoCluster")
.enableAutoStop(true)
.enableDoubleEncryption(false)
.enablePurge(true)
.enableStreamingIngest(true)
.identity(IdentityArgs.builder()
.type("SystemAssigned")
.build())
.languageExtensions(LanguageExtensionsListArgs.builder()
.value(
LanguageExtensionArgs.builder()
.languageExtensionImageName("Python3_10_8")
.languageExtensionName("PYTHON")
.build(),
LanguageExtensionArgs.builder()
.languageExtensionImageName("R")
.languageExtensionName("R")
.build())
.build())
.location("westus")
.publicIPType("DualStack")
.publicNetworkAccess("Enabled")
.resourceGroupName("kustorptest")
.sku(AzureSkuArgs.builder()
.capacity(2)
.name("Standard_L16as_v3")
.tier("Standard")
.build())
.build());
}
}

Import

An existing resource can be imported using its type token, name, and identifier, e.g.

$ pulumi import azure-native:kusto:Cluster kustoCluster /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}

Constructors

Link copied to clipboard
constructor(acceptedAudiences: Output<List<AcceptedAudiencesArgs>>? = null, allowedFqdnList: Output<List<String>>? = null, allowedIpRangeList: Output<List<String>>? = null, clusterName: Output<String>? = null, enableAutoStop: Output<Boolean>? = null, enableDiskEncryption: Output<Boolean>? = null, enableDoubleEncryption: Output<Boolean>? = null, enablePurge: Output<Boolean>? = null, enableStreamingIngest: Output<Boolean>? = null, engineType: Output<Either<String, EngineType>>? = null, identity: Output<IdentityArgs>? = null, keyVaultProperties: Output<KeyVaultPropertiesArgs>? = null, languageExtensions: Output<LanguageExtensionsListArgs>? = null, location: Output<String>? = null, optimizedAutoscale: Output<OptimizedAutoscaleArgs>? = null, publicIPType: Output<Either<String, PublicIPType>>? = null, publicNetworkAccess: Output<Either<String, PublicNetworkAccess>>? = null, resourceGroupName: Output<String>? = null, restrictOutboundNetworkAccess: Output<Either<String, ClusterNetworkAccessFlag>>? = null, sku: Output<AzureSkuArgs>? = null, tags: Output<Map<String, String>>? = null, trustedExternalTenants: Output<List<TrustedExternalTenantArgs>>? = null, virtualClusterGraduationProperties: Output<String>? = null, virtualNetworkConfiguration: Output<VirtualNetworkConfigurationArgs>? = null, zones: Output<List<String>>? = null)

Properties

Link copied to clipboard

The cluster's accepted audiences.

Link copied to clipboard
val allowedFqdnList: Output<List<String>>? = null

List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster.

Link copied to clipboard
val allowedIpRangeList: Output<List<String>>? = null

The list of ips in the format of CIDR allowed to connect to the cluster.

Link copied to clipboard
val clusterName: Output<String>? = null

The name of the Kusto cluster.

Link copied to clipboard
val enableAutoStop: Output<Boolean>? = null

A boolean value that indicates if the cluster could be automatically stopped (due to lack of data or no activity for many days).

Link copied to clipboard
val enableDiskEncryption: Output<Boolean>? = null

A boolean value that indicates if the cluster's disks are encrypted.

Link copied to clipboard
val enableDoubleEncryption: Output<Boolean>? = null

A boolean value that indicates if double encryption is enabled.

Link copied to clipboard
val enablePurge: Output<Boolean>? = null

A boolean value that indicates if the purge operations are enabled.

Link copied to clipboard
val enableStreamingIngest: Output<Boolean>? = null

A boolean value that indicates if the streaming ingest is enabled.

Link copied to clipboard
val engineType: Output<Either<String, EngineType>>? = null

The engine type

Link copied to clipboard
val identity: Output<IdentityArgs>? = null

The identity of the cluster, if configured.

Link copied to clipboard

KeyVault properties for the cluster encryption.

Link copied to clipboard

List of the cluster's language extensions.

Link copied to clipboard
val location: Output<String>? = null

The geo-location where the resource lives

Link copied to clipboard

Optimized auto scale definition.

Link copied to clipboard
val publicIPType: Output<Either<String, PublicIPType>>? = null

Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6)

Link copied to clipboard
val publicNetworkAccess: Output<Either<String, PublicNetworkAccess>>? = null

Public network access to the cluster is enabled by default. When disabled, only private endpoint connection to the cluster is allowed

Link copied to clipboard
val resourceGroupName: Output<String>? = null

The name of the resource group containing the Kusto cluster.

Link copied to clipboard

Whether or not to restrict outbound network access. Value is optional but if passed in, must be 'Enabled' or 'Disabled'

Link copied to clipboard
val sku: Output<AzureSkuArgs>? = null

The SKU of the cluster.

Link copied to clipboard
val tags: Output<Map<String, String>>? = null

Resource tags.

Link copied to clipboard

The cluster's external tenants.

Link copied to clipboard

Virtual Cluster graduation properties

Link copied to clipboard

Virtual network definition.

Link copied to clipboard
val zones: Output<List<String>>? = null

The availability zones of the cluster.

Functions

Link copied to clipboard
open override fun toJava(): ClusterArgs