Functions/Add-AdbItemParent.ps1
<#
.SYNOPSIS Add the parent item to the adb item. .DESCRIPTION ... .INPUTS None .OUTPUTS None .EXAMPLE PS C:\> Add-AdbItemParent -Name 'myname' -Parent 'myparent' Add the parent myparent to the item myname. #> function Add-AdbItemParent { [CmdletBinding(SupportsShouldProcess = $true)] param ( # The adb session. [Parameter(Mandatory = $false)] [PSTypeName('Adb.Session')] [System.Object] $Session, # The item name. [Parameter(Mandatory = $true)] [System.String] $Name, # The parent to add to the item. [Parameter(Mandatory = $true)] [System.String] $Parent ) $Session = Test-AdbSession -Session $Session $item = Get-AdbItem -Session $Session -Name $Name # Prepare the parent list $parents = [System.String[]] $item.parentsNames $parents += $Parent $parents = $parents | Select-Object -Unique | Sort-Object $item = [PSCustomObject] @{ name = $Name parentsNames = $parents } $requestSplat = Get-AdbSessionRequestSplat -Session $Session -Method 'Put' $requestSplat['Uri'] = '{0}/items/{1}' -f $Session.Uri, $Name $requestSplat['Body'] = $item | ConvertTo-Json -Compress -Depth 99 if ($PSCmdlet.ShouldProcess($requestSplat.Uri, $requestSplat.Method.ToUpper())) { Write-Verbose ('{0} {1} {2}' -f $requestSplat.Method.ToUpper(), $requestSplat.Uri, $requestSplat.Body) Invoke-RestMethod @requestSplat -Verbose:$false -ErrorAction 'Stop' | Out-Null } } |