Modules/businessdev.ALbuild.Apps/Public/Unpublish-BcContainerApp.ps1

function Unpublish-BcContainerApp {
    <#
    .SYNOPSIS
        Unpublishes an AL app from a Business Central container.
    .PARAMETER Name
        Container name.
    .PARAMETER AppName
        The app name.
    .PARAMETER AppVersion
        Optional app version.
    .PARAMETER ServerInstance
        BC server instance. Default 'BC'.
    .PARAMETER DockerExecutable
        The Docker executable to use (default 'docker').
    #>

    [CmdletBinding(SupportsShouldProcess)]
    param(
        [Parameter(Mandatory)] [Alias('ContainerName')] [string] $Name,
        [Parameter(Mandatory)] [string] $AppName,
        [string] $AppVersion,
        [string] $ServerInstance = 'BC',
        [string] $DockerExecutable = 'docker'
    )
    if (-not $PSCmdlet.ShouldProcess($Name, "Unpublish $AppName")) { return }
    $output = Invoke-BcContainerCommand -ContainerName $Name -DockerExecutable $DockerExecutable -Variables @{
        ServerInstance = $ServerInstance; AppName = $AppName; AppVersion = $AppVersion
    } -ScriptBlock {
        $params = @{ ServerInstance = $ServerInstance; Name = $AppName; ErrorAction = 'Stop' }
        if ($AppVersion) { $params['Version'] = $AppVersion }
        Unpublish-NAVApp @params
        Write-Output "Unpublished $AppName"
    }
    Write-ALbuildLog -Level Success ($output.Trim())
}