Files
ZertoApiWrapper/ZertoApiWrapper/Public/Get-ZertoEvent.ps1
T
Wes Carroll 832a0fd4bd Update return variable to Array from ArrayList
Update return variable to Array from ArrayList to allow for proper pipeline processing.
2019-02-20 11:24:08 -05:00

76 lines
2.5 KiB
PowerShell

function Get-ZertoEvent {
[cmdletbinding( defaultParameterSetName = "main" )]
param(
[Parameter( ParameterSetName = "filter" )]
[string]$startDate,
[Parameter( ParameterSetName = "filter" )]
[string]$endDate,
[Parameter( ParameterSetName = "filter" )]
[string]$vpg,
[Parameter( ParameterSetName = "filter" )]
[string]$vpgIdentifier,
[Parameter( ParameterSetName = "filter" )]
[string]$eventType,
[Parameter( ParameterSetName = "filter" )]
[string]$siteName,
[Parameter( ParameterSetName = "filter" )]
[string]$siteIdentifier,
[Parameter( ParameterSetName = "filter" )]
[string]$zorgIdentifier,
[Parameter( ParameterSetName = "filter" )]
[string]$entityType,
[Parameter( ParameterSetName = "filter" )]
[string]$userName,
[Parameter( ParameterSetName = "filter" )]
[string]$category,
[Parameter( ParameterSetName = "filter" )]
[string]$eventCategory,
[Parameter( ParameterSetName = "filter" )]
[string]$alertIdentifier,
[Parameter( ParameterSetName = "eventId", Mandatory = $true, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true )]
[string[]]$eventId,
[Parameter( ParameterSetName = "categories", Mandatory = $true )]
[switch]$categories,
[Parameter( ParameterSetName = "entities", Mandatory = $true )]
[switch]$entities,
[Parameter( ParameterSetName = "types", Mandatory = $true )]
[switch]$types
)
begin {
$baseUri = "events"
$returnObject = @()
}
process {
switch ( $PSCmdlet.ParameterSetName ) {
"main" {
$uri = "{0}" -f $baseUri
$returnObject = Invoke-ZertoRestRequest -uri $uri
}
"eventId" {
$returnObject = foreach ( $id in $eventId ) {
$uri = "{0}/{1}" -f $baseUri, $id
Invoke-ZertoRestRequest -uri $uri
}
}
"filter" {
$filter = Get-ZertoApiFilter -filterTable $PSBoundParameters
$uri = "{0}{1}" -f $baseUri, $filter
$returnObject = Invoke-ZertoRestRequest -uri $uri
}
default {
$uri = "{0}/{1}" -f $baseUri, $PSCmdlet.ParameterSetName.ToLower()
$returnObject = Invoke-ZertoRestRequest -uri $uri
}
}
}
end {
return $returnObject
}
}