src/cmdlets/Remove-GraphConnection.ps1
# Copyright 2021, Adam Edwards # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. . (import-script Get-GraphConnection) function Remove-GraphConnection { [cmdletbinding(positionalbinding=$false)] param( [parameter(position=0, valuefrompipelinebypropertyname=$true, mandatory=$true)] [ArgumentCompleter({ param ( $commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters ) $::.GraphConnection |=> GetNamedConnection | where Name -like "$($wordToComplete)*" | select-object -expandproperty Name })] [Alias('Name')] [string] $ConnectionName ) begin { $currentConnection = $::.GraphContext |=> GetCurrentConnection } process { $targetConnection = Get-GraphConnection $ConnectionName if ( $targetConnection.Id -eq $currentConnection.Id ) { throw "The specified connection '$($targetConnection.Name)' may not be removed because it is the current connection for this context." } $::.GraphConnection |=> RemoveNamedConnection $ConnectionName $true } end { } } |