functions/New-AzState.ps1
############################################ # Custom enum data sets used within module # ############################################ enum CacheMode { UseCache SkipCache } ####################### # Function definition # ####################### function New-AzState { ############################################### # Configure PSScriptAnalyzer rule suppression # ############################################### # The following SuppressMessageAttribute entries are used to surpress # PSScriptAnalyzer tests against known exceptions as per: # https://github.com/powershell/psscriptanalyzer#suppressing-rules [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseShouldProcessForStateChangingFunctions', '', Justification = 'Only creating new object with custom type')] # May refactor to support ShouldProcess [CmdletBinding()] param ( [Parameter()] [String]$Id, [Parameter()] [CacheMode]$CacheMode ) $ArgumentList = @{} if ($Id) { $ArgumentList = @{ ArgumentList = [Object[]]$Id } } if ($CacheMode) { $ArgumentList.ArgumentList += $CacheMode } $AzState = New-Object -TypeName AzState @ArgumentList return $AzState } |