pspulumiyaml.azurenative.databricks.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionDatabricksGetvNetPeering
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the workspace vNet peering.)')]
        [string]
        $peeringName,
        [parameter(mandatory=$False,HelpMessage='The name of the workspace.)')]
        [string]
        $workspaceName
    )

    process
    {
        $arguments = @{}
        $arguments["peeringName"] = $peeringName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["workspaceName"] = $workspaceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:databricks:getvNetPeering -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatabricksGetWorkspace
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the workspace.)')]
        [string]
        $workspaceName
    )

    process
    {
        $arguments = @{}
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["workspaceName"] = $workspaceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:databricks:getWorkspace -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionDatabricksGetPrivateEndpointConnection
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the private endpoint connection)')]
        [string]
        $privateEndpointConnectionName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the workspace.)')]
        [string]
        $workspaceName
    )

    process
    {
        $arguments = @{}
        $arguments["privateEndpointConnectionName"] = $privateEndpointConnectionName
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["workspaceName"] = $workspaceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:databricks:getPrivateEndpointConnection -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class WorkspaceCustomBooleanParameter
{
    [bool] $value
}
function New-AzureNativeTypeDatabricksWorkspaceCustomBooleanParameter
{
    param (
        [parameter(mandatory=$False,HelpMessage='The value which should be used for this field.)')]
        [bool]
        $value
    )

    process
    {
        return $([WorkspaceCustomBooleanParameter]$PSBoundParameters)
    }
}
class WorkspaceCustomStringParameter
{
    [string] $value
}
function New-AzureNativeTypeDatabricksWorkspaceCustomStringParameter
{
    param (
        [parameter(mandatory=$False,HelpMessage='The value which should be used for this field.)')]
        [string]
        $value
    )

    process
    {
        return $([WorkspaceCustomStringParameter]$PSBoundParameters)
    }
}
class Encryption
{
    [ValidateSet('Default', 'Microsoft.Keyvault')]
    [string] $keySource
    [ValidateSet('Default', 'Microsoft.Keyvault')]
    [string] $keyVersion
    [ValidateSet('Default', 'Microsoft.Keyvault')]
    [string] $keyName
    [ValidateSet('Default', 'Microsoft.Keyvault')]
    [string] $keyVaultUri
}
function New-AzureNativeTypeDatabricksEncryption
{
    param (
        [parameter(mandatory=$False,HelpMessage='The encryption keySource (provider). Possible values (case-insensitive): Default, Microsoft.Keyvault)')]
        [string]
        [ValidateSet('Default', 'Microsoft.Keyvault')]
        $keySource,
        [parameter(mandatory=$False,HelpMessage='The version of KeyVault key.)')]
        [string]
        $keyVersion,
        [parameter(mandatory=$False,HelpMessage='The name of KeyVault key.)')]
        [string]
        $keyName,
        [parameter(mandatory=$False,HelpMessage='The Uri of KeyVault.)')]
        [string]
        $keyVaultUri
    )

    process
    {
        return $([Encryption]$PSBoundParameters)
    }
}
class WorkspaceEncryptionParameter
{
    [Encryption] $value
}
function New-AzureNativeTypeDatabricksWorkspaceEncryptionParameter
{
    param (
        [parameter(mandatory=$False,HelpMessage='The value which should be used for this field.)')]
        [Encryption]
        $value
    )

    process
    {
        return $([WorkspaceEncryptionParameter]$PSBoundParameters)
    }
}
class WorkspaceCustomParameters
{
    [WorkspaceCustomBooleanParameter] $requireInfrastructureEncryption
    [WorkspaceCustomStringParameter] $storageAccountSkuName
    [WorkspaceCustomBooleanParameter] $enableNoPublicIp
    [WorkspaceEncryptionParameter] $encryption
    [WorkspaceCustomStringParameter] $vnetAddressPrefix
    [WorkspaceCustomStringParameter] $customPublicSubnetName
    [WorkspaceCustomStringParameter] $customVirtualNetworkId
    [WorkspaceCustomStringParameter] $natGatewayName
    [WorkspaceCustomBooleanParameter] $prepareEncryption
    [WorkspaceCustomStringParameter] $customPrivateSubnetName
    [WorkspaceCustomStringParameter] $publicIpName
    [WorkspaceCustomStringParameter] $storageAccountName
    [WorkspaceCustomStringParameter] $amlWorkspaceId
    [WorkspaceCustomStringParameter] $loadBalancerId
    [WorkspaceCustomStringParameter] $loadBalancerBackendPoolName
}
function New-AzureNativeTypeDatabricksWorkspaceCustomParameters
{
    param (
        [parameter(mandatory=$False,HelpMessage='A boolean indicating whether or not the DBFS root file system will be enabled with secondary layer of encryption with platform managed keys for data at rest.)')]
        [WorkspaceCustomBooleanParameter]
        $requireInfrastructureEncryption,
        [parameter(mandatory=$False,HelpMessage='Storage account SKU name, ex: Standard_GRS, Standard_LRS. Refer https://aka.ms/storageskus for valid inputs.)')]
        [WorkspaceCustomStringParameter]
        $storageAccountSkuName,
        [parameter(mandatory=$False,HelpMessage='Should the Public IP be Disabled?)')]
        [WorkspaceCustomBooleanParameter]
        $enableNoPublicIp,
        [parameter(mandatory=$False,HelpMessage='Contains the encryption details for Customer-Managed Key (CMK) enabled workspace.)')]
        [WorkspaceEncryptionParameter]
        $encryption,
        [parameter(mandatory=$False,HelpMessage='Address prefix for Managed virtual network. Default value for this input is 10.139.)')]
        [WorkspaceCustomStringParameter]
        $vnetAddressPrefix,
        [parameter(mandatory=$False,HelpMessage='The name of a Public Subnet within the Virtual Network)')]
        [WorkspaceCustomStringParameter]
        $customPublicSubnetName,
        [parameter(mandatory=$False,HelpMessage='The ID of a Virtual Network where this Databricks Cluster should be created)')]
        [WorkspaceCustomStringParameter]
        $customVirtualNetworkId,
        [parameter(mandatory=$False,HelpMessage='Name of the NAT gateway for Secure Cluster Connectivity (No Public IP) workspace subnets.)')]
        [WorkspaceCustomStringParameter]
        $natGatewayName,
        [parameter(mandatory=$False,HelpMessage='Prepare the workspace for encryption. Enables the Managed Identity for managed storage account.)')]
        [WorkspaceCustomBooleanParameter]
        $prepareEncryption,
        [parameter(mandatory=$False,HelpMessage='The name of the Private Subnet within the Virtual Network)')]
        [WorkspaceCustomStringParameter]
        $customPrivateSubnetName,
        [parameter(mandatory=$False,HelpMessage='Name of the Public IP for No Public IP workspace with managed vNet.)')]
        [WorkspaceCustomStringParameter]
        $publicIpName,
        [parameter(mandatory=$False,HelpMessage='Default DBFS storage account name.)')]
        [WorkspaceCustomStringParameter]
        $storageAccountName,
        [parameter(mandatory=$False,HelpMessage='The ID of a Azure Machine Learning workspace to link with Databricks workspace)')]
        [WorkspaceCustomStringParameter]
        $amlWorkspaceId,
        [parameter(mandatory=$False,HelpMessage='Resource URI of Outbound Load balancer for Secure Cluster Connectivity (No Public IP) workspace.)')]
        [WorkspaceCustomStringParameter]
        $loadBalancerId,
        [parameter(mandatory=$False,HelpMessage='Name of the outbound Load Balancer Backend Pool for Secure Cluster Connectivity (No Public IP).)')]
        [WorkspaceCustomStringParameter]
        $loadBalancerBackendPoolName
    )

    process
    {
        return $([WorkspaceCustomParameters]$PSBoundParameters)
    }
}
class Sku
{
    [string] $name
    [string] $tier
}
function New-AzureNativeTypeDatabricksSku
{
    param (
        [parameter(mandatory=$False,HelpMessage='The SKU name.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='The SKU tier.)')]
        [string]
        $tier
    )

    process
    {
        return $([Sku]$PSBoundParameters)
    }
}
function New-AzureNativeDatabricksWorkspace
{
    [Alias('azure_native_databricks_workspace')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The workspace''s custom parameters.)')]
        [WorkspaceCustomParameters]
        $parameters,
        [parameter(mandatory=$False,HelpMessage='The blob URI where the UI definition file is located.)')]
        [string]
        $uiDefinitionUri,
        [parameter(mandatory=$False,HelpMessage='The SKU of the resource.)')]
        [Sku]
        $sku,
        [parameter(mandatory=$False,HelpMessage='The managed resource group Id.)')]
        [string]
        $managedResourceGroupId,
        [parameter(mandatory=$False,HelpMessage='The name of the workspace.)')]
        [string]
        $workspaceName,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The workspace provider authorizations.)')]
        $authorizations,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource lives)')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:databricks:Workspace")

        $resource.properties["managedResourceGroupId"] = $managedResourceGroupId
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'parameters')
        {
            $resource.properties["parameters"] = $parameters
        }

        if($PSBoundParameters.Keys -icontains 'uiDefinitionUri')
        {
            $resource.properties["uiDefinitionUri"] = $uiDefinitionUri
        }

        if($PSBoundParameters.Keys -icontains 'sku')
        {
            $resource.properties["sku"] = $sku
        }

        if($PSBoundParameters.Keys -icontains 'workspaceName')
        {
            $resource.properties["workspaceName"] = $workspaceName
        }

        if($PSBoundParameters.Keys -icontains 'tags')
        {
            $resource.properties["tags"] = $tags
        }

        if($PSBoundParameters.Keys -icontains 'authorizations')
        {
            $resource.properties["authorizations"] = $authorizations
        }

        if($PSBoundParameters.Keys -icontains 'location')
        {
            $resource.properties["location"] = $location
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
class PrivateLinkServiceConnectionState
{
    [string] $description
    [string] $actionRequired
    [ValidateSet('Pending', 'Approved', 'Rejected', 'Disconnected')]
    [string] $status
}
function New-AzureNativeTypeDatabricksPrivateLinkServiceConnectionState
{
    param (
        [parameter(mandatory=$False,HelpMessage='The description for the current state of a private endpoint connection)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='Actions required for a private endpoint connection)')]
        [string]
        $actionRequired,
        [parameter(mandatory=$False,HelpMessage='The status of a private endpoint connection)')]
        [string]
        [ValidateSet('Pending', 'Approved', 'Rejected', 'Disconnected')]
        $status
    )

    process
    {
        return $([PrivateLinkServiceConnectionState]$PSBoundParameters)
    }
}
class PrivateEndpointConnectionProperties
{
    [PrivateLinkServiceConnectionState] $privateLinkServiceConnectionState
}
function New-AzureNativeTypeDatabricksPrivateEndpointConnectionProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='Private endpoint connection state)')]
        [PrivateLinkServiceConnectionState]
        $privateLinkServiceConnectionState
    )

    process
    {
        return $([PrivateEndpointConnectionProperties]$PSBoundParameters)
    }
}
function New-AzureNativeDatabricksPrivateEndpointConnection
{
    [Alias('azure_native_databricks_privateendpointconnection')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the private endpoint connection)')]
        [string]
        $privateEndpointConnectionName,
        [parameter(mandatory=$False,HelpMessage='The private endpoint connection properties.)')]
        [PrivateEndpointConnectionProperties]
        $properties,
        [parameter(mandatory=$False,HelpMessage='The name of the workspace.)')]
        [string]
        $workspaceName,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:databricks:PrivateEndpointConnection")

        $resource.properties["properties"] = $properties
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["workspaceName"] = $workspaceName

        if($PSBoundParameters.Keys -icontains 'privateEndpointConnectionName')
        {
            $resource.properties["privateEndpointConnectionName"] = $privateEndpointConnectionName
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
class VirtualNetworkPeeringPropertiesFormatRemoteVirtualNetwork
{
    [string] $id
}
function New-AzureNativeTypeDatabricksVirtualNetworkPeeringPropertiesFormatRemoteVirtualNetwork
{
    param (
        [parameter(mandatory=$False,HelpMessage='The Id of the remote virtual network.)')]
        [string]
        $id
    )

    process
    {
        return $([VirtualNetworkPeeringPropertiesFormatRemoteVirtualNetwork]$PSBoundParameters)
    }
}
class AddressSpace
{
    [string[]] $addressPrefixes
}
function New-AzureNativeTypeDatabricksAddressSpace
{
    param (
        [parameter(mandatory=$False,HelpMessage='A list of address blocks reserved for this virtual network in CIDR notation.)')]
        [string[]]
        $addressPrefixes
    )

    process
    {
        return $([AddressSpace]$PSBoundParameters)
    }
}
class VirtualNetworkPeeringPropertiesFormatDatabricksVirtualNetwork
{
    [string] $id
}
function New-AzureNativeTypeDatabricksVirtualNetworkPeeringPropertiesFormatDatabricksVirtualNetwork
{
    param (
        [parameter(mandatory=$False,HelpMessage='The Id of the databricks virtual network.)')]
        [string]
        $id
    )

    process
    {
        return $([VirtualNetworkPeeringPropertiesFormatDatabricksVirtualNetwork]$PSBoundParameters)
    }
}
function New-AzureNativeDatabricksVNetPeering
{
    [Alias('azure_native_databricks_vnetpeering')]
    param (
        [parameter(mandatory=$False,HelpMessage='Whether the VMs in the local virtual network space would be able to access the VMs in remote virtual network space.)')]
        [bool]
        $allowVirtualNetworkAccess,
        [parameter(mandatory=$False,HelpMessage=' The remote virtual network should be in the same region. See here to learn more (https://docs.microsoft.com/en-us/azure/databricks/administration-guide/cloud-configurations/azure/vnet-peering).)')]
        [VirtualNetworkPeeringPropertiesFormatRemoteVirtualNetwork]
        $remoteVirtualNetwork,
        [parameter(mandatory=$False,HelpMessage='The name of the workspace.)')]
        [string]
        $workspaceName,
        [parameter(mandatory=$False,HelpMessage='The reference to the databricks virtual network address space.)')]
        [AddressSpace]
        $databricksAddressSpace,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='If gateway links can be used in remote virtual networking to link to this virtual network.)')]
        [bool]
        $allowGatewayTransit,
        [parameter(mandatory=$False,HelpMessage='The reference to the remote virtual network address space.)')]
        [AddressSpace]
        $remoteAddressSpace,
        [parameter(mandatory=$False,HelpMessage=' The remote virtual network should be in the same region. See here to learn more (https://docs.microsoft.com/en-us/azure/databricks/administration-guide/cloud-configurations/azure/vnet-peering).)')]
        [VirtualNetworkPeeringPropertiesFormatDatabricksVirtualNetwork]
        $databricksVirtualNetwork,
        [parameter(mandatory=$False,HelpMessage='If remote gateways can be used on this virtual network. If the flag is set to true, and allowGatewayTransit on remote peering is also true, virtual network will use gateways of remote virtual network for transit. Only one peering can have this flag set to true. This flag cannot be set if virtual network already has a gateway.)')]
        [bool]
        $useRemoteGateways,
        [parameter(mandatory=$False,HelpMessage='The name of the workspace vNet peering.)')]
        [string]
        $peeringName,
        [parameter(mandatory=$False,HelpMessage='Whether the forwarded traffic from the VMs in the local virtual network will be allowed/disallowed in remote virtual network.)')]
        [bool]
        $allowForwardedTraffic,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:databricks:vNetPeering")

        $resource.properties["remoteVirtualNetwork"] = $remoteVirtualNetwork
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["workspaceName"] = $workspaceName

        if($PSBoundParameters.Keys -icontains 'allowVirtualNetworkAccess')
        {
            $resource.properties["allowVirtualNetworkAccess"] = $allowVirtualNetworkAccess
        }

        if($PSBoundParameters.Keys -icontains 'databricksAddressSpace')
        {
            $resource.properties["databricksAddressSpace"] = $databricksAddressSpace
        }

        if($PSBoundParameters.Keys -icontains 'allowGatewayTransit')
        {
            $resource.properties["allowGatewayTransit"] = $allowGatewayTransit
        }

        if($PSBoundParameters.Keys -icontains 'remoteAddressSpace')
        {
            $resource.properties["remoteAddressSpace"] = $remoteAddressSpace
        }

        if($PSBoundParameters.Keys -icontains 'databricksVirtualNetwork')
        {
            $resource.properties["databricksVirtualNetwork"] = $databricksVirtualNetwork
        }

        if($PSBoundParameters.Keys -icontains 'useRemoteGateways')
        {
            $resource.properties["useRemoteGateways"] = $useRemoteGateways
        }

        if($PSBoundParameters.Keys -icontains 'peeringName')
        {
            $resource.properties["peeringName"] = $peeringName
        }

        if($PSBoundParameters.Keys -icontains 'allowForwardedTraffic')
        {
            $resource.properties["allowForwardedTraffic"] = $allowForwardedTraffic
        }

        $global:pulumiresources += $resource
        return $resource
    }
}