From 865a07d4ad37058549765c50f8d30b17a5b70992 Mon Sep 17 00:00:00 2001 From: Frank Geisler Date: Fri, 18 Aug 2023 08:19:20 +0200 Subject: [PATCH] Added Cmdlet New-SnipeItCustomFieldset --- .../Public/New-SnipeitCustomFieldset.ps1 | 73 +++++++++++++++++++ SnipeitPS/SnipeitPS.psd1 | 1 + 2 files changed, 74 insertions(+) create mode 100644 SnipeitPS/Public/New-SnipeitCustomFieldset.ps1 diff --git a/SnipeitPS/Public/New-SnipeitCustomFieldset.ps1 b/SnipeitPS/Public/New-SnipeitCustomFieldset.ps1 new file mode 100644 index 0000000..625da07 --- /dev/null +++ b/SnipeitPS/Public/New-SnipeitCustomFieldset.ps1 @@ -0,0 +1,73 @@ +<# + .SYNOPSIS + Add a new Custom Fieldset to Snipe-it asset system + + .DESCRIPTION + Add a new Custom Field Set to Snipe-it asset system + + .PARAMETER name + The fieldsets's name + + .PARAMETER url + Deprecated parameter, please use Connect-SnipeitPS instead. URL of Snipeit system. + + .PARAMETER apiKey + Deprecated parameter, please use Connect-SnipeitPS instead. Users API Key for Snipeit. + + .EXAMPLE + New-SnipeitCustomFieldSet -Name "Notebook Fields" +#> + +function New-SnipeitCustomFieldSet() { + [CmdletBinding( + SupportsShouldProcess = $true, + ConfirmImpact = "Low" + )] + + Param( + [parameter(mandatory = $true)] + [string]$name, + + [parameter(mandatory = $false)] + [string]$url, + + [parameter(mandatory = $false)] + [string]$apiKey + ) + + begin { + Test-SnipeitAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name + + $Values = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters + + $Parameters = @{ + Api = "/api/v1/fieldsets" + Method = 'post' + Body = $Values + } + + if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) { + Set-SnipeitPSLegacyApiKey -apiKey $apikey + } + + if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) { + Set-SnipeitPSLegacyUrl -url $url + } + } + + process{ + if ($PSCmdlet.ShouldProcess("ShouldProcess?")) { + $result = Invoke-SnipeitMethod @Parameters + } + + $result + } + + end { + # reset legacy sessions + if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url -or $PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) { + Reset-SnipeitPSLegacyApi + } + } +} + diff --git a/SnipeitPS/SnipeitPS.psd1 b/SnipeitPS/SnipeitPS.psd1 index c742924..fb78e75 100644 --- a/SnipeitPS/SnipeitPS.psd1 +++ b/SnipeitPS/SnipeitPS.psd1 @@ -100,6 +100,7 @@ FunctionsToExport = @( 'New-SnipeitComponent', 'New-SnipeitConsumable', 'New-SnipeitCustomField', + 'New-SnipeitCustomFieldSet', 'New-SnipeitDepartment', 'New-SnipeitLicense', 'New-SnipeitLocation',