public/api/Remove-MBSAPICompany.ps1
function Remove-MBSAPICompany { <# .SYNOPSIS Remove MBS company by ID .DESCRIPTION Calls DELETE request to api/Companies .PARAMETER ID Company Id .PARAMETER Force Force delete. Confirmation is disabled. .PARAMETER ProfileName Profile name used with MSP360 PowerShell for MBS API (set via Set-MBSApiCredential) .EXAMPLE Remove-MBSAPICompany -id ce786a8f-46a7-4442-b4ab-f2e2f1d9858a -Force -ProfileName MyProfile Company ce786a8f-46a7-4442-b4ab-f2e2f1d9858a successfully deleted Remove company by ID in force mode (no confirmation) .EXAMPLE Remove-MBSAPICompany -id ce786a8f-46a7-4442-b4ab-f2e2f1d9858a -ProfileName MyProfile Are you sure you want to perform this action? Performing the operation "Remove-MBSAPICompany" on target "Removing company with ID: ce786a8f-46a7-4442-b4ab-f2e2f1d9858a" [Y] Yes [N] No (default is "N"):y Company ce786a8f-46a7-4442-b4ab-f2e2f1d9858a successfully deleted Remove company with confirmation prompt. .INPUTS System.Management.Automation.PSCustomObject String .OUTPUTS System.Management.Automation.PSCustomObject .NOTES Author: Alex Volkov .LINK #> [CmdletBinding(SupportsShouldProcess=$True,ConfirmImpact="High")] param ( # [Parameter(Mandatory=$false, HelpMessage="Company Id", ValueFromPipelineByPropertyName, ValueFromPipeline=$true)] [string]$ID, # [Parameter(Mandatory=$false, HelpMessage="Force delete")] [switch]$Force, # [Parameter(Mandatory=$false, HelpMessage="The profile name, which must be unique.")] [string] $ProfileName ) begin { $headers = Get-MBSAPIHeader -ProfileName $ProfileName } process { if ($Force){ Write-Verbose -Message ("$($PSCmdlet.MyInvocation.MyCommand.Name): URL: " + ((Get-MBSApiUrl).Companies+"/"+$ID)) Write-Verbose -Message "$($PSCmdlet.MyInvocation.MyCommand.Name): DELETE Request" $Companies = Invoke-RestMethod -Uri ((Get-MBSApiUrl).Companies+"/"+$ID) -Method DELETE -Headers $headers -ContentType 'application/json' return $Companies }else{ if (Confirm-MBSAction -Operation "Remove-MBSAPICompany" -Target "Removing company with ID: $ID"){ Write-Verbose -Message ("$($PSCmdlet.MyInvocation.MyCommand.Name): URL: " + ((Get-MBSApiUrl).Companies+"/"+$ID)) Write-Verbose -Message "$($PSCmdlet.MyInvocation.MyCommand.Name): DELETE Request" $Companies = Invoke-RestMethod -Uri ((Get-MBSApiUrl).Companies+"/"+$ID) -Method DELETE -Headers $headers -ContentType 'application/json' return $Companies } } } end { } } |