Functions/Vendors/Get-AleroVendors.ps1
function Get-AleroVendors { [CmdletBinding(DefaultParameterSetName='ByString')] param ( [Parameter( Mandatory, ValueFromPipelineByPropertyName, ParameterSetName='ByString', HelpMessage='Token to authenticate to Alero.' )] [Parameter( Mandatory, ValueFromPipelineByPropertyName, ParameterSetName='ByVendorId', HelpMessage='Token to authenticate to Alero.' )] [Parameter( Mandatory, ValueFromPipelineByPropertyName, ParameterSetName='ByPhoneNumber', HelpMessage='Token to authenticate to Alero.' )] [System.Security.SecureString]$Authn, [Parameter( ParameterSetName='ByString', HelpMessage='The ID of the Alero user who invited this vendor' )] [string]$InvitedBy, [Parameter( ParameterSetName='ByString', HelpMessage='The maximum number of entries to return' )] [int]$Limit = 0, [Parameter( ParameterSetName='ByString', HelpMessage='The number of entries to skip' )] [int]$Offset = 100, [Parameter( ParameterSetName='ByString', HelpMessage='The field in which to perform the search' )] [ValidateSet('ALL', 'GROUPS', 'COMPANY', 'FULLNAME')] [string]$SearchIn = 'FULLNAME', [Parameter( ParameterSetName='ByString', HelpMessage='The field in which to perform the search' )] [string]$SearchString, [Parameter( Mandatory, ParameterSetName='ByVendorId', HelpMessage='The unique ID of the vendor' )] [string]$VendorId, [Parameter( Mandatory, ParameterSetName='ByPhoneNumber', HelpMessage='The phone number that the user set when they registered for Alero, in international format' )] [string]$PhoneNumber ) begin { } process { switch ($PSCmdlet.ParameterSetName) { "ByString" { $url = [string]::Concat("https://api.alero.io/v2-edge/vendors?", "invitedBy=$InvitedBy", "&limit=$Limit", "&offset=$Offset", "&searchIn=$SearchIn", "&searchString=$SearchString" ) } "ByVendorId" { $url = "https://api.alero.io/v2-edge/vendors/$VendorId" } "ByPhoneNumber" { $url = "https://api.alero.io/v2-edge/vendors/phone/$PhoneNumber" } Default {} } $result = Invoke-RestMethod -Method Get -Uri $url -Authentication Bearer -Token $Authn } end { Write-Output -InputObject $result Remove-Variable -Name result } } |