functions/New-ZGMaintenance.ps1
|
function New-ZGMaintenance { param ( [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $false)] [long[]] $HostId, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $false)] [long[]] $GroupId, [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $false)] [string] $Name, [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $false)] [string] $Description, [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $false)] [datetime] $From, [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $false)] [datetime] $To, [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $false)] [hashtable[]] $Timeperiod ) Begin { $parameters = @{ name = $Name active_since = [int][double]::Parse((Get-Date $From -UFormat %s)) active_till = [int][double]::Parse((Get-Date $To -UFormat %s)) tags_evaltype = 0 timeperiods = $Timeperiod } if ($PSBoundParameters.ContainsKey('HostId')) { $parameters.hosts = (Get-ZGHost -HostId $HostId | Select-Object -Property hostid) } if ($PSBoundParameters.ContainsKey('GroupId')) { $parameters.groups = (Get-ZGGroup -GroupId $GroupId | Select-Object -Property groupid) } } Process { $response = Invoke-ZGRequest -Method "POST" -Body @{ "method" = "maintenance.create" "params" = $parameters "auth" = $script:RequestAuth } $response.result } } |