ParameterSets and AllowEmptyString

This commit is contained in:
Petri Asikainen 2021-06-07 21:16:51 +03:00
parent d4c138604d
commit a2bda89abb
21 changed files with 160 additions and 2 deletions

View file

@ -36,25 +36,38 @@ Get-SnipeItAccessory -id 1
function Get-SnipeItAccessory() { function Get-SnipeItAccessory() {
Param( Param(
[parameter(ParameterSetName='Search')]
[string]$search, [string]$search,
[parameter(ParameterSetName='Get by ID')]
[int]$id,
[parameter(ParameterSetName='Search')]
[int]$company_id, [int]$company_id,
[parameter(ParameterSetName='Search')]
[int]$category_id, [int]$category_id,
[parameter(ParameterSetName='Search')]
[int]$manufacturer_id, [int]$manufacturer_id,
[parameter(ParameterSetName='Search')]
[int]$supplier_id, [int]$supplier_id,
[parameter(ParameterSetName='Search')]
[string]$sort = "created_at", [string]$sort = "created_at",
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")] [ValidateSet("asc", "desc")]
[string]$order = "desc", [string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50, [int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset, [int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false, [switch]$all = $false,
[parameter(mandatory = $true)] [parameter(mandatory = $true)]
@ -65,6 +78,10 @@ function Get-SnipeItAccessory() {
) )
Test-SnipeItAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name Test-SnipeItAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
if ($id -and $search){
throw "Please specify only one of -id or -search parameter"
}
$SearchParameter = . Get-ParameterValue $MyInvocation.MyCommand.Parameters $SearchParameter = . Get-ParameterValue $MyInvocation.MyCommand.Parameters
$Parameters = @{ $Parameters = @{
@ -74,6 +91,10 @@ function Get-SnipeItAccessory() {
Token = $apiKey Token = $apiKey
} }
if($id){
$Parameters.Uri ="$url/api/v1/accessories/$id"
}
if ($all) { if ($all) {
$offstart = $(if($offset){$offset} Else {0}) $offstart = $(if($offset){$offset} Else {0})
$callargs = $SearchParameter $callargs = $SearchParameter

View file

@ -74,43 +74,63 @@ Get-SnipeItAsset -asset_tag "myAssetTag"-url "https://assets.example.com"-token
function Get-SnipeItAsset() { function Get-SnipeItAsset() {
Param( Param(
[parameter(ParameterSetName='Search')]
[string]$search, [string]$search,
[parameter(ParameterSetName='Get with id')]
[int]$id, [int]$id,
[parameter(ParameterSetName='Get with asset tag')]
[string]$asset_tag, [string]$asset_tag,
[parameter(ParameterSetName='Get with serial')]
[Alias('asset_serial')] [Alias('asset_serial')]
[string]$serial, [string]$serial,
[parameter(ParameterSetName='Search')]
[string]$order_number, [string]$order_number,
[parameter(ParameterSetName='Search')]
[int]$model_id, [int]$model_id,
[parameter(ParameterSetName='Search')]
[int]$category_id, [int]$category_id,
[parameter(ParameterSetName='Search')]
[int]$manufacturer_id, [int]$manufacturer_id,
[parameter(ParameterSetName='Search')]
[int]$company_id, [int]$company_id,
[parameter(ParameterSetName='Search')]
[int]$location_id, [int]$location_id,
[parameter(ParameterSetName='Search')]
[int]$depreciation_id, [int]$depreciation_id,
[parameter(ParameterSetName='Search')]
[bool]$requestable = $false, [bool]$requestable = $false,
[parameter(ParameterSetName='Search')]
[string]$status, [string]$status,
[parameter(ParameterSetName='Search')]
[int]$status_id, [int]$status_id,
[parameter(ParameterSetName='Search')]
[string]$sort = "created_at", [string]$sort = "created_at",
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")] [ValidateSet("asc", "desc")]
[string]$order = "desc", [string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50, [int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset, [int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false, [switch]$all = $false,
[parameter(mandatory = $true)] [parameter(mandatory = $true)]
[string]$url, [string]$url,

View file

@ -34,17 +34,23 @@ Get-SnipeItCategory -search "Laptop"
function Get-SnipeItCategory() function Get-SnipeItCategory()
{ {
Param( Param(
[parameter(ParameterSetName='Search')]
[string]$search, [string]$search,
[parameter(ParameterSetName='Get with ID')]
[int]$id, [int]$id,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")] [ValidateSet("asc", "desc")]
[string]$order = "desc", [string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50, [int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset, [int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false, [switch]$all = $false,
[parameter(mandatory = $true)] [parameter(mandatory = $true)]

View file

@ -35,17 +35,23 @@ Gets specific company
function Get-SnipeItCompany() function Get-SnipeItCompany()
{ {
Param( Param(
[parameter(ParameterSetName='Search')]
[string]$search, [string]$search,
[parameter(ParameterSetName='Get with ID')]
[int]$id, [int]$id,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")] [ValidateSet("asc", "desc")]
[string]$order = "desc", [string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50, [int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset, [int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false, [switch]$all = $false,
[parameter(mandatory=$true)] [parameter(mandatory=$true)]

View file

@ -39,26 +39,36 @@ Returns specific component
function Get-SnipeItComponent() { function Get-SnipeItComponent() {
Param( Param(
[parameter(ParameterSetName='Search')]
[string]$search, [string]$search,
[parameter(ParameterSetName='Get with ID')]
[int]$id, [int]$id,
[parameter(ParameterSetName='Search')]
[int]$category_id, [int]$category_id,
[parameter(ParameterSetName='Search')]
[int]$company_id, [int]$company_id,
[parameter(ParameterSetName='Search')]
[int]$location_id, [int]$location_id,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")] [ValidateSet("asc", "desc")]
[string]$order = "desc", [string]$order = "desc",
[parameter(ParameterSetName='Search')]
[ValidateSet('id', 'name', 'min_amt', 'order_number', 'serial', 'purchase_date', 'purchase_cost', 'company', 'category', 'qty', 'location', 'image', 'created_at')] [ValidateSet('id', 'name', 'min_amt', 'order_number', 'serial', 'purchase_date', 'purchase_cost', 'company', 'category', 'qty', 'location', 'image', 'created_at')]
[string]$sort = "created_at", [string]$sort = "created_at",
[parameter(ParameterSetName='Search')]
[int]$limit = 50, [int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset, [int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false, [switch]$all = $false,
[parameter(mandatory = $true)] [parameter(mandatory = $true)]

View file

@ -37,19 +37,26 @@ Get-SnipeItDepartment -id 1
function Get-SnipeItDepartment() function Get-SnipeItDepartment()
{ {
Param( Param(
[parameter(ParameterSetName='Search')]
[string]$search, [string]$search,
[parameter(ParameterSetName='Get with ID')]
[int]$id, [int]$id,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")] [ValidateSet("asc", "desc")]
[string]$order = "desc", [string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50, [int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset, [int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false, [switch]$all = $false,
[parameter(ParameterSetName='Search')]
[ValidateSet('id', 'name', 'image', 'users_count', 'created_at')] [ValidateSet('id', 'name', 'image', 'users_count', 'created_at')]
[string]$sort = "created_at", [string]$sort = "created_at",

View file

@ -34,42 +34,60 @@ Get-SnipeItLicense -id 1
function Get-SnipeItLicense() { function Get-SnipeItLicense() {
Param( Param(
[parameter(ParameterSetName='Search')]
[string]$search, [string]$search,
[parameter(ParameterSetName='Get with ID')]
[int]$id, [int]$id,
[parameter(ParameterSetName='Search')]
[string]$name, [string]$name,
[parameter(ParameterSetName='Search')]
[int] $company_id, [int] $company_id,
[parameter(ParameterSetName='Search')]
[string]$product_key, [string]$product_key,
[parameter(ParameterSetName='Search')]
[string]$order_number, [string]$order_number,
[parameter(ParameterSetName='Search')]
[string]$purchase_order, [string]$purchase_order,
[parameter(ParameterSetName='Search')]
[string]$license_name, [string]$license_name,
[parameter(ParameterSetName='Search')]
[mailaddress]$license_email, [mailaddress]$license_email,
[parameter(ParameterSetName='Search')]
[int]$manufacturer_id, [int]$manufacturer_id,
[parameter(ParameterSetName='Search')]
[int]$supplier_id, [int]$supplier_id,
[parameter(ParameterSetName='Search')]
[int]$depreciation_id, [int]$depreciation_id,
[parameter(ParameterSetName='Search')]
[int]$category_id, [int]$category_id,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")] [ValidateSet("asc", "desc")]
[string]$order = "desc", [string]$order = "desc",
[parameter(ParameterSetName='Search')]
[ValidateSet('id', 'name', 'purchase_cost', 'expiration_date', 'purchase_order', 'order_number', 'notes', 'purchase_date', 'serial', 'company', 'category', 'license_name', 'license_email', 'free_seats_count', 'seats', 'manufacturer', 'supplier')] [ValidateSet('id', 'name', 'purchase_cost', 'expiration_date', 'purchase_order', 'order_number', 'notes', 'purchase_date', 'serial', 'company', 'category', 'license_name', 'license_email', 'free_seats_count', 'seats', 'manufacturer', 'supplier')]
[string]$sort = "created_at", [string]$sort = "created_at",
[parameter(ParameterSetName='Search')]
[int]$limit = 50, [int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset, [int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false, [switch]$all = $false,
[parameter(mandatory = $true)] [parameter(mandatory = $true)]

View file

@ -34,17 +34,23 @@ Get-SnipeItLocation -id 3
function Get-SnipeitLocation() function Get-SnipeitLocation()
{ {
Param( Param(
[parameter(ParameterSetName='Search')]
[string]$search, [string]$search,
[parameter(ParameterSetName='Get with ID')]
[int]$id, [int]$id,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")] [ValidateSet("asc", "desc")]
[string]$order = "desc", [string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50, [int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset, [int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false, [switch]$all = $false,
[parameter(mandatory = $true)] [parameter(mandatory = $true)]

View file

@ -36,17 +36,23 @@ Returns manufacturer with id 3
function Get-SnipeItManufacturer() function Get-SnipeItManufacturer()
{ {
Param( Param(
[parameter(ParameterSetName='Search')]
[string]$search, [string]$search,
[parameter(ParameterSetName='Get with ID')]
[int]$id, [int]$id,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")] [ValidateSet("asc", "desc")]
[string]$order = "desc", [string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50, [int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset, [int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false, [switch]$all = $false,
[parameter(mandatory = $true)] [parameter(mandatory = $true)]

View file

@ -34,17 +34,23 @@ Get-SnipeItModel -id 1
function Get-SnipeItModel() function Get-SnipeItModel()
{ {
Param( Param(
[parameter(ParameterSetName='Search')]
[string]$search, [string]$search,
[parameter(ParameterSetName='Get with ID')]
[int]$id, [int]$id,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")] [ValidateSet("asc", "desc")]
[string]$order = "desc", [string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50, [int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset, [int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false, [switch]$all = $false,
[parameter(mandatory = $true)] [parameter(mandatory = $true)]

View file

@ -34,17 +34,23 @@ Get-SnipeItStatus -id 3
function Get-SnipeItStatus() function Get-SnipeItStatus()
{ {
Param( Param(
[parameter(ParameterSetName='Search')]
[string]$search, [string]$search,
[parameter(ParameterSetName='Get with ID')]
[int]$id, [int]$id,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")] [ValidateSet("asc", "desc")]
[string]$order = "desc", [string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50, [int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset, [int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false, [switch]$all = $false,
[parameter(mandatory = $true)] [parameter(mandatory = $true)]

View file

@ -34,17 +34,23 @@ Get-SnipeItSupplier -id 2
function Get-SnipeItSupplier() function Get-SnipeItSupplier()
{ {
Param( Param(
[parameter(ParameterSetName='Search')]
[string]$search, [string]$search,
[parameter(ParameterSetName='Get with ID')]
[int]$id, [int]$id,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")] [ValidateSet("asc", "desc")]
[string]$order = "desc", [string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50, [int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset, [int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false, [switch]$all = $false,
[parameter(mandatory = $true)] [parameter(mandatory = $true)]

View file

@ -44,29 +44,41 @@ Get-SnipeItUser -email user@somedomain.com
function Get-SnipeItUser() { function Get-SnipeItUser() {
Param( Param(
[parameter(ParameterSetName='Search')]
[string]$search, [string]$search,
[parameter(ParameterSetName='Get with ID')]
[string]$id, [string]$id,
[parameter(ParameterSetName='Search')]
[int]$company_id, [int]$company_id,
[parameter(ParameterSetName='Search')]
[int]$location_id, [int]$location_id,
[parameter(ParameterSetName='Search')]
[int]$group_id, [int]$group_id,
[parameter(ParameterSetName='Search')]
[int]$department_id, [int]$department_id,
[parameter(ParameterSetName='Search')]
[string]$username, [string]$username,
[parameter(ParameterSetName='Search')]
[string]$email, [string]$email,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")] [ValidateSet("asc", "desc")]
[string]$order = "desc", [string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50, [int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset, [int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false, [switch]$all = $false,
[parameter(mandatory = $true)] [parameter(mandatory = $true)]

View file

@ -17,6 +17,9 @@ Quantity of the components you have
.PARAMETER location_id .PARAMETER location_id
ID number of the location the accessory is assigned to ID number of the location the accessory is assigned to
.PARAMETER order_number
Order number of the component
.PARAMETER purchase_date .PARAMETER purchase_date
Date accessory was purchased Date accessory was purchased
@ -56,6 +59,8 @@ function New-SnipeItComponent() {
[int]$location_id, [int]$location_id,
[string]$order_number,
[datetime]$purchase_date, [datetime]$purchase_date,
[float]$purchase_cost, [float]$purchase_cost,

View file

@ -84,7 +84,7 @@ function Set-SnipeItAccessory() {
[ValidateRange(1, [int]::MaxValue)] [ValidateRange(1, [int]::MaxValue)]
[int]$manufacturer_id, [int]$manufacturer_id,
[AllowEmptyString] [AllowEmptyString()]
[string]$order_number, [string]$order_number,
[float]$purchase_cost, [float]$purchase_cost,
@ -113,6 +113,7 @@ function Set-SnipeItAccessory() {
} }
$Body = $Values | ConvertTo-Json; $Body = $Values | ConvertTo-Json;
Write-Verbose "Body: $Body"
} }
process { process {

View file

@ -86,6 +86,7 @@ function Set-SnipeItAsset()
[parameter(mandatory = $true,ValueFromPipelineByPropertyName)] [parameter(mandatory = $true,ValueFromPipelineByPropertyName)]
[int[]]$id, [int[]]$id,
[AllowEmptyString()]
[string]$name, [string]$name,
[int]$status_id, [int]$status_id,
@ -100,6 +101,7 @@ function Set-SnipeItAsset()
[string]$serial, [string]$serial,
[AllowEmptyString()]
[string]$order_number, [string]$order_number,
[int]$warranty_months, [int]$warranty_months,

View file

@ -20,6 +20,9 @@ Quantity of the components you have
.PARAMETER location_id .PARAMETER location_id
ID number of the location the accessory is assigned to ID number of the location the accessory is assigned to
.PARAMETER order_number
Order number for the accessory
.PARAMETER purchase_date .PARAMETER purchase_date
Date accessory was purchased Date accessory was purchased
@ -58,6 +61,9 @@ function Set-SnipeItComponent()
[int]$location_id, [int]$location_id,
[AllowEmptyString()]
[string]$order_number,
[datetime]$purchase_date, [datetime]$purchase_date,
[float]$purchase_cost, [float]$purchase_cost,

View file

@ -107,6 +107,7 @@ function Set-SnipeItLicense() {
[string]$notes, [string]$notes,
[AllowEmptyString()]
[string]$order_number, [string]$order_number,
[float]$purchase_cost, [float]$purchase_cost,

View file

@ -68,22 +68,30 @@ function Set-SnipeitLocation() {
[ValidateLength(3, 255)] [ValidateLength(3, 255)]
[string]$name, [string]$name,
[AllowEmptyString()]
[string]$address, [string]$address,
[AllowEmptyString()]
[string]$address2, [string]$address2,
[AllowEmptyString()]
[string]$state, [string]$state,
[AllowEmptyString()]
[string]$country, [string]$country,
[AllowEmptyString()]
[string]$zip, [string]$zip,
[AllowEmptyString()]
[string]$city, [string]$city,
[AllowEmptyString()]
[string]$currency, [string]$currency,
[int]$manager_id, [int]$manager_id,
[AllowEmptyString()]
[string]$ldap_ou, [string]$ldap_ou,
[int]$parent_id, [int]$parent_id,

View file

@ -46,7 +46,7 @@ function Set-SnipeItModel() {
[ValidateLength(1, 255)] [ValidateLength(1, 255)]
[string]$name, [string]$name,
[ValidateLength(1, 255)] [AllowEmptyString()]
[string]$model_number, [string]$model_number,
[int]$category_id, [int]$category_id,

View file

@ -80,10 +80,13 @@ function Set-SnipeItUser() {
[string]$userName, [string]$userName,
[AllowEmptyString()]
[string]$jobtitle, [string]$jobtitle,
[AllowEmptyString()]
[string]$email, [string]$email,
[AllowEmptyString()]
[string]$phone, [string]$phone,
[int]$company_id, [int]$company_id,
@ -94,10 +97,12 @@ function Set-SnipeItUser() {
[int]$manager_id, [int]$manager_id,
[AllowEmptyString()]
[string]$employee_num, [string]$employee_num,
[bool]$activated, [bool]$activated,
[AllowEmptyString()]
[string]$notes, [string]$notes,
[parameter(mandatory = $true)] [parameter(mandatory = $true)]