Public/New-Alarm.ps1
# Code generated from specification version 1.0.0: DO NOT EDIT Function New-Alarm { <# .SYNOPSIS Create a new alarm .DESCRIPTION Create a new alarm .EXAMPLE PS> New-Alarm -Device $device.id -Type c8y_TestAlarm -Time "-0s" -Text "Test alarm" -Severity MAJOR Create a new alarm for device .EXAMPLE PS> Get-Device -Id $device.id | PSc8y\New-Alarm -Type c8y_TestAlarm -Time "-0s" -Text "Test alarm" -Severity MAJOR Create a new alarm for device (using pipeline) #> [cmdletbinding(SupportsShouldProcess = $true, PositionalBinding=$true, HelpUri='', ConfirmImpact = 'High')] [Alias()] [OutputType([object])] Param( # The ManagedObject that the alarm originated from (required) [Parameter(Mandatory = $true, ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true)] [object[]] $Device, # Identifies the type of this alarm, e.g. 'com_cumulocity_events_TamperEvent'. (required) [Parameter(Mandatory = $true)] [string] $Type, # Time of the alarm. [Parameter()] [string] $Time, # Text description of the alarm. (required) [Parameter(Mandatory = $true)] [string] $Text, # The severity of the alarm: CRITICAL, MAJOR, MINOR or WARNING. Must be upper-case. (required) [Parameter(Mandatory = $true)] [ValidateSet('CRITICAL','MAJOR','MINOR','WARNING')] [string] $Severity, # The status of the alarm: ACTIVE, ACKNOWLEDGED or CLEARED. If status was not appeared, new alarm will have status ACTIVE. Must be upper-case. [Parameter()] [ValidateSet('ACTIVE','ACKNOWLEDGED','CLEARED')] [string] $Status, # Additional properties of the alarm. [Parameter()] [object] $Data, # Include raw response including pagination information [Parameter()] [switch] $Raw, # Outputfile [Parameter()] [string] $OutputFile, # NoProxy [Parameter()] [switch] $NoProxy, # Session path [Parameter()] [string] $Session, # TimeoutSec timeout in seconds before a request will be aborted [Parameter()] [double] $TimeoutSec, # Don't prompt for confirmation [Parameter()] [switch] $Force ) Begin { $Parameters = @{} if ($PSBoundParameters.ContainsKey("Type")) { $Parameters["type"] = $Type } if ($PSBoundParameters.ContainsKey("Time")) { $Parameters["time"] = $Time } if ($PSBoundParameters.ContainsKey("Text")) { $Parameters["text"] = $Text } if ($PSBoundParameters.ContainsKey("Severity")) { $Parameters["severity"] = $Severity } if ($PSBoundParameters.ContainsKey("Status")) { $Parameters["status"] = $Status } if ($PSBoundParameters.ContainsKey("Data")) { $Parameters["data"] = ConvertTo-JsonArgument $Data } if ($PSBoundParameters.ContainsKey("OutputFile")) { $Parameters["outputFile"] = $OutputFile } if ($PSBoundParameters.ContainsKey("NoProxy")) { $Parameters["noProxy"] = $NoProxy } if ($PSBoundParameters.ContainsKey("Session")) { $Parameters["session"] = $Session } if ($PSBoundParameters.ContainsKey("TimeoutSec")) { $Parameters["timeout"] = $TimeoutSec * 1000 } } Process { foreach ($item in (PSc8y\Expand-Device $Device)) { if ($item) { $Parameters["device"] = if ($item.id) { $item.id } else { $item } } if (!$Force -and !$WhatIfPreference -and !$PSCmdlet.ShouldProcess( (PSc8y\Get-C8ySessionProperty -Name "tenant"), (Format-ConfirmationMessage -Name $PSCmdlet.MyInvocation.InvocationName -InputObject $item) )) { continue } Invoke-Command ` -Noun "alarms" ` -Verb "create" ` -Parameters $Parameters ` -Type "application/vnd.com.nsn.cumulocity.alarm+json" ` -ItemType "" ` -ResultProperty "" ` -Raw:$Raw ` -IncludeAll:$IncludeAll } } End {} } |