Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.pulumi.azure.databricks.kotlin.WorkspaceArgs.kt Maven / Gradle / Ivy
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.azure.databricks.kotlin
import com.pulumi.azure.databricks.WorkspaceArgs.builder
import com.pulumi.azure.databricks.kotlin.inputs.WorkspaceCustomParametersArgs
import com.pulumi.azure.databricks.kotlin.inputs.WorkspaceCustomParametersArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.Map
import kotlin.jvm.JvmName
/**
*
* ## Import
* Databrick Workspaces can be imported using the `resource id`, e.g.
* ```sh
* $ pulumi import azure:databricks/workspace:Workspace workspace1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Databricks/workspaces/workspace1
* ```
* @property accessConnectorId Access Connector ID to use when default storage account firewall is enabled.
* > **Note:** The `access_connector_id` field is only required if `default_storage_firewall_enabled` is set to `true`.
* @property customParameters A `custom_parameters` block as documented below.
* @property customerManagedKeyEnabled Is the workspace enabled for customer managed key encryption? If `true` this enables the Managed Identity for the managed storage account. Possible values are `true` or `false`. Defaults to `false`. This field is only valid if the Databricks Workspace `sku` is set to `premium`.
* @property defaultStorageFirewallEnabled Disallow public access to default storage account. Defaults to `false`.
* @property infrastructureEncryptionEnabled Is the Databricks File System root file system enabled with a secondary layer of encryption with platform managed keys? Possible values are `true` or `false`. Defaults to `false`. This field is only valid if the Databricks Workspace `sku` is set to `premium`. Changing this forces a new resource to be created.
* @property loadBalancerBackendAddressPoolId Resource ID of the Outbound Load balancer Backend Address Pool for Secure Cluster Connectivity (No Public IP) workspace. Changing this forces a new resource to be created.
* @property location Specifies the supported Azure location where the resource has to be created. Changing this forces a new resource to be created.
* @property managedDiskCmkKeyVaultId
* @property managedDiskCmkKeyVaultKeyId Customer managed encryption properties for the Databricks Workspace managed disks.
* @property managedDiskCmkRotationToLatestVersionEnabled Whether customer managed keys for disk encryption will automatically be rotated to the latest version.
* @property managedResourceGroupName The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created.
* > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted.
* @property managedServicesCmkKeyVaultId
* @property managedServicesCmkKeyVaultKeyId Customer managed encryption properties for the Databricks Workspace managed resources(e.g. Notebooks and Artifacts).
* @property name Specifies the name of the Databricks Workspace resource. Changing this forces a new resource to be created.
* @property networkSecurityGroupRulesRequired Does the data plane (clusters) to control plane communication happen over private link endpoint only or publicly? Possible values `AllRules`, `NoAzureDatabricksRules` or `NoAzureServiceRules`. Required when `public_network_access_enabled` is set to `false`.
* @property publicNetworkAccessEnabled Allow public access for accessing workspace. Set value to `false` to access workspace only via private link endpoint. Possible values include `true` or `false`. Defaults to `true`.
* @property resourceGroupName The name of the Resource Group in which the Databricks Workspace should exist. Changing this forces a new resource to be created.
* @property sku The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`.
* > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created.
* @property tags A mapping of tags to assign to the resource.
*/
public data class WorkspaceArgs(
public val accessConnectorId: Output? = null,
public val customParameters: Output? = null,
public val customerManagedKeyEnabled: Output? = null,
public val defaultStorageFirewallEnabled: Output? = null,
public val infrastructureEncryptionEnabled: Output? = null,
public val loadBalancerBackendAddressPoolId: Output? = null,
public val location: Output? = null,
public val managedDiskCmkKeyVaultId: Output? = null,
public val managedDiskCmkKeyVaultKeyId: Output? = null,
public val managedDiskCmkRotationToLatestVersionEnabled: Output? = null,
public val managedResourceGroupName: Output? = null,
public val managedServicesCmkKeyVaultId: Output? = null,
public val managedServicesCmkKeyVaultKeyId: Output? = null,
public val name: Output? = null,
public val networkSecurityGroupRulesRequired: Output? = null,
public val publicNetworkAccessEnabled: Output? = null,
public val resourceGroupName: Output? = null,
public val sku: Output? = null,
public val tags: Output>? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.azure.databricks.WorkspaceArgs =
com.pulumi.azure.databricks.WorkspaceArgs.builder()
.accessConnectorId(accessConnectorId?.applyValue({ args0 -> args0 }))
.customParameters(customParameters?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.customerManagedKeyEnabled(customerManagedKeyEnabled?.applyValue({ args0 -> args0 }))
.defaultStorageFirewallEnabled(defaultStorageFirewallEnabled?.applyValue({ args0 -> args0 }))
.infrastructureEncryptionEnabled(infrastructureEncryptionEnabled?.applyValue({ args0 -> args0 }))
.loadBalancerBackendAddressPoolId(loadBalancerBackendAddressPoolId?.applyValue({ args0 -> args0 }))
.location(location?.applyValue({ args0 -> args0 }))
.managedDiskCmkKeyVaultId(managedDiskCmkKeyVaultId?.applyValue({ args0 -> args0 }))
.managedDiskCmkKeyVaultKeyId(managedDiskCmkKeyVaultKeyId?.applyValue({ args0 -> args0 }))
.managedDiskCmkRotationToLatestVersionEnabled(
managedDiskCmkRotationToLatestVersionEnabled?.applyValue({ args0 ->
args0
}),
)
.managedResourceGroupName(managedResourceGroupName?.applyValue({ args0 -> args0 }))
.managedServicesCmkKeyVaultId(managedServicesCmkKeyVaultId?.applyValue({ args0 -> args0 }))
.managedServicesCmkKeyVaultKeyId(managedServicesCmkKeyVaultKeyId?.applyValue({ args0 -> args0 }))
.name(name?.applyValue({ args0 -> args0 }))
.networkSecurityGroupRulesRequired(
networkSecurityGroupRulesRequired?.applyValue({ args0 ->
args0
}),
)
.publicNetworkAccessEnabled(publicNetworkAccessEnabled?.applyValue({ args0 -> args0 }))
.resourceGroupName(resourceGroupName?.applyValue({ args0 -> args0 }))
.sku(sku?.applyValue({ args0 -> args0 }))
.tags(
tags?.applyValue({ args0 ->
args0.map({ args0 ->
args0.key.to(args0.value)
}).toMap()
}),
).build()
}
/**
* Builder for [WorkspaceArgs].
*/
@PulumiTagMarker
public class WorkspaceArgsBuilder internal constructor() {
private var accessConnectorId: Output? = null
private var customParameters: Output? = null
private var customerManagedKeyEnabled: Output? = null
private var defaultStorageFirewallEnabled: Output? = null
private var infrastructureEncryptionEnabled: Output? = null
private var loadBalancerBackendAddressPoolId: Output? = null
private var location: Output? = null
private var managedDiskCmkKeyVaultId: Output? = null
private var managedDiskCmkKeyVaultKeyId: Output? = null
private var managedDiskCmkRotationToLatestVersionEnabled: Output? = null
private var managedResourceGroupName: Output? = null
private var managedServicesCmkKeyVaultId: Output? = null
private var managedServicesCmkKeyVaultKeyId: Output? = null
private var name: Output? = null
private var networkSecurityGroupRulesRequired: Output? = null
private var publicNetworkAccessEnabled: Output? = null
private var resourceGroupName: Output? = null
private var sku: Output? = null
private var tags: Output>? = null
/**
* @param value Access Connector ID to use when default storage account firewall is enabled.
* > **Note:** The `access_connector_id` field is only required if `default_storage_firewall_enabled` is set to `true`.
*/
@JvmName("utgeondfbjifuvrv")
public suspend fun accessConnectorId(`value`: Output) {
this.accessConnectorId = value
}
/**
* @param value A `custom_parameters` block as documented below.
*/
@JvmName("etcsxlechfjuhicp")
public suspend fun customParameters(`value`: Output) {
this.customParameters = value
}
/**
* @param value Is the workspace enabled for customer managed key encryption? If `true` this enables the Managed Identity for the managed storage account. Possible values are `true` or `false`. Defaults to `false`. This field is only valid if the Databricks Workspace `sku` is set to `premium`.
*/
@JvmName("rpqsrhelwssnkqwm")
public suspend fun customerManagedKeyEnabled(`value`: Output) {
this.customerManagedKeyEnabled = value
}
/**
* @param value Disallow public access to default storage account. Defaults to `false`.
*/
@JvmName("oclordjcgruhalqw")
public suspend fun defaultStorageFirewallEnabled(`value`: Output) {
this.defaultStorageFirewallEnabled = value
}
/**
* @param value Is the Databricks File System root file system enabled with a secondary layer of encryption with platform managed keys? Possible values are `true` or `false`. Defaults to `false`. This field is only valid if the Databricks Workspace `sku` is set to `premium`. Changing this forces a new resource to be created.
*/
@JvmName("dgqexlxmremxdccy")
public suspend fun infrastructureEncryptionEnabled(`value`: Output) {
this.infrastructureEncryptionEnabled = value
}
/**
* @param value Resource ID of the Outbound Load balancer Backend Address Pool for Secure Cluster Connectivity (No Public IP) workspace. Changing this forces a new resource to be created.
*/
@JvmName("uvrqwvdidayjpccy")
public suspend fun loadBalancerBackendAddressPoolId(`value`: Output) {
this.loadBalancerBackendAddressPoolId = value
}
/**
* @param value Specifies the supported Azure location where the resource has to be created. Changing this forces a new resource to be created.
*/
@JvmName("vybfsvngurfhcwoe")
public suspend fun location(`value`: Output) {
this.location = value
}
/**
* @param value
*/
@JvmName("qaoujctulcxhweoa")
public suspend fun managedDiskCmkKeyVaultId(`value`: Output) {
this.managedDiskCmkKeyVaultId = value
}
/**
* @param value Customer managed encryption properties for the Databricks Workspace managed disks.
*/
@JvmName("joayujcucdbogmup")
public suspend fun managedDiskCmkKeyVaultKeyId(`value`: Output) {
this.managedDiskCmkKeyVaultKeyId = value
}
/**
* @param value Whether customer managed keys for disk encryption will automatically be rotated to the latest version.
*/
@JvmName("wfqwqcvpayahcohp")
public suspend fun managedDiskCmkRotationToLatestVersionEnabled(`value`: Output) {
this.managedDiskCmkRotationToLatestVersionEnabled = value
}
/**
* @param value The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created.
* > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted.
*/
@JvmName("hpoondtpjsgmfwli")
public suspend fun managedResourceGroupName(`value`: Output) {
this.managedResourceGroupName = value
}
/**
* @param value
*/
@JvmName("kjogvbthqhfuolqg")
public suspend fun managedServicesCmkKeyVaultId(`value`: Output) {
this.managedServicesCmkKeyVaultId = value
}
/**
* @param value Customer managed encryption properties for the Databricks Workspace managed resources(e.g. Notebooks and Artifacts).
*/
@JvmName("rouurwehfndbvpwo")
public suspend fun managedServicesCmkKeyVaultKeyId(`value`: Output) {
this.managedServicesCmkKeyVaultKeyId = value
}
/**
* @param value Specifies the name of the Databricks Workspace resource. Changing this forces a new resource to be created.
*/
@JvmName("rjsoswhgihdwvady")
public suspend fun name(`value`: Output) {
this.name = value
}
/**
* @param value Does the data plane (clusters) to control plane communication happen over private link endpoint only or publicly? Possible values `AllRules`, `NoAzureDatabricksRules` or `NoAzureServiceRules`. Required when `public_network_access_enabled` is set to `false`.
*/
@JvmName("pjwcqnpbibpguwit")
public suspend fun networkSecurityGroupRulesRequired(`value`: Output) {
this.networkSecurityGroupRulesRequired = value
}
/**
* @param value Allow public access for accessing workspace. Set value to `false` to access workspace only via private link endpoint. Possible values include `true` or `false`. Defaults to `true`.
*/
@JvmName("jihrwpwjrywxdswo")
public suspend fun publicNetworkAccessEnabled(`value`: Output) {
this.publicNetworkAccessEnabled = value
}
/**
* @param value The name of the Resource Group in which the Databricks Workspace should exist. Changing this forces a new resource to be created.
*/
@JvmName("stbeksojsbmmmaax")
public suspend fun resourceGroupName(`value`: Output) {
this.resourceGroupName = value
}
/**
* @param value The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`.
* > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created.
*/
@JvmName("clcdobqwphobusod")
public suspend fun sku(`value`: Output) {
this.sku = value
}
/**
* @param value A mapping of tags to assign to the resource.
*/
@JvmName("urywcbaqvwnsuuen")
public suspend fun tags(`value`: Output>) {
this.tags = value
}
/**
* @param value Access Connector ID to use when default storage account firewall is enabled.
* > **Note:** The `access_connector_id` field is only required if `default_storage_firewall_enabled` is set to `true`.
*/
@JvmName("sxgibqekgldurrdb")
public suspend fun accessConnectorId(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.accessConnectorId = mapped
}
/**
* @param value A `custom_parameters` block as documented below.
*/
@JvmName("kdjreieapbfauego")
public suspend fun customParameters(`value`: WorkspaceCustomParametersArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.customParameters = mapped
}
/**
* @param argument A `custom_parameters` block as documented below.
*/
@JvmName("wedhmraqjsjrvlxe")
public suspend
fun customParameters(argument: suspend WorkspaceCustomParametersArgsBuilder.() -> Unit) {
val toBeMapped = WorkspaceCustomParametersArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.customParameters = mapped
}
/**
* @param value Is the workspace enabled for customer managed key encryption? If `true` this enables the Managed Identity for the managed storage account. Possible values are `true` or `false`. Defaults to `false`. This field is only valid if the Databricks Workspace `sku` is set to `premium`.
*/
@JvmName("lordeudduamtjkke")
public suspend fun customerManagedKeyEnabled(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.customerManagedKeyEnabled = mapped
}
/**
* @param value Disallow public access to default storage account. Defaults to `false`.
*/
@JvmName("guyfjffmcgpwcvnr")
public suspend fun defaultStorageFirewallEnabled(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.defaultStorageFirewallEnabled = mapped
}
/**
* @param value Is the Databricks File System root file system enabled with a secondary layer of encryption with platform managed keys? Possible values are `true` or `false`. Defaults to `false`. This field is only valid if the Databricks Workspace `sku` is set to `premium`. Changing this forces a new resource to be created.
*/
@JvmName("oykloeqpbiwnhmrt")
public suspend fun infrastructureEncryptionEnabled(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.infrastructureEncryptionEnabled = mapped
}
/**
* @param value Resource ID of the Outbound Load balancer Backend Address Pool for Secure Cluster Connectivity (No Public IP) workspace. Changing this forces a new resource to be created.
*/
@JvmName("wxsrwgmorytwpcxr")
public suspend fun loadBalancerBackendAddressPoolId(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.loadBalancerBackendAddressPoolId = mapped
}
/**
* @param value Specifies the supported Azure location where the resource has to be created. Changing this forces a new resource to be created.
*/
@JvmName("dixhopfbwbptbwfx")
public suspend fun location(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.location = mapped
}
/**
* @param value
*/
@JvmName("yacyayshbgbpkova")
public suspend fun managedDiskCmkKeyVaultId(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.managedDiskCmkKeyVaultId = mapped
}
/**
* @param value Customer managed encryption properties for the Databricks Workspace managed disks.
*/
@JvmName("eadqaqattnkkykvo")
public suspend fun managedDiskCmkKeyVaultKeyId(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.managedDiskCmkKeyVaultKeyId = mapped
}
/**
* @param value Whether customer managed keys for disk encryption will automatically be rotated to the latest version.
*/
@JvmName("oomamukffbxmurfu")
public suspend fun managedDiskCmkRotationToLatestVersionEnabled(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.managedDiskCmkRotationToLatestVersionEnabled = mapped
}
/**
* @param value The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created.
* > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted.
*/
@JvmName("kkjlmtnfgcxdabbb")
public suspend fun managedResourceGroupName(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.managedResourceGroupName = mapped
}
/**
* @param value
*/
@JvmName("dbsugeipnsmvhjvm")
public suspend fun managedServicesCmkKeyVaultId(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.managedServicesCmkKeyVaultId = mapped
}
/**
* @param value Customer managed encryption properties for the Databricks Workspace managed resources(e.g. Notebooks and Artifacts).
*/
@JvmName("cavshgqyxqqrvman")
public suspend fun managedServicesCmkKeyVaultKeyId(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.managedServicesCmkKeyVaultKeyId = mapped
}
/**
* @param value Specifies the name of the Databricks Workspace resource. Changing this forces a new resource to be created.
*/
@JvmName("sktgpopvhctfucay")
public suspend fun name(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.name = mapped
}
/**
* @param value Does the data plane (clusters) to control plane communication happen over private link endpoint only or publicly? Possible values `AllRules`, `NoAzureDatabricksRules` or `NoAzureServiceRules`. Required when `public_network_access_enabled` is set to `false`.
*/
@JvmName("wcotpbusmyuuyadk")
public suspend fun networkSecurityGroupRulesRequired(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.networkSecurityGroupRulesRequired = mapped
}
/**
* @param value Allow public access for accessing workspace. Set value to `false` to access workspace only via private link endpoint. Possible values include `true` or `false`. Defaults to `true`.
*/
@JvmName("wonybukuqksrhtyr")
public suspend fun publicNetworkAccessEnabled(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.publicNetworkAccessEnabled = mapped
}
/**
* @param value The name of the Resource Group in which the Databricks Workspace should exist. Changing this forces a new resource to be created.
*/
@JvmName("rtkcnjguertgatwa")
public suspend fun resourceGroupName(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.resourceGroupName = mapped
}
/**
* @param value The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`.
* > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created.
*/
@JvmName("hbgaiqgkyjivideh")
public suspend fun sku(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.sku = mapped
}
/**
* @param value A mapping of tags to assign to the resource.
*/
@JvmName("wyvfwjcrvpyduwrs")
public suspend fun tags(`value`: Map?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.tags = mapped
}
/**
* @param values A mapping of tags to assign to the resource.
*/
@JvmName("yqjqgrscujeynfyk")
public fun tags(vararg values: Pair) {
val toBeMapped = values.toMap()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.tags = mapped
}
internal fun build(): WorkspaceArgs = WorkspaceArgs(
accessConnectorId = accessConnectorId,
customParameters = customParameters,
customerManagedKeyEnabled = customerManagedKeyEnabled,
defaultStorageFirewallEnabled = defaultStorageFirewallEnabled,
infrastructureEncryptionEnabled = infrastructureEncryptionEnabled,
loadBalancerBackendAddressPoolId = loadBalancerBackendAddressPoolId,
location = location,
managedDiskCmkKeyVaultId = managedDiskCmkKeyVaultId,
managedDiskCmkKeyVaultKeyId = managedDiskCmkKeyVaultKeyId,
managedDiskCmkRotationToLatestVersionEnabled = managedDiskCmkRotationToLatestVersionEnabled,
managedResourceGroupName = managedResourceGroupName,
managedServicesCmkKeyVaultId = managedServicesCmkKeyVaultId,
managedServicesCmkKeyVaultKeyId = managedServicesCmkKeyVaultKeyId,
name = name,
networkSecurityGroupRulesRequired = networkSecurityGroupRulesRequired,
publicNetworkAccessEnabled = publicNetworkAccessEnabled,
resourceGroupName = resourceGroupName,
sku = sku,
tags = tags,
)
}