public/Stop-AzureDatabricksCluster.ps1

function Stop-AzureDatabricksCluster {
    <#
        .SYNOPSIS
            Stops a running Azure Databricks cluster.
        .DESCRIPTION
            This function will stop an already-running Azure Databricks cluster by cluster ID.
        .PARAMETER Connection
            An object that represents an Azure Databricks API connection where you want to remove your job from.
        .PARAMETER ClusterID
            The cluster ID you want to stop.
            Author: Drew Furgiuele (@pittfurg), http://www.port1433.com
            Website: https://www.igs.com
            Copyright: (c) 2019 by IGS, licensed under MIT
            License: MIT https://opensource.org/licenses/MIT
        .LINK
             
        .EXAMPLE
            PS C:\> Stop-AzureDatabricksCluster -Connection $Connection -ClusterID 1
            Stops cluster id 1 on the Azure Databricks instance defined in $Connection
    #>
      

    Param (
        [Parameter(Mandatory=$true)] [object] $Connection,
        [Parameter(Mandatory=$true)] [string] $ClusterID
    )

    begin {
        $TargetURI = $Connection.BaseURI.AbsoluteUri + "api/2.0/clusters/delete"
    }

    process {
        $ClusterObject = Get-AzureDatabricksCluster -Connection $Connection -ClusterID $ClusterID
        if ($ClusterObject) {
            $DeleteRequest = New-AzureDatabricksRequest -Uri $TargetURI -AccessToken $Connection.AccessToken -RequestMethod POST -UseBasicParsing $Connection.UseBasicParsing -ExpectingNoReply
            $DeleteRequest.AddBody("cluster_id",$ClusterID)
            $DeleteRequest.Submit() | Out-Null
            $ClusterObject = Get-AzureDatabricksCluster -Connection $Connection -ClusterID $ClusterID
            $ClusterObject
        } else {
            throw ("Cluster not found")
        }
    }
}