Public/Get-WacExtension.ps1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
<#
#> Function Get-WacExtension { [CmdletBinding()] param ( [Parameter(Mandatory = $true)] [String] $GatewayEndpoint, [Parameter()] [String] $ExtensionId, [Parameter()] [PSCredential] $Credential, [Parameter()] [ValidateSet('Installed','Available','All')] [String] $Status = 'All' ) $params = @{ GatewayEndpoint = $GatewayEndpoint APIEndpoint = '/api/extensions' Method = 'Get' } if ($Credential) { $params.Add('Credential',$Credential) } Write-Verbose -Message 'Generating request parameters ...' $requestParameters = Get-RequestParameter @params Write-Verbose -Message 'Invoking get WAC extension api ...' $response = Invoke-WebRequest @requestParameters -ErrorAction SilentlyContinue if ($response.StatusCode -eq 200) { $extensions = (ConvertFrom-Json -InputObject $response.Content).Values $extensionObject = @() foreach ($extension in $extensions) { $extensionHash = [PSCustomObject]@{} foreach ($property in $extension.psobject.properties) { $propertyName = $property.Name $extensionHash | Add-Member -MemberType NoteProperty -Name $propertyName -Value $extension.$propertyName } $extensionObject += $extensionHash } if ($Status -ne 'All') { $extensions = $extensionObject.Where({$_.Status -eq $Status}) } else { $extensions = $extensionObject } if ($ExtensionId) { return ($extensions | Where-Object { $_.id -eq $ExtensionId }) } else { return $extensions } } else { throw 'Error invoking get WAC extension api ...' } } |