Private/Invoke/Invoke-CWMNewMaster.ps1
function Invoke-CWMNewMaster { [CmdletBinding(SupportsShouldProcess)] param ( $Arguments, [string]$Endpoint, [string[]]$Skip ) # Skip common parameters $Skip += 'Debug', 'ErrorAction', 'ErrorVariable', 'InformationAction', 'InformationVariable', 'OutVariable', 'OutBuffer', 'PipelineVariable', 'Verbose', 'WarningAction', 'WarningVariable', 'WhatIf', 'Confirm', 'Version', 'VersionAutomatic', 'grandparentId', 'parentId' if ($Arguments.Body) { $Body = $Arguments.Body } else { $Body = @{} foreach ($i in $Arguments.GetEnumerator()) { if ($Skip -notcontains $i.Key) { $Body.Add($i.Key, $i.value) } } $Body = ConvertTo-Json $Body -Depth 100 } Write-Verbose $Body $ContentType = 'application/json' if ($Arguments.ContentType) { $ContentType = $Arguments.ContentType } $URI = New-CWMUrl -Endpoint $Endpoint $WebRequestArguments = @{ Uri = $URI Method = 'Post' ContentType = $ContentType Body = $Body Version = $Arguments.Version Headers = $Arguments.Headers } if ($PSCmdlet.ShouldProcess($WebRequestArguments.URI, "Invoke-CWMNewMaster, with body:`r`n$Body`r`n")) { $Result = Invoke-CWMWebRequest -Arguments $WebRequestArguments if ($Result.content) { $Result = $Result.content | ConvertFrom-Json } } $Result } |