Scripts/Remove-AzApiManagementDefaults.ps1
param( [Parameter(Mandatory = $true)][string] $ResourceGroupName, [Parameter(Mandatory = $true)][string] $ServiceName ) Write-Verbose "Start removing Azure API Management instance '$ServiceName' defaults in resource group '$ResourceGroupName'..." $apim = Get-AzApiManagement -ResourceGroupName $ResourceGroupName -Name $ServiceName if ($apim -eq $null) { throw "Unable to find the Azure API Management instance '$ServiceName' in resource group '$ResourceGroupName'" } $apimContext = New-AzApiManagementContext -ResourceGroupName $ResourceGroupName -ServiceName $ServiceName $exceptionOccurred = $false $failedActions = @() Write-Verbose "Checking if 'echo' API exists in the Azure API Management instance '$ServiceName' in resource group '$ResourceGroupName'..." $echoExists = $true try { Get-AzApiManagementApi -Context $apimContext -ApiId 'echo-api' -ErrorAction Stop | Out-Null } catch { if ($_.Exception.Response.StatusCode -eq 'NotFound' -or $_.TargetObject.Response.StatusCode -eq 'NotFound') { $echoExists = $false Write-Verbose "The 'echo' API does not exist in the Azure API Management instance '$ServiceName' in resource group '$ResourceGroupName', skipping removal..." } else { Write-Error $_ $exceptionOccurred = $true $failedActions += "getting the 'echo-api'" } } if ($echoExists) { try { Write-Verbose "Removing 'echo' API in the Azure API Management instance '$ServiceName' in resource group '$ResourceGroupName'..." Remove-AzApiManagementApi -Context $apimContext -ApiId 'echo-api' -ErrorAction Stop | Out-Null Write-Host "Removed 'echo' API in the Azure API Management instance $ServiceName in resource group $ResourceGroupName" -ForegroundColor Green } catch { Write-Error "Failed to remove the 'echo' API in the Azure API Management instance '$ServiceName' in resource group '$ResourceGroupName'" $exceptionOccurred = $true $failedActions += "removing the 'echo-api'" } } Write-Verbose "Checking if 'starter' product exists in the Azure API Management instance '$ServiceName' in resource group '$ResourceGroupName'..." $starterExists = $true try { Get-AzApiManagementProduct -Context $apimContext -ProductId 'starter' -ErrorAction Stop | Out-Null } catch { if ($_.Exception.Response.StatusCode -eq 'NotFound' -or $_.TargetObject.Response.StatusCode -eq 'NotFound') { $starterExists = $false Write-Verbose "The 'starter' product does not exist in the Azure API Management instance '$ServiceName' in resource group '$ResourceGroupName', skipping removal..." } else { Write-Error $_ $exceptionOccurred = $true $failedActions += "getting the 'starter' product" } } if ($starterExists) { try { Write-Verbose "Removing 'starter' product in the Azure API Management instance '$ServiceName' in resource group '$ResourceGroupName'..." Remove-AzApiManagementProduct -Context $apimContext -ProductId 'starter' -DeleteSubscriptions -ErrorAction Stop | Out-Null Write-Host "Removed 'starter' product in the Azure API Management instance '$ServiceName' in resource group '$ResourceGroupName'" -ForegroundColor Green } catch { Write-Error "Failed to remove the 'starter' product in the Azure API Management instance '$ServiceName' in resource group '$ResourceGroupName'" $exceptionOccurred = $true $failedActions += "removing the 'starter' product" } } Write-Verbose "Checking if 'unlimited' product exists in the Azure API Management instance '$ServiceName' in resource group '$ResourceGroupName'..." $unlimitedExists = $true try { Get-AzApiManagementProduct -Context $apimContext -ProductId 'unlimited' -ErrorAction Stop | Out-Null } catch { if ($_.Exception.Response.StatusCode -eq 'NotFound' -or $_.TargetObject.Response.StatusCode -eq 'NotFound') { $unlimitedExists = $false Write-Verbose "The 'unlimited' product does not exist in the Azure API Management instance '$ServiceName' in resource group '$ResourceGroupName', skipping removal..." } else { Write-Error $_ $exceptionOccurred = $true $failedActions += "getting the 'unlimited' product" } } if ($unlimitedExists) { try { Write-Verbose "Removing 'unlimited' product in the Azure API Management instance '$ServiceName' in resource group '$ResourceGroupName'..." Remove-AzApiManagementProduct -Context $apimContext -ProductId 'unlimited' -DeleteSubscriptions -ErrorAction Stop | Out-Null Write-Host "Removed 'unlimited' product in the Azure API Management instance '$ServiceName' in resource group '$ResourceGroupName'" -ForegroundColor Green } catch { Write-Error "Failed to remove the 'unlimited' product" $exceptionOccurred = $true $failedActions += "removing the 'unlimited' product" } } if ($exceptionOccurred) { $failedActionsString = $failedActions -join ", " throw "These action(s) failed: $failedActionsString for the Azure API Management instance '$ServiceName' in resource group '$ResourceGroupName'" } Write-Host "Finished removing Azure API Management defaults in the Azure API Management instance '$ServiceName' in resource group '$ResourceGroupName'!" -ForegroundColor Green |