custom/New-ZNSettingsPushNotification.ps1
<# .Synopsis Create a push notification setting .Description Create a push notification setting .Outputs ZeroNetworks.PowerShell.Cmdlets.Api.Models.Any .Link https://github.com/zeronetworks/zero-powershell/New-ZNSettingsPushNotification #> function New-ZNSettingsPushNotification { [OutputType([ZeroNetworks.PowerShell.Cmdlets.Api.Models.Any])] [CmdletBinding(PositionalBinding=$false)] Param( [Parameter(Mandatory, HelpMessage="duo or microsoftAuthenticator", ParameterSetName = 'CreateDuo')] [Parameter(Mandatory, HelpMessage="duo or microsoftAuthenticator", ParameterSetName = 'CreateMSFT')] [ValidateSet("duo","microsoftAuthenticator")] [string] $PushIdentityProviderId, [Parameter(Mandatory, HelpMessage="Api Hostname", ParameterSetName = 'CreateDuo')] [string] $ApiHostname, [Parameter(Mandatory, HelpMessage="Integration Key", ParameterSetName = 'CreateDuo')] [string] $IntegrationKey, [Parameter(Mandatory, HelpMessage="TenantId", ParameterSetName = 'CreateMSFT')] [string] $TenantId, [Parameter(Mandatory, HelpMessage="Secret Key", ParameterSetName = 'CreateDuo')] [Parameter(Mandatory, HelpMessage="Secret Key", ParameterSetName = 'CreateMSFT')] [string] $SecretKey ) process { $Object = [ZeroNetworks.PowerShell.Cmdlets.Api.Models.settingsPushNotificaitionsBody]::New() switch ($PsCmdlet.ParameterSetName) { "CreateDuo" { $object.Host = $PSBoundParameters['ApiHostname'] $null = $PSBoundParameters.Remove('ApiHostname') $object.Id = $PSBoundParameters['IntegrationKey'] $null = $PSBoundParameters.Remove('IntegrationKey') $object.IdentityProvider = "duo" $object.SecretKey = $PSBoundParameters['SecretKey'] $null = $PSBoundParameters.Remove('SecretKey') } "CreateMSFT" { $object.Id = $PSBoundParameters['TenantId'] $null = $PSBoundParameters.Remove('TenantId') $object.IdentityProvider = "microsoftAuthentictor" $object.SecretKey = $PSBoundParameters['SecretKey'] $null = $PSBoundParameters.Remove('SecretKey') } } $null = $PSBoundParameters.Remove['PushIdentityProviderId'] $null = $PSBoundParameters.Add('Body', $object) ZeroNetworks.internal\New-ZNSettingsPushNotification @PSBoundParameters } } |