public/eloomi/groups/New-EloomiLevel.ps1
function New-EloomiLevel { <# .SYNOPSIS Create a new Eloomi level. .DESCRIPTION Create a level in Eloomi using the API. .EXAMPLE New-EloomiLevel -ApiKey '<secret>' -Name "MyLevelName"; #> [cmdletbinding()] [OutputType([object])] param ( # API Key for Eloomi. [Parameter(Mandatory = $false, Position = 0, ValueFromPipelineByPropertyName = $true)] [ValidateNotNullOrEmpty()] [string]$ApiKey = (Get-EloomiApiKey), # Name. [Parameter(Mandatory = $true, Position = 1, ValueFromPipelineByPropertyName = $true)] [ValidateNotNullOrEmpty()] [ValidateLength(3, 30)] [string]$Name ) BEGIN { # Write to log. $customProgress = Write-CustomProgress -Activity $MyInvocation.MyCommand.Name -CurrentOperation 'Creating Eloomi level'; # API URI. $uri = 'https://api.eloomi.io/public/v1/user-groups/levels'; # Parameters. $paramSplatting = @{ 'ApiKey' = $ApiKey; 'Uri' = $uri; 'Method' = 'POST'; }; # Create body. $body = @{ 'name' = $Name; } # Add body to parameters. $paramSplatting.Add('Body', $body); } PROCESS { # Write to log. Write-CustomLog -Message ('Trying to create Eloomi level with name {0}' -f $Name) -Level 'Verbose'; # Invoke Eloomi API. $response = Invoke-EloomiApi @paramSplatting; # Write to log. Write-CustomLog -Message ('Successfully created Eloomi level with name {0}' -f $Name) -Level 'Verbose'; } END { # Write to log. Write-CustomProgress @customProgress; # Return result. return $response; } } |