public/api/Edit-MBSAPIUserBackupDestination.ps1
function Edit-MBSAPIUserBackupDestination { <# .SYNOPSIS Add a backup destination to a user .DESCRIPTION Calls the PUT api/Destinations API to edit a backup destination of a user .PARAMETER AccountID The ID of the storage account that is to be edited. Use Get-MBSAPIStorageAccount to determine. .PARAMETER UserID ID of the user whose backup destination will be edited. Use Get-MBSAPIUser to determine .PARAMETER ID ID of the destination to be edited. Use Get-MBSAPIStorageAccountDestination to determine. .PARAMETER Destination Name of the destination .PARAMETER PackageID ID of the storage limit (package) that is to be applied. .PARAMETER ProfileName Profile name used with MSP360 PowerShell for MBS API (set via Set-MBSApiCredential) .EXAMPLE PS C:\> $UserID = Get-MBSAPIUsers -profilename ao | ? {$_.email -eq 'test@test.com'} PS C:\> $Destionation1 = (Get-MBSAPIUserBackupDestination -profilename ao -useremail test@test.com)[0] PS C:\> $Destionation2 = (Get-MBSAPIUserBackupDestination -profilename ao -useremail test@test.com)[1] PS C:\> $Destination2.packageID = $destination1.packageID PS C:\> $Destination2 | Edit-MBSAPIUserBackupDestination -profilename ao -userid $userid.id Change package of the attached backup destination. .INPUTS System.Management.Automation.PSCustomObject .OUTPUTS System.Management.Automation.PSCustomObject #> [CmdletBinding()] param ( [Parameter(Mandatory=$true, HelpMessage="User for thie destination", ValueFromPipelineByPropertyName)] [string]$UserID, [Parameter(Mandatory=$true, HelpMessage="Storage Account ID",ValueFromPipelineByPropertyName)] [string]$AccountID, [Parameter(Mandatory=$true, HelpMessage="Destination ID",ValueFromPipelineByPropertyName)] [string]$ID, [Parameter(Mandatory=$true, HelpMessage="Destination", ValueFromPipelineByPropertyName)] [string]$Destination, [Parameter(Mandatory=$true, HelpMessage="Storage Limit Package ID", ValueFromPipelineByPropertyName)] [string]$PackageID, [Parameter(Mandatory=$false, HelpMessage="The profile name")] [string]$ProfileName ) begin { } process { $StorageDestinationPut = @{ UserID=$UserID AccountID=$AccountID Destination=$Destination PackageID=$PackageID ID=$ID } Write-Verbose -Message ("$($PSCmdlet.MyInvocation.MyCommand.Name): URL: " + (Get-MBSApiUrl).Destinations) Write-Verbose -Message ("$($PSCmdlet.MyInvocation.MyCommand.Name): PUT Request: " + ($StorageDestinationPut|ConvertTo-Json)) $StorageDestinationID = Invoke-RestMethod -Uri ((Get-MBSApiUrl).Destinations) -Method Put -Headers (Get-MBSAPIHeader -ProfileName $ProfileName) -Body ($StorageDestinationPut | ConvertTo-Json) -ContentType 'application/json' return $StorageDestinationID } } |