Merge pull request #56 from timothymmurphy/Feature/New-Category

Create New-Category.ps1
This commit is contained in:
Stephen 2021-04-07 11:43:23 +01:00 committed by GitHub
commit 51b65be06c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 82 additions and 0 deletions

View file

@ -0,0 +1,82 @@
<#
.SYNOPSIS
# Create a new Snipe-IT Category
.PARAMETER name
Name of new category to be created
.PARAMETER type
Type of new category to be created (asset, accessory, consumable, component, license)
.PARAMETER url
URL of Snipeit system, can be set using Set-Info command
.PARAMETER apiKey
User's API Key for Snipeit, can be set using Set-Info command
.PARAMETER use_default_eula
If switch is present, use the primary default EULA
.PARAMETER require_acceptance
If switch is present, require users to confirm acceptance of assets in this category
.PARAMETER checkin_email
If switch is present, send email to user on checkin/checkout
.EXAMPLE
New-Category -name "Laptops" -category_type asset -url "Snipe-IT URL here..." -apiKey "API key here..."
#>
function New-Category()
{
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true)]
[string]$name,
[parameter(mandatory = $true)]
[ValidateSet("asset", "accessory", "consumable", "component", "license")]
[string]$category_type,
[parameter(mandatory = $true)]
[string]$url,
[parameter(mandatory = $true)]
[string]$apiKey,
[switch]$use_default_eula,
[switch]$require_acceptance,
[switch]$checkin_email
)
$Values = @{
"name" = $name
"category_type" = $category_type
}
if ($use_default_eula) {
$Values += @{"use_default_eula" = $true}
}
if ($require_acceptance) {
$Values += @{"require_acceptance" = $true}
}
if ($checkin_email) {
$Values += @{"checkin_email" = $true}
}
$Body = $Values | ConvertTo-Json;
$Parameters = @{
Uri = "$url/api/v1/categories"
Method = 'POST'
Body = $Body
Token = $apiKey
}
If ($PSCmdlet.ShouldProcess("ShouldProcess?"))
{
$result = Invoke-SnipeitMethod @Parameters
}
$result
}

Binary file not shown.