diff --git a/SnipeitPS/Public/Get-CustomField.ps1 b/SnipeitPS/Public/Get-CustomField.ps1 new file mode 100644 index 0000000..8a26143 --- /dev/null +++ b/SnipeitPS/Public/Get-CustomField.ps1 @@ -0,0 +1,35 @@ +<# +.SYNOPSIS +# Returns a list of all Snipe-IT custom fields + +.PARAMETER url +URL of Snipeit system, can be set using Set-Info command + +.PARAMETER apiKey +Users API Key for Snipeit, can be set using Set-Info command + +.EXAMPLE +Get-Field -url "https://assets.example.com" -token "token..." + +#> + +function Get-CustomField() +{ + Param( + [parameter(mandatory = $true)] + [string]$url, + + [parameter(mandatory = $true)] + [string]$apiKey + ) + + $Parameters = @{ + Uri = "$url/api/v1/fields" + Method = 'Get' + Token = $apiKey + } + + $result = Invoke-SnipeitMethod @Parameters + + $result +} diff --git a/SnipeitPS/Public/Get-Fieldset.ps1 b/SnipeitPS/Public/Get-Fieldset.ps1 new file mode 100644 index 0000000..9e4058d --- /dev/null +++ b/SnipeitPS/Public/Get-Fieldset.ps1 @@ -0,0 +1,37 @@ +<# +.SYNOPSIS +# Gets a list of Snipe-it Fieldsets + +.PARAMETER url +URL of Snipeit system, can be set using Set-Info command + +.PARAMETER apiKey +Users API Key for Snipeit, can be set using Set-Info command + +.EXAMPLE +Get-Fieldset -url "https://assets.example.com" -token "token..." + +.EXAMPLE +Get-Fieldset -url "https://assets.example.com" -token "token..." | Where-Object {$_.name -eq "Windows" } + +#> + +function Get-Fieldset() { + Param( + [parameter(mandatory = $true)] + [string]$url, + + [parameter(mandatory = $true)] + [string]$apiKey + ) + + $Parameters = @{ + Uri = "$url/api/v1/fieldsets" + Method = 'Get' + Token = $apiKey + } + + $result = Invoke-SnipeitMethod @Parameters + + $result +} diff --git a/SnipeitPS/Public/New-CustomField.ps1 b/SnipeitPS/Public/New-CustomField.ps1 new file mode 100644 index 0000000..2fe0482 --- /dev/null +++ b/SnipeitPS/Public/New-CustomField.ps1 @@ -0,0 +1,72 @@ +<# + .SYNOPSIS + Add a new Custom Field to Snipe-it asset system + + .DESCRIPTION + Add a new Custom Field to Snipe-it asset system + + .PARAMETER Name + Name of the Custom Field + + .PARAMETER url + URL of Snipeit system, can be set using Set-Info command + + .PARAMETER apiKey + Users API Key for Snipeit, can be set using Set-Info command + + .EXAMPLE + New-Field -Name "AntivirusInstalled" -Format "BOOLEAN" -HelpText "Is AntiVirus installed on Asset" +#> + +function New-CustomField() +{ + [CmdletBinding( + SupportsShouldProcess = $true, + ConfirmImpact = "Low" + )] + + Param( + [parameter(mandatory = $true)] + [string]$Name, + + [string]$HelpText, + + [string]$Element = "text", + + [string]$Format = "ANY", + + [string]$CustomFormat, + + [parameter(mandatory = $true)] + [string]$url, + + [parameter(mandatory = $true)] + [string]$apiKey + ) + + + $Values = @{ + "name" = $Name + "help_text" = $HelpText + "element" = $Element + "format" = $Format + "custom_format" = $CustomFormat + } + + #Convert Values to JSON format + $Body = $Values | ConvertTo-Json; + + $Parameters = @{ + Uri = "$url/api/v1/fields" + Method = 'post' + Body = $Body + Token = $apiKey + } + + If ($PSCmdlet.ShouldProcess("ShouldProcess?")) + { + $result = Invoke-SnipeitMethod @Parameters + } + + $result +} diff --git a/SnipeitPS/SnipeItPS.psd1 b/SnipeitPS/SnipeItPS.psd1 index 7a5e4a3..91d7429 100644 Binary files a/SnipeitPS/SnipeItPS.psd1 and b/SnipeitPS/SnipeItPS.psd1 differ