diff --git a/SnipeitPS/Public/Get-AssetMaintenance.ps1 b/SnipeitPS/Public/Get-AssetMaintenance.ps1 new file mode 100644 index 0000000..32d0c5c --- /dev/null +++ b/SnipeitPS/Public/Get-AssetMaintenance.ps1 @@ -0,0 +1,86 @@ +<# +.SYNOPSIS + Gets a list of Snipe-it Assets + +.PARAMETER asset_id + + +.PARAMETER search +A text string to search the assets data + +.PARAMETER sort +Specify the column name you wish to sort by + +.PARAMETER order +Specify the order (asc or desc) you wish to order by on your sort column + +.PARAMETER limit +Specify the number of results you wish to return. Defaults to 50. + +.PARAMETER offset +Offset to use + +.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-AssetMaintenances -url "https://assets.example.com" -token "token..." + +.EXAMPLE +Get-AssetMaintenances -search "myMachine" -url "https://assets.example.com" -token "token..." + +.EXAMPLE +Get-AssetMaintenances -search "myMachine" -url "https://assets.example.com" -token "token..." +#> +function Get-AssetMaintenance() { + Param( + [string]$search, + + [int]$asset_id, + + [string]$sort = "created_at", + + [ValidateSet("asc", "desc")] + [string]$order = "desc", + + [int]$limit = 50, + + [int]$offset, + + [parameter(mandatory = $true)] + [string]$url, + + [parameter(mandatory = $true)] + [string]$apiKey + ) + + $SearchParameter = @{ + sort = $sort + order = $order + limit = $limit + offset = $offset + } + + if ($PSBoundParameters.ContainsKey('search')) { $SearchParameter.Add("search", $search) } + if ($PSBoundParameters.ContainsKey('asset_id')) { $SearchParameter.Add("asset_id", $asset_id) } + + $Parameters = @{ + Uri = "$url/api/v1/maintenances" + Method = 'Get' + GetParameters = $SearchParameter + Token = $apiKey + } + + $result = Invoke-SnipeitMethod @Parameters + + $result +} + + + + + + diff --git a/SnipeitPS/Public/New-AssetMaintenance.ps1 b/SnipeitPS/Public/New-AssetMaintenance.ps1 new file mode 100644 index 0000000..f49b7dd --- /dev/null +++ b/SnipeitPS/Public/New-AssetMaintenance.ps1 @@ -0,0 +1,101 @@ +<# + .SYNOPSIS + Add a new Asset to Snipe-it asset system + + .DESCRIPTION + Long description + + .PARAMETER Tag + Asset Tag for the Asset + + .PARAMETER Name + Name of the Asset + + .PARAMETER Status_id + Status ID of the asset, this can be got using Get-Status + + .PARAMETER Model_id + Model ID of the asset, this can be got using Get-Model + + .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 + + .PARAMETER customfields + Hastable of custom fields and extra fields that need passing through to Snipeit + + .EXAMPLE + New-Asset -status_id 1 -model_id 1 -name "Machine1" + + .EXAMPLE + New-Asset -status_id 1 -model_id 1 -name "Machine1" -CustomValues = @{ "_snipeit_os_5 = "Windows 10 Pro" } +#> + +function New-AssetMaintenance() { + [CmdletBinding( + SupportsShouldProcess = $true, + ConfirmImpact = "Low" + )] + + Param( + [parameter(mandatory = $true)] + [int]$asset_id, + + [parameter(mandatory = $true)] + [int]$supplier_id, + + [parameter(mandatory = $true)] + [string]$asset_maintenance_type, + + [parameter(mandatory = $true)] + [string]$title, + + [parameter(mandatory = $true)] + [string]$startDate, + + [parameter(mandatory = $false)] + [string]$completionDate, + + [switch]$is_warranty = $false, + + [decimal]$cost, + + [string]$notes, + + [parameter(mandatory = $true)] + [string]$url, + + [parameter(mandatory = $true)] + [string]$apiKey + ) + + $Values = @{ + "asset_id" = $asset_id + "supplier_id" = $supplier_id + "asset_maintenance_type" = $asset_maintenance_type + "title" = $title + "start_date" = $startDate + "is_warranty" = $is_warranty + } + + if ($PSBoundParameters.ContainsKey('completionDate')) { $Values.Add("completion_date", $completionDate) } + if ($PSBoundParameters.ContainsKey('cost')) { $Values.Add("cost", $cost) } + if ($PSBoundParameters.ContainsKey('notes')) { $Values.Add("notes", $notes) } + + $Body = $Values | ConvertTo-Json; + + $Parameters = @{ + Uri = "$url/api/v1/maintenances" + 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 4e10ab5..7a5e4a3 100644 Binary files a/SnipeitPS/SnipeItPS.psd1 and b/SnipeitPS/SnipeItPS.psd1 differ