functions/Set-ZGHost.ps1
|
function Set-ZGHost { param ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $True)] [long] $HostId, [Parameter(Mandatory = $false)] [long] $GroupId, [Parameter(Mandatory = $false)] [int] $Status, [Parameter(Mandatory = $false)] [string] $Hostname, [Parameter(Mandatory = $false)] [string] $Name, [Parameter(Mandatory = $false)] [string] $Descritpion, [Parameter(Mandatory = $false)] [long[]] $TemplateId, [Parameter(Mandatory = $false)] [long[]] $UnlinkTemplateId ) Begin { $parameters = @{ hostid = $HostId } if ($PSBoundParameters.ContainsKey('Status')) { $parameters.status = $Status } if ($PSBoundParameters.ContainsKey('Name')) { $parameters.name = $Name } if ($PSBoundParameters.ContainsKey('Hostname')) { $parameters.host = $Hostname } if ($PSBoundParameters.ContainsKey('Description')) { $parameters.description = $Description } if ($PSBoundParameters.ContainsKey('TemplateId')) { $parameters.templates = (Get-ZGTemplate -TemplateId $TemplateId | Select-Object -Property templateid) } if ($PSBoundParameters.ContainsKey('UnlinkTemplateId')) { $parameters.templates_clear = (Get-ZGTemplate -TemplateId $UnlinkTemplateId | Select-Object -Property templateid) } } Process { $response = Invoke-ZGRequest -Method "POST" -Body @{ "jsonrpc" = "2.0" "method" = "host.update" "params" = $parameters "auth" = $script:RequestAuth "id" = $script:RequestID } $response.result } } |