Scripts/ProtectionSource/set-cohesityprotectionsource.ps1
function Set-CohesityProtectionSource { <# .SYNOPSIS Updates the registered protection source. .DESCRIPTION If no parameters are specified, all protection sources that are registered on the Cohesity Cluster are returned. .NOTES Published by Cohesity .LINK https://cohesity.github.io/cohesity-powershell-module/#/README .EXAMPLE Set-CohesityProtectionSource -ProtectionSourceObject $theObject Returns updated registered protection sources. .EXAMPLE $protecionSource = Get-CohesityProtectionSource -Id 121 $protecionSource.Name = "UpdatedName" $protecionSource.Name = "UpdatedName" $protecionSource | Set-CohesityProtectionSource Returns updated registered protection sources when the object is piped. .EXAMPLE Update the credentials of a VMware Protection Source. $protecionSource = Get-CohesityProtectionSource -Id 1 $protecionSource |Add-Member -Name username -Value "Administrator" -Type NoteProperty $protecionSource |Add-Member -Name password -Value "cohesity" -Type NoteProperty $protecionSource | Set-CohesityProtectionSource #> [CmdletBinding(SupportsShouldProcess = $true, ConfirmImpact = "High")] Param( [Parameter(Mandatory = $true, ValueFromPipeline = $true)] [ValidateNotNullOrEmpty()] # The protection source object, can be found from Get-CohesityProtectionSource. $ProtectionSourceObject ) Begin { } Process { if(-not $ProtectionSourceObject) { Write-Output "Protection source object not found" return } if ($PSCmdlet.ShouldProcess($ProtectionSourceObject.Id)) { $cohesityClusterURL = '/irisservices/api/v1/public/protectionSources/' + $ProtectionSourceObject.Id $payloadJson = $ProtectionSourceObject | ConvertTo-Json -Depth 100 $resp = Invoke-RestApi -Method Patch -Uri $cohesityClusterURL -Body $payloadJson if ($resp) { $resp } else { $errorMsg = "Update protection source : Failed to update" Write-Output $errorMsg CSLog -Message $errorMsg } } } End { } } |