Compare commits

...

372 commits

Author SHA1 Message Date
Petri Asikainen
d14244d727
Merge pull request #283 from snazy2000/develop
Merge Develop
Support for more search fields and updated documentation  @mattcarras
2022-08-31 22:11:12 +03:00
Petri Asikainen
fadfa2d797
Merge pull request #282 from mattcarras/feature/update_get_functions
Update Get Functions
2022-08-31 22:05:15 +03:00
Matthew Carras
3a5d951cb9 Update Get Functions
* Add additional parameters to Get functions, especially -name wherever possible.
* Add some missing function help
2022-08-31 14:30:45 -04:00
Petri Asikainen
7582b0fa1a
Merge pull request #278 from snazy2000/develop
Support for setting group on user creation  and api request throttling
Now there's API request throttling support in SnipeitPS . You can specify throttlelimit and period with Connect-SnipeitPS . After that SnipeitPS know when to pause. You can start limit 120 and period 60000 (ms) from hosted snipeit installation. For the fine tune there's throttlemode parameter that can be set to Burst, Constant or Adaptive.
2022-08-10 09:15:43 +03:00
Petri Asikainen
381b6e3586
Merge pull request #276 from PetriAsi/feature/throttlerequests
Feature/throttlerequests
2022-08-08 13:59:43 +03:00
Petri Asikainen
79b94981ec Support request throttling 2022-08-08 13:04:05 +03:00
Petri Asikainen
6b3bc0f459
Merge pull request #275 from chaosjester/develop
Add Groups to New/Set-SnipeitUser.ps1
2022-08-05 10:13:09 +03:00
chaosjester
4a889cfb44 Add Groups to New/Set-SnipeitUser.ps1 2022-07-29 23:47:38 +10:00
Petri Asikainen
98095b6a53
Merge pull request #267 from snazy2000/develop
Publish develop
2022-03-30 20:50:02 +03:00
Petri Asikainen
758c5140b6
Merge pull request #266 from PetriAsi/feature/setsnipeituser
Added Set-SnipeitUser -ldap_import parameter
2022-03-30 20:48:00 +03:00
Petri Asikainen
d70f22d5f5 Updated docs 2022-03-30 20:45:50 +03:00
Petri Asikainen
5feafa0574 Added ldap_import 2022-03-30 14:17:56 +03:00
Petri Asikainen
72215faf0b
Merge pull request #262 from snazy2000/develop
Added: Set supplier_id of asset
2022-02-24 23:11:19 +02:00
Petri Asikainen
8af189e95b
Merge pull request #261 from PetriAsi/fix/setsnipeitasset
Added set supplier_id to Set-SnipeitAsset
2022-02-24 11:51:24 +02:00
Petri Asikainen
56a4525230 Updated docs, supplier_id 2022-02-24 11:47:55 +02:00
Petri Asikainen
32c95f8077 Added supplier_id 2022-02-24 11:47:04 +02:00
Petri Asikainen
cc475abf8c Added description of supplier_id 2022-02-24 11:46:46 +02:00
Petri Asikainen
f3391bb521
Merge pull request #259 from snazy2000/develop
Added:  Next Audit Date to New-SnipeItAudit.ps1
2022-02-05 13:41:20 +02:00
Petri Asikainen
5aa6a2eed5
Merge pull request #258 from PetriAsi/update/docs
updated docs
2022-02-05 13:34:59 +02:00
Petri Asikainen
452573c9a0 updated docs 2022-02-05 13:33:22 +02:00
Petri Asikainen
72c6ccbd38
Merge pull request #257 from PetriAsi/patch-1
@RussellLeVasseur :  Add Next Audit Date to New-SnipeItAudit.ps1
2022-02-05 13:22:21 +02:00
Petri Asikainen
e321cd3fa1 corrected missed next_audit_date 2022-02-05 13:17:19 +02:00
Russell LeVasseur
b4c2b51024 changed var to next_audit_date 2022-02-04 23:24:39 +02:00
RussellLeVasseur
f26db93a16 Fix variable naming and one grammar error
Changed from nextAudit to next_audit.
2022-02-04 23:24:39 +02:00
RussellLeVasseur
51cb9f88f5 Update New-SnipeitAudit.ps1
- Modified nextAudit param to [datetime]
- Added parameter description at beginning of doc
- Added code to format date to yyyy-MM-dd for SnipeIT
2022-02-04 23:24:39 +02:00
RussellLeVasseur
68ae039013 Add Next Audit Date to New-SnipeItAudit.ps1 2022-02-04 23:24:39 +02:00
Petri Asikainen
9e014ad06b
Merge pull request #254 from snazy2000/develop
Fail when snipe it returns unauthorized
2021-12-18 12:26:06 +02:00
Petri Asikainen
7ac8a5c9bd
Merge pull request #253 from PetriAsi/fix/#252
Fail when request is unauthorized
2021-12-18 12:24:29 +02:00
Petri Asikainen
e2923cade8 Fail when request is unauthorized 2021-12-18 11:49:27 +02:00
Petri Asikainen
e10f520008
Merge pull request #248 from snazy2000/develop
Fixed #246: Notes on checkin
2021-11-24 17:44:18 +02:00
Petri Asikainen
4e4a739418
Merge pull request #247 from PetriAsi/fix/#246
fix #246
2021-11-24 15:10:35 +02:00
Petri Asikainen
2f1873497d fix #246 2021-11-24 15:09:16 +02:00
Petri Asikainen
db2fb6278c fix #246 2021-11-24 15:07:36 +02:00
Petri Asikainen
536bff19bb
Merge pull request #244 from snazy2000/develop
Added #242: Set-SnipeitAsset  set  asset_tag
2021-10-28 10:11:16 +03:00
Petri Asikainen
ec40912018
Merge pull request #243 from PetriAsi/feature/#242
Added #242: Set-SnipeitAsset  set asset_tag
2021-10-28 10:03:58 +03:00
Petri Asikainen
83e8e43bc2 set asset_tag 2021-10-28 09:59:53 +03:00
Petri Asikainen
26ae35d1bd
Fix/#239 : New-SnipeitModel make fieldset_id optional
Fix/#239 : New-SnipeitModel make fieldset_id optional
2021-10-27 14:27:34 +03:00
Petri Asikainen
2a6d62bff5
Merge pull request #240 from PetriAsi/fix/#239
Fix/#239 : New-SnipeitModel make fieldset_id optional
2021-10-27 14:14:25 +03:00
Petri Asikainen
dd2bf7371e updated docs 2021-10-27 14:11:27 +03:00
Petri Asikainen
612d08c5d3 make fieldsetid optional 2021-10-27 14:08:34 +03:00
Petri Asikainen
d224f97d73
Merge pull request #236 from snazy2000/develop
Fixed #234 , keep id parameter for recursive calls
2021-10-18 20:55:00 +03:00
Petri Asikainen
0f7e6b3fc6
Merge pull request #235 from PetriAsi/fix/#234
Fixes #234 : keep id parameter for recursive calls
2021-10-18 20:52:42 +03:00
Petri Asikainen
10e87b48cc keep id parameter for recursive calls 2021-10-18 20:50:47 +03:00
Petri Asikainen
b5fe626f6c
Merge pull request #229 from snazy2000/develop
Fixed #227
2021-09-14 06:58:28 +03:00
Petri Asikainen
b90e1a94ea
Merge pull request #228 from PetriAsi/fix/get-snipeitfiedset-typo#227
fix typo #277
2021-09-14 06:57:26 +03:00
Petri Asikainen
3f39425a6c fix typo #277 2021-09-14 06:55:44 +03:00
Petri Asikainen
422cf7b32e
Merge pull request #225 from snazy2000/develop
Develop
2021-09-03 19:50:37 +03:00
Petri Asikainen
bc88c6d8cf
Merge pull request #224 from PetriAsi/fix/powershell5.1-combatibility#223
fix powershell 5.1
2021-09-03 19:47:44 +03:00
Petri Asikainen
bc48d74650 fix powershell 5.1 2021-09-03 19:44:43 +03:00
Petri Asikainen
fbef90ee79
Merge pull request #220 from snazy2000/develop
Release 1.10
2021-09-03 16:20:37 +03:00
Petri Asikainen
f4592ae9f2
Merge pull request #221 from PetriAsi/release/v1.10
Release v1.10.x
2021-09-03 16:12:38 +03:00
Petri Asikainen
c81d77962a Version 1.10.x 2021-09-03 16:07:19 +03:00
Petri Asikainen
44fb65ca60
Merge pull request #219 from PetriAsi/fix/content-encoding#218
Fix/content encoding #218 introduced on 1.9 release
2021-09-03 15:56:56 +03:00
Petri Asikainen
8c79c0fe6d fix content encoding 2021-09-03 15:54:55 +03:00
Petri Asikainen
96dc4e0907 update readme 2021-09-03 15:54:36 +03:00
Petri Asikainen
0c72cb5155
Merge pull request #216 from PetriAsi/feature/connect-snipeit
Feature/connect snipeit
2021-08-23 23:04:42 +03:00
Petri Asikainen
afeb8df60e updated docs 2021-08-23 21:59:24 +03:00
Petri Asikainen
69faba1856 updates docs 2021-08-23 18:50:13 +03:00
Petri Asikainen
88a94115b1 Fix broken get parameters 2021-08-23 18:39:32 +03:00
Petri Asikainen
923838e15f begin, process, end 2021-08-23 18:01:09 +03:00
Petri Asikainen
3446a885dc Deprecate url and apikey parameters from functions 2021-08-23 17:12:29 +03:00
Petri Asikainen
bc0b266339 Renamed helper funtions 2021-08-22 22:23:08 +03:00
Petri Asikainen
e934d20ced Keep it simple ... 2021-08-22 22:09:34 +03:00
Petri Asikainen
64d4d4f55d Merge branch 'develop' of github.com:snazy2000/SnipeitPS into feature/connect-snipeit 2021-08-20 23:53:02 +03:00
Petri Asikainen
7022b9fc3b
Merge pull request #215 from snazy2000/develop
Fix Set-SnipeitUser -username parameter case.
2021-08-20 18:48:56 +03:00
Petri Asikainen
6e1d7ebdb5
Merge pull request #214 from PetriAsi/fix/set-snipeituser#213
fix parameter case
2021-08-20 18:45:36 +03:00
Petri Asikainen
0a227795ed fix parameter case 2021-08-20 18:41:10 +03:00
Petri Asikainen
721e6c5e3a
Merge pull request #212 from snazy2000/develop
Fix get commands
2021-08-18 10:20:15 +03:00
Petri Asikainen
7a83c09370
Merge pull request #211 from PetriAsi/fix/invoke-snipeit-method#210
return null when result count is 0
2021-08-18 10:15:18 +03:00
Petri Asikainen
e43e09b752 return null result cont is 0 2021-08-18 10:13:11 +03:00
Petri Asikainen
0acba743d8 use correct function 2021-08-18 10:04:41 +03:00
Petri Asikainen
b85a653794 Merge branch 'develop' of github.com:snazy2000/SnipeitPS into feature/connect-snipeit 2021-08-15 19:41:01 +03:00
Petri Asikainen
2485854729
Merge pull request #209 from snazy2000/develop
Publish fix/Reset-SnipeitAccessoryOwner fix
2021-08-12 22:40:07 +03:00
Petri Asikainen
dfe6146d3d
Merge pull request #208 from PetriAsi/fix/Reset-SnipeitAccessoryOwner
allow empty body
2021-08-12 22:33:25 +03:00
Petri Asikainen
3bcf47c945 allow empty body 2021-08-12 22:26:04 +03:00
Petri Asikainen
ed080618a7 Use new connect method 2021-08-02 08:14:38 +03:00
Petri Asikainen
0afd33368b new Connect-SnipeitPS command 2021-08-02 08:13:25 +03:00
Petri Asikainen
4c0b9b0e85 new Connect-SnipeitPS command 2021-08-02 08:12:53 +03:00
Petri Asikainen
7b2cffda28 Make url and apikey optional 2021-07-31 22:25:13 +03:00
Petri Asikainen
cde16b1983
Merge pull request #204 from PetriAsi/feature/checkout-on-creation
Feature/checkout asset when creating
2021-07-29 12:59:02 +03:00
Petri Asikainen
52dfdb62f5 update docs 2021-07-29 12:49:16 +03:00
Petri Asikainen
0acac3a29f checkout asset when creating 2021-07-29 12:45:23 +03:00
Petri Asikainen
64902b58b5
Merge pull request #200 from snazy2000/develop
Release 1.9
2021-07-14 13:22:04 +03:00
Petri Asikainen
fab7a71abf
Merge pull request #201 from PetriAsi/feature/support-images
Add _method and use always post with multipart/form-data
2021-07-14 13:02:51 +03:00
Petri Asikainen
ae68666bbd Add _method and use always post with multipart/form-data 2021-07-14 13:01:56 +03:00
Petri Asikainen
794589622a
Merge pull request #199 from PetriAsi/update/readme
Update/readme, version bump
2021-07-14 12:31:48 +03:00
Petri Asikainen
ec3b9b4972 Updated docs 2021-07-14 12:08:38 +03:00
Petri Asikainen
464c9430f7 Updated docs 2021-07-14 11:59:33 +03:00
Petri Asikainen
11e087944a
Merge pull request #198 from PetriAsi/feature/support-images
Feature/support images
2021-07-14 11:40:06 +03:00
Petri Asikainen
7f6a5e1244 Updated docs 2021-07-14 11:16:55 +03:00
Petri Asikainen
fd2f5c51c7 Allow to set http request method 2021-07-14 11:09:12 +03:00
Petri Asikainen
ccce2ab26f image_delete does not make sense 2021-07-14 10:53:22 +03:00
Petri Asikainen
65f03b0476
Merge pull request #197 from PetriAsi/feature/suppliers
New/Set/Remove suppliers
2021-07-09 21:25:48 +03:00
Petri Asikainen
9f84595e36
Merge pull request #196 from PetriAsi/feature/manufacturers
Feature/manufacturers
2021-07-09 21:23:20 +03:00
Petri Asikainen
bab98270fa Added Set-SnipeitManufacturer 2021-07-09 21:18:51 +03:00
Petri Asikainen
989af1bf88 corrected typo 2021-07-09 21:17:25 +03:00
Petri Asikainen
9b356a2b9e New/Set/Remove suppliers 2021-07-09 15:17:41 +03:00
Petri Asikainen
7871fc3711
Merge pull request #194 from PetriAsi/feature/support-images
Feature/support images
2021-07-09 14:40:50 +03:00
Petri Asikainen
3ac0bbceb2 set and remove images 2021-07-08 23:59:31 +03:00
Petri Asikainen
e8077d5c21 switch parameter to booleans 2021-07-08 23:56:58 +03:00
Petri Asikainen
9ff9617b38
Merge pull request #192 from PetriAsi/feature/support-images
removed debug proxy
2021-06-23 18:51:30 +03:00
Petri Asikainen
d4b6fc595b removed debug proxy 2021-06-23 18:48:13 +03:00
Petri Asikainen
44a5886f09
Merge pull request #191 from PetriAsi/feature/support-images
Starting adding support for images and cleaning up requests generation
2021-06-21 10:46:45 +03:00
Petri Asikainen
508e484b17 Be quiet when deleting 2021-06-21 10:42:00 +03:00
Petri Asikainen
193f3f7f11 use invoke-webrequest, plan support for images 2021-06-21 10:13:43 +03:00
Petri Asikainen
95839398e9 merged upstream/develop 2021-06-17 20:02:00 +03:00
Petri Asikainen
9bfa4173de
Merge pull request #189 from snazy2000/develop
Release 1.8
2021-06-17 16:00:29 +03:00
Petri Asikainen
2d7c315424
Merge pull request #188 from PetriAsi/update/readme
release version v.1.8
2021-06-17 15:54:28 +03:00
Petri Asikainen
0759f0b6b3 release version v.1.8 2021-06-17 15:53:42 +03:00
Petri Asikainen
6099ab7eea release version v.1.8 2021-06-17 15:52:20 +03:00
Petri Asikainen
d5c25e2bdc release version v.1.8 2021-06-17 15:22:55 +03:00
Petri Asikainen
041c3da73b
Merge pull request #187 from PetriAsi/feature/get-assigned-licenses
Feature/get assigned items
2021-06-17 14:47:43 +03:00
Petri Asikainen
b337608d7b get assigned items with by user is or asset id 2021-06-17 14:37:37 +03:00
Petri Asikainen
64fa3799fe get assigned items with by user is or asset id 2021-06-17 14:36:33 +03:00
Petri Asikainen
9ecf9e7313
Merge pull request #186 from PetriAsi/fix/accessories
set model_number and min_amt
2021-06-17 10:59:16 +03:00
Petri Asikainen
12d8b76aa6
Merge pull request #185 from PetriAsi/feature/checkout-in-licences
Added example how to checkin licenses
2021-06-17 10:48:23 +03:00
Petri Asikainen
c7c349ca99 Added example how to checkin licenseseats 2021-06-17 10:42:34 +03:00
Petri Asikainen
baabd3eaa8 Added example how to checkin licenseseats 2021-06-17 10:40:54 +03:00
Petri Asikainen
cbb9e13a45 set model_number and min_amt 2021-06-17 10:37:15 +03:00
Petri Asikainen
6dc704c0fc
Merge pull request #180 from snazy2000/develop
Added issue template
2021-06-16 20:06:54 +03:00
Petri Asikainen
bd21037466
Merge pull request #179 from PetriAsi/feature/github-templates
add issue template
2021-06-16 20:05:58 +03:00
Petri Asikainen
6dba0ae2f6 add issue template 2021-06-16 20:00:30 +03:00
Petri Asikainen
7de0a38f9e
Merge pull request #177 from PetriAsi/feature/github-templates
Feature/GitHub templates
2021-06-16 18:54:48 +03:00
Petri Asikainen
dde27f055e add issue template 2021-06-16 18:50:04 +03:00
Petri Asikainen
b9de3ddaa0 add issue template 2021-06-16 18:44:37 +03:00
Petri Asikainen
208477f269
Merge pull request #176 from snazy2000/develop
Add nullable ints and fix  get asset by serial
2021-06-16 18:41:29 +03:00
Petri Asikainen
6e8d27e69d
Merge pull request #175 from PetriAsi/fix/get-with-serial
Fix get with serial
2021-06-16 18:34:52 +03:00
Petri Asikainen
b78fe104e3 Fix get with serial 2021-06-16 18:29:16 +03:00
Petri Asikainen
45b3bfab33
Merge pull request #172 from PetriAsi/feature/allow-nulls
Allow set values to $null and couple of other parameter validation fixes
2021-06-16 11:03:05 +03:00
Petri Asikainen
115fd7bd5a Allow set password 2021-06-16 10:55:25 +03:00
Petri Asikainen
750d4129fd Allow set values to $null 2021-06-16 10:37:57 +03:00
Petri Asikainen
959c679f33
Merge pull request #171 from snazy2000/develop
Develop
2021-06-16 01:14:05 +03:00
Petri Asikainen
bd7d4ce5ff
Merge pull request #170 from PetriAsi/feature/components
added min_amt parameter
2021-06-16 01:07:26 +03:00
Petri Asikainen
14ae8c1922 added min_amt parameter 2021-06-16 01:04:35 +03:00
Petri Asikainen
376949498d
Merge pull request #169 from PetriAsi/feature/checkout-in-licences
use nullable ints
2021-06-16 00:57:44 +03:00
Petri Asikainen
36a9fe3d04 use nullable ints 2021-06-16 00:55:08 +03:00
Petri Asikainen
d9be192b3e Convert body only when it exist 2021-06-16 00:52:32 +03:00
Petri Asikainen
2850b82a16 Do converto-json later in invoke-snipeitmethod function 2021-06-15 18:29:07 +03:00
Petri Asikainen
28a6ffd05f
Merge pull request #166 from PetriAsi/feature/powershell-version
Just build and test with powershell 5 and 7
2021-06-15 14:47:44 +03:00
Petri Asikainen
aaeab1cb27 pwsh already have nuget 2021-06-15 14:36:03 +03:00
Petri Asikainen
c485fcd230 corrected indentation 2021-06-15 14:33:02 +03:00
Petri Asikainen
da7dd14c4b matrix settings 2021-06-15 14:27:04 +03:00
Petri Asikainen
eb3b334e42 corrected indentation 2021-06-15 14:25:03 +03:00
Petri Asikainen
cbc80dc633 corrected indentation 2021-06-15 14:23:48 +03:00
Petri Asikainen
fad878460a build with powershell 5 and 7 2021-06-15 14:16:12 +03:00
Petri Asikainen
b19aa28e41 build with powershell 5 and 7 2021-06-15 14:09:59 +03:00
Petri Asikainen
ec6c96f2c4
Merge pull request #165 from snazy2000/develop
Release 1.7
2021-06-14 11:05:05 +03:00
Petri Asikainen
8ec56d8e7f
Merge pull request #164 from PetriAsi/update/readme
Update/readme v.1.7
2021-06-14 10:49:27 +03:00
Petri Asikainen
6f267ce94d Release 1.7 (consumables) 2021-06-14 10:48:16 +03:00
Petri Asikainen
42a6a563ee
Merge pull request #163 from PetriAsi/feature/consumables
added support for consumables
2021-06-14 10:02:07 +03:00
Petri Asikainen
28023285a0 added support for consumables 2021-06-14 10:00:06 +03:00
Petri Asikainen
6b4bad903b
Merge pull request #162 from PetriAsi/feature/new-snipeitcompany
added new-snipeitcompany
2021-06-14 08:38:10 +03:00
Petri Asikainen
42f8776e49 added new-snipeitcompany 2021-06-14 08:34:54 +03:00
Petri Asikainen
53b1560d83
Merge pull request #160 from snazy2000/develop
Publish v.1.6
2021-06-14 00:30:02 +03:00
Petri Asikainen
9d5c3e7850
Merge pull request #161 from PetriAsi/update/readme
Update/readme for release 1.6
2021-06-14 00:22:50 +03:00
Petri Asikainen
bb00f1bc5e updated docs for v1.6.x 2021-06-14 00:21:12 +03:00
Petri Asikainen
6254b82e3a updated docs for v1.6.x 2021-06-14 00:19:47 +03:00
Petri Asikainen
7d6aa54279
Merge pull request #159 from PetriAsi/feature/set-things
Set thing and couple other fixes
2021-06-13 18:57:17 +03:00
Petri Asikainen
3a0b1d853a set-snipeitstatus 2021-06-13 18:54:12 +03:00
Petri Asikainen
e8d52ab59c some formating 2021-06-13 18:44:43 +03:00
Petri Asikainen
528367cbd6 set-snipeitlicence 2021-06-13 18:43:58 +03:00
Petri Asikainen
cd86c6749d set and remove snipeitdepartment 2021-06-13 18:41:27 +03:00
Petri Asikainen
83eb363889 set-snipeitcomponent 2021-06-13 18:35:43 +03:00
Petri Asikainen
dfb271dbec set-snipeitcompany 2021-06-13 18:32:42 +03:00
Petri Asikainen
1b5e5e5237 Remove-SnipeitAssetmaintenence 2021-06-13 18:30:14 +03:00
Petri Asikainen
b35230e3b8 get-set snipeitcustomfield 2021-06-13 18:29:14 +03:00
Petri Asikainen
621ee76709 add set-snipeitcompany 2021-06-13 18:17:05 +03:00
Petri Asikainen
ac842e3d6a manage categories 2021-06-13 18:13:22 +03:00
Petri Asikainen
b495032167
Merge pull request #158 from PetriAsi/feature/remove-things
Remove new item types
2021-06-12 14:02:31 +03:00
Petri Asikainen
211460cfb6 corrected spelling 2021-06-12 13:00:35 +03:00
Petri Asikainen
b76d78ec05
Merge pull request #157 from PetriAsi/fix/rename-set-snipeitcomponents
change filename from plurar to singular
2021-06-12 12:36:12 +03:00
Petri Asikainen
3c45eceff9 change filename from plurar to singular 2021-06-12 12:34:54 +03:00
Petri Asikainen
d8652d0cba Remove new item types 2021-06-12 12:30:41 +03:00
Petri Asikainen
a69a583429
Merge pull request #155 from snazy2000/develop
Corrected examples
2021-06-10 19:23:07 +03:00
Petri Asikainen
0d201e6a6b
Merge pull request #154 from PetriAsi/fix/customfields#153
corrected examples
2021-06-10 19:05:47 +03:00
Petri Asikainen
dbef8c5a26 corrected examples 2021-06-10 19:02:16 +03:00
Petri Asikainen
19fb68fc6d
Merge pull request #152 from snazy2000/develop
Specify default parameter sets and list audits
2021-06-10 00:04:00 +03:00
Petri Asikainen
7644e08f2a
Merge pull request #151 from PetriAsi/fix/parametersets
Fix/parametersets
2021-06-09 23:58:19 +03:00
Petri Asikainen
18192e9eb0
Merge pull request #150 from PetriAsi/feature/get-snipeitasset-audits
Feature/get snipeitasset audits
2021-06-09 23:57:15 +03:00
Petri Asikainen
d661545228 Specify default parameter set - update docs 2021-06-09 23:54:52 +03:00
Petri Asikainen
03ed9d3a27 Specify default parameter set 2021-06-09 23:46:21 +03:00
Petri Asikainen
068b661978 List assets due for auditing 2021-06-09 23:40:53 +03:00
Petri Asikainen
f89fb1f31a List assets due for auditing 2021-06-09 23:19:10 +03:00
Petri Asikainen
6ef20bd333
Merge pull request #149 from PetriAsi/update/readme
updated docs, adding about_snipeit
2021-06-09 21:13:42 +03:00
Petri Asikainen
843f10bbb4 updated docs 2021-06-09 21:12:30 +03:00
Petri Asikainen
a27f20f0cd updated docs 2021-06-09 21:08:18 +03:00
Petri Asikainen
69f498e06f
Merge pull request #148 from snazy2000/develop
Fix license related issues
2021-06-09 16:22:41 +03:00
Petri Asikainen
d6a8289241
Merge pull request #147 from PetriAsi/fix/get-snipeitlicence
fix sort parameter
2021-06-09 16:19:33 +03:00
Petri Asikainen
bfebf0603f
Merge pull request #146 from PetriAsi/fix/set-snipeitlicenseset
assigned_id -> assigned_to
2021-06-09 16:17:18 +03:00
Petri Asikainen
222eff98f8 assigned_id -> assigned_to 2021-06-09 16:13:01 +03:00
Petri Asikainen
e50d7bd5cb fix sort parameter 2021-06-09 15:33:46 +03:00
Petri Asikainen
2309dd682f
Merge pull request #144 from snazy2000/develop
Casesensitivity for file and function names
2021-06-08 22:16:16 +03:00
Petri Asikainen
8c41f41644
Merge pull request #143 from PetriAsi/fix/casesensitivity
Fix/casesensitivity
2021-06-08 22:08:31 +03:00
Petri Asikainen
0eb9324597 casensitivity 2021-06-08 22:04:25 +03:00
Petri Asikainen
97b46a66ad merged 2021-06-08 21:48:59 +03:00
Petri Asikainen
92d67895df Function rename for case sensitivity 2021-06-08 20:23:32 +03:00
Petri Asikainen
b24b0fce1d Filename rename for case sensitivity 2021-06-08 20:20:03 +03:00
Petri Asikainen
f8f5224cc8
Merge pull request #141 from snazy2000/develop
Release 1.5
2021-06-08 17:00:03 +03:00
Petri Asikainen
9f68e602e3
Merge pull request #140 from PetriAsi/update/readme
Update/readme for v.1.5
2021-06-08 16:51:56 +03:00
Petri Asikainen
727c1b4785 Updated for release v1.5 2021-06-08 16:49:22 +03:00
Petri Asikainen
8fad0f653c Updated for release v1.5 2021-06-08 16:30:12 +03:00
Petri Asikainen
2739a4f438
Merge pull request #138 from PetriAsi/fix/allowemptystring
Parameter sets
2021-06-08 08:16:16 +03:00
Petri Asikainen
1e31256487 AllowEmptyString() is only needed on mandatory parameters 2021-06-08 08:08:33 +03:00
Petri Asikainen
9562ab3d46 merged changes 2021-06-07 21:56:54 +03:00
Petri Asikainen
ce1fdcc115
Merge pull request #137 from PetriAsi/fix/pass-psboundparameters
Pass PSBoundParameters
2021-06-07 21:49:23 +03:00
Petri Asikainen
064ff9c4ed Pass PSBoundParameters 2021-06-07 21:27:10 +03:00
Petri Asikainen
a2bda89abb ParameterSets and AllowEmptyString 2021-06-07 21:16:51 +03:00
Petri Asikainen
d4c138604d
Merge pull request #136 from PetriAsi/feature/pipelineinput
Pipeline support for Set functions
2021-06-06 07:58:49 +03:00
Petri Asikainen
0cbfbab86e Pipeline support for Set functions 2021-06-06 07:56:11 +03:00
Petri Asikainen
7317157dfc
Merge pull request #134 from PetriAsi/feature/pipelineinput
Pipeline support for Set functions
2021-06-06 06:23:36 +03:00
Petri Asikainen
7ba3de55bb Pipeline support for Set functions 2021-06-06 06:22:08 +03:00
Petri Asikainen
0b1d7f9c95
Merge pull request #133 from snazy2000/develop
Version to 1.4
2021-06-05 08:35:00 +03:00
Petri Asikainen
b062072239
Merge pull request #132 from PetriAsi/update/version
Version to 1.4
2021-06-05 08:30:06 +03:00
Petri Asikainen
0d832f07cc Version to 1.4 2021-06-05 08:28:37 +03:00
Petri Asikainen
4744e6c8fe
Merge pull request #131 from PetriAsi/feature/get-snipeitactivity
Added Get-SnipeitActivity
2021-06-05 08:15:05 +03:00
Petri Asikainen
213386f440 Added Get-SnipeitActivity 2021-06-05 08:10:45 +03:00
Petri Asikainen
1742db7f5e
Merge pull request #129 from snazy2000/develop
Publish version 1.3
2021-05-27 15:53:10 +03:00
Petri Asikainen
fca66e4f7a
Merge pull request #128 from PetriAsi/update/readme
Version bumb to 1.3
2021-05-27 15:24:25 +03:00
Petri Asikainen
3f58e8eaac Version bumb to 1.3 2021-05-27 15:11:28 +03:00
Petri Asikainen
01e1746b2c
Merge pull request #127 from PetriAsi/fix/set-snipeitassset-name
fixed parameter case
2021-05-27 14:53:38 +03:00
Petri Asikainen
1b45467675 fixed parameter case 2021-05-27 14:51:22 +03:00
Petri Asikainen
446a21fcf7 fixed parameter case 2021-05-27 14:44:39 +03:00
Petri Asikainen
eed5a09ba2
Merge pull request #125 from PetriAsi/fix/invoke-snipeitmethod-error-handling-#91
Wrapped json parsing with try/catch
2021-05-26 13:39:08 +03:00
Petri Asikainen
4810bbf54f Wrapped json parsing with try/catch 2021-05-25 23:24:36 +03:00
Petri Asikainen
5a10799eb8
Merge pull request #124 from PetriAsi/feature/set-snipeitaccessoryowner
Support for checkin accessories out and in
2021-05-25 22:57:49 +03:00
Petri Asikainen
66e746bce0 Support for checkin accessories out and in 2021-05-25 22:53:22 +03:00
Petri Asikainen
9a7bc1339c
Merge pull request #123 from PetriAsi/feature/set-snipeitlocation
Set-SnipeItLocation : Added missing parameters
2021-05-25 16:15:17 +03:00
Petri Asikainen
5d15719185 Added missing parameters 2021-05-25 16:11:47 +03:00
Petri Asikainen
09d16fe5a5
Merge pull request #122 from PetriAsi/fix/set-snipeitasset-put-patch
set-snipeitAsset parameter for selecting http request type to patch or put
2021-05-25 15:49:39 +03:00
Petri Asikainen
32542fe5fc Parameter for http request type patch/put 2021-05-25 15:44:14 +03:00
Petri Asikainen
160ba60069
Merge pull request #121 from PetriAsi/fix/datetime-inputs
check datetime and int input types
2021-05-25 15:10:22 +03:00
Petri Asikainen
64dcc2e127 check datetime and int input types 2021-05-25 11:17:22 +03:00
Petri Asikainen
ad5c8b3231
Merge pull request #120 from PetriAsi/feature/prefix-commands
Get-SnipeItAlias provides this now
2021-05-25 06:15:23 +03:00
Petri Asikainen
f12e1346db Get-SnipeItAlias provides this now 2021-05-25 06:12:34 +03:00
Petri Asikainen
5934568b20
Merge pull request #119 from snazy2000/develop
First 1.2 version
2021-05-24 16:45:32 +03:00
Petri Asikainen
575a17c6d1
Merge pull request #117 from PetriAsi/feature/prefix-commands
AllowEmptyString
2021-05-24 12:55:31 +03:00
Petri Asikainen
3938f360d3 AllowEmptyString 2021-05-24 12:52:29 +03:00
Petri Asikainen
33aa1d64bf
Merge pull request #116 from PetriAsi/version/1.2.x
Version to 1.2.x
2021-05-24 11:34:34 +03:00
Petri Asikainen
17b8a726d1 Version to 1.2 2021-05-24 11:29:43 +03:00
Petri Asikainen
4c230807aa
Merge pull request #115 from PetriAsi/feature/prefix-commands
Helper function to update existing SnipeItPS scripts
2021-05-24 11:09:50 +03:00
Petri Asikainen
69ac809fb0 Helper function to update existing SnipeItPS scripts 2021-05-24 11:06:17 +03:00
Petri Asikainen
906fedd71a Helper function to update existing SnipeItPS scripts 2021-05-24 10:53:27 +03:00
Petri Asikainen
06305b1b63 Updated docs and examples 2021-05-23 23:24:44 +03:00
Petri Asikainen
8d1dd48b2c
Merge pull request #114 from PetriAsi/feature/prefix-commands
Updated docs and examples
2021-05-23 23:23:22 +03:00
Petri Asikainen
7d95d5078f Updated docs and examples 2021-05-23 23:22:23 +03:00
Petri Asikainen
ee0d285ab0
Merge pull request #113 from PetriAsi/feature/checkout-in-licences
Feature/checkout in licences seats
2021-05-23 23:14:01 +03:00
Petri Asikainen
bb4cf89bdd Updated examples 2021-05-23 23:05:14 +03:00
Petri Asikainen
f98315a614 get and set licenceseats 2021-05-23 22:58:06 +03:00
Petri Asikainen
e34b36db21
Merge pull request #112 from PetriAsi/fix/missing-get-license
export get-snipeiticense
2021-05-23 22:08:30 +03:00
Petri Asikainen
9dece1ceff export get-snipeiticense 2021-05-23 22:10:04 +03:00
Petri Asikainen
e80c6be8f9 export get-snipeiticense 2021-05-23 22:01:40 +03:00
Petri Asikainen
b58267e222
Merge pull request #111 from PetriAsi/feature/prefix-commands
Feature/prefix commands
2021-05-23 19:24:04 +03:00
Petri Asikainen
cdc60fbeaa alias check for every public function 2021-05-23 19:23:24 +03:00
Petri Asikainen
ccbe86c2c9 Added startup notification about new prefix and aliases 2021-05-22 21:36:23 +03:00
Petri Asikainen
46aa80b16f Prefixed all commands and added aliases 2021-05-22 19:03:32 +03:00
Petri Asikainen
fe39b3cb32 Prefixed all commands and added aliases 2021-05-22 18:54:07 +03:00
Petri Asikainen
5bc402b847 Prefixed all commands and added aliases 2021-05-22 18:50:56 +03:00
Petri Asikainen
d4e2360d72 Prefixed all commands and added aliases 2021-05-22 18:44:36 +03:00
Petri Asikainen
bf13cdab6f
Merge pull request #110 from PetriAsi/feature/get-by-id
get by id
2021-05-22 09:03:44 +03:00
Petri Asikainen
5c17660cca get by id 2021-05-22 09:00:40 +03:00
Petri Asikainen
c5e02c8cfb
Merge pull request #109 from snazy2000/develop
Fixed missed aliases on parameter rename. Updated docs.
2021-05-20 15:01:16 +03:00
Petri Asikainen
8fbd9297cd
Merge pull request #108 from PetriAsi/update/docs
updated docs
2021-05-20 14:45:56 +03:00
Petri Asikainen
1456b17a0a updated docs 2021-05-20 14:42:42 +03:00
Petri Asikainen
d4d50d8fd5
Merge pull request #106 from PetriAsi/update/docs
Updated docs
2021-05-19 15:56:03 +03:00
Petri Asikainen
8d33d687b0 Updated docs 2021-05-19 15:51:49 +03:00
Petri Asikainen
5213efcc00
Merge pull request #104 from PetriAsi/update/readme-v1.1
Updated changelog
2021-05-18 16:27:57 +03:00
Petri Asikainen
2a29a8a869 Updated changelog 2021-05-18 16:25:56 +03:00
Petri Asikainen
5697df0049
Merge pull request #102 from PetriAsi/update/docs
updated docs
2021-05-18 09:12:03 +03:00
Petri Asikainen
5d945b9327 update docs with platyps 2021-05-18 05:57:40 +03:00
Petri Asikainen
5652588493
Merge pull request #101 from PetriAsi/update/readme
Update/readme
2021-05-18 05:31:14 +03:00
Petri Asikainen
05134e77ed Use -verbose for bug tickets 2021-05-18 05:30:28 +03:00
Petri Asikainen
db41381010 Use -verbose for bug tickets 2021-05-18 05:26:38 +03:00
Petri Asikainen
7b20f86fb4
Merge pull request #100 from snazy2000/develop
Develop to master
2021-05-18 05:18:13 +03:00
Petri Asikainen
5ae9875692
Merge pull request #99 from PetriAsi/version/1.1.x
module version to v1.1.x
2021-05-18 05:17:04 +03:00
Petri Asikainen
2ded293ede module version to v1.1.x 2021-05-18 05:13:26 +03:00
Petri Asikainen
75fb4caad9
Merge pull request #98 from snazy2000/develop
Develop to master , first 1.1.x version
2021-05-17 22:45:42 +03:00
Petri Asikainen
d5d282541f
Merge pull request #97 from PetriAsi/version/1.1.x
Version bump to 1.1.x
2021-05-17 16:09:04 +03:00
Petri Asikainen
fe1bcc52f7 Version bump to 1.1.x 2021-05-17 15:46:06 +03:00
Petri Asikainen
8fd8082aa3
Merge pull request #95 from PetriAsi/fix/remove-white-space
remove whitespace
2021-05-17 10:09:58 +03:00
Petri Asikainen
5761f15eab remove whitespace 2021-05-17 10:07:17 +03:00
Petri Asikainen
c906c15890
Merge pull request #94 from snazy2000/revert-93-fix/invoke-snipeitmethod-error-handling-#91
Revert "If api request to snipe  fails, don't continue, just throw error"
2021-05-17 08:41:08 +03:00
Petri Asikainen
d2805b1ffd
Revert "If api request to snipe fails, don't continue, just throw error" 2021-05-17 08:39:16 +03:00
Petri Asikainen
26e67d2b29
Merge pull request #93 from PetriAsi/fix/invoke-snipeitmethod-error-handling-#91
If api request to snipe  fails, don't continue, just throw error
2021-05-17 08:12:10 +03:00
Petri Asikainen
738b4c6051 If apirequest fails, dont continue, just throw error 2021-05-17 07:55:25 +03:00
Petri Asikainen
cb66a0112a Merge branch 'fix/new-asset-tag-parameter' into develop 2021-05-16 13:42:45 +03:00
Petri Asikainen
312eb8e8df added alias tag to asset_tag parameter to keep backward compatibility 2021-05-16 13:41:49 +03:00
Petri Asikainen
a3ab7f4fd9 Merge branch 'fix/get-user-search-fields#35' into develop 2021-05-16 13:14:01 +03:00
Petri Asikainen
981e90e103 fix for #35, get-user by email or username 2021-05-16 13:13:23 +03:00
Petri Asikainen
4ed189b45d Merge branch 'fix/set-asset-owner-#58' into develop 2021-05-16 12:31:45 +03:00
Petri Asikainen
b8923b2029 fix issue #58 2021-05-16 12:31:04 +03:00
Petri Asikainen
c72eaf7c95 Merge branch 'fix/remove-user-missing-extension' into develop 2021-05-16 11:37:32 +03:00
Petri Asikainen
997af62157 Added missing extension for Remove-User.ps1 2021-05-16 11:36:20 +03:00
Petri Asikainen
589c34539c Merge branch 'fix/get-parametervalue-do-not-return-customfields' into develop 2021-05-16 08:38:01 +03:00
Petri Asikainen
7dde5ce1de Dont return requesttype and customfields parameters by default 2021-05-16 08:37:04 +03:00
Petri Asikainen
3804a6df17 Merge branch 'PetriAsi-new-asset-like-api' into develop 2021-05-16 08:27:29 +03:00
Petri Asikainen
d51a3d2d45 Merge branch 'new-asset-like-api' of https://github.com/PetriAsi/SnipeitPS into PetriAsi-new-asset-like-api 2021-05-16 08:19:52 +03:00
Petri Asikainen
d52e63d2c9 Merge branch 'PetriAsi-issue#67-powershell7-compatibility' into develop 2021-05-16 08:11:33 +03:00
Petri Asikainen
44c14d6cc0 Merge branch 'issue#67-powershell7-compatibility' of https://github.com/PetriAsi/SnipeitPS into PetriAsi-issue#67-powershell7-compatibility 2021-05-16 08:11:10 +03:00
Petri Asikainen
b380e861c8 Merge branch 'sheppyh-Feature/Remove-AssetMaintenance' into develop 2021-05-15 23:36:54 +03:00
Petri Asikainen
5b3d63f9bc Merge branch 'Feature/Remove-AssetMaintenance' of https://github.com/sheppyh/SnipeitPS into sheppyh-Feature/Remove-AssetMaintenance 2021-05-15 23:35:32 +03:00
Petri Asikainen
51ddcf8847 Merge branch 'remove-utf-bom-from-snipeitps.psd1' into develop 2021-05-15 23:25:12 +03:00
Petri Asikainen
d3cf37173d removed utf-bom from file 2021-05-15 23:20:27 +03:00
Petri Asikainen
b24277ac4c merge from master 2021-05-15 22:12:28 +03:00
Petri Asikainen
6c5be69f6c Merge branch 'sheppyh-Bugfix/63-Remove-Asset' into develop 2021-05-15 19:06:36 +03:00
Petri Asikainen
cbf8e92f4d Resolve merge conflist for pullrequest #64 2021-05-15 19:06:08 +03:00
Petri Asikainen
f2db33fa59
Merge pull request #87 from PetriAsi/get-all-for-every-get
Get all items for every get-command
2021-05-15 18:54:58 +03:00
Petri Asikainen
dad8156c60
Merge pull request #76 from PetriAsi/return-all-results
get-asset Return all results
2021-05-15 18:46:58 +03:00
Petri Asikainen
7fa802197b Merge branch 'PetriAsi-get-by-id' into develop 2021-05-15 18:16:45 +03:00
Petri Asikainen
726f5809cd Resolved merge conflict with Set-SnipeitLocation and New-Category 2021-05-15 18:15:08 +03:00
Stephen
51b65be06c
Merge pull request #56 from timothymmurphy/Feature/New-Category
Create New-Category.ps1
2021-04-07 11:43:23 +01:00
Stephen
756223f7b7
Merge pull request #83 from snazy2000/revert-75-get-by-id
Revert "Get everything by id"
2021-04-07 11:42:55 +01:00
Stephen
dccbd18add
Revert "Get everything by id" 2021-04-07 11:42:47 +01:00
Stephen
50068f7e62
Merge pull request #75 from PetriAsi/get-by-id
Get everything by id
2021-04-07 11:41:35 +01:00
Stephen
5fea2cf86d
Merge pull request #70 from gvoynov/patch-1
Create Remove-User
2021-04-07 11:39:52 +01:00
Stephen
5a30192d8f
Merge pull request #81 from shcgitpf/patch-2
Updated for current API fields
2021-04-07 11:38:43 +01:00
Stephen
85fa16ae70
Merge pull request #80 from shcgitpf/patch-1
Add 'parent_id' and fix documentation
2021-04-07 11:38:16 +01:00
shcgitpf
63f6ae12e2
Updated for current API fields
The API supports a 'PUT' for modifying parts of an asset, but most of the supported fields were missing (I need to be able to set a location for example which was missing).  I've added all the current API fields and replaced the $values section with Get-ParameterValue.  Not fully tested everything but looking good so far.
2021-03-11 10:04:42 +00:00
shcgitpf
0708776249
Add 'parent_id' and fix documentation
'parent_id' is used by the SnipeIT API but was not present in this module meaning locations could be created, but not have a parent set which severely limited its usefulness.  Adding parent_id allows for example, the creation of buildings under sites, and rooms under buildings.
2021-03-10 11:48:26 +00:00
Petri Asikainen
a4bc6bb3f0 Keep asset tag optional as in api+ more parameters 2021-02-18 19:43:26 +02:00
Petri Asikainen
ddb0036156 same parameter names as api and removed ldap logic 2021-02-11 21:05:06 +02:00
Petri Asikainen
d3fb9762ab Fix for #77 and add activated as parameter 2021-02-11 15:23:34 +02:00
Petri Asikainen
6828244dfa #67 2021-01-29 18:08:19 +02:00
Petri Asikainen
a5e691d8f0 Module name case 2021-01-24 09:30:47 +02:00
Petri Asikainen
22ea1ceeb8 Match case with module directory 2021-01-24 09:27:16 +02:00
Petri Asikainen
e559e71143 Export Reset-AssetOwner 2021-01-19 17:34:41 +02:00
Petri Asikainen
35a4ab68fe Don't require status_id or model_id when updating asset 2021-01-19 12:39:53 +02:00
Petri Asikainen
fdf52ce2e4 Where did this # came from?" 2021-01-19 11:51:08 +02:00
Petri Asikainen
8ae7ff7622 -all parameter for all suported get-commands 2021-01-19 08:02:00 +02:00
Petri Asikainen
1b12288920 -all option for get-asset, returns all results 2021-01-18 11:06:10 +02:00
Petri Asikainen
a09eb8c23e Fixed copypasted typo 2021-01-17 07:14:32 +02:00
Petri Asikainen
3c064938e1 Fixed copypasted typo 2021-01-17 07:13:23 +02:00
Petri Asikainen
608d8f04ca Fixed copypasted typo 2021-01-17 07:11:22 +02:00
Petri Asikainen
953a3453fc Fixed copypasted typo 2021-01-17 07:09:19 +02:00
Petri Asikainen
f688b32c50 Get ids 2021-01-17 06:48:05 +02:00
Petri Asikainen
c3cb7d14b6 Get assets and other items by id 2021-01-17 06:28:08 +02:00
Petri Asikainen
2925106297 Get-asset by serial 2021-01-17 05:42:25 +02:00
Petri Asikainen
d78d5d5281 Added example for asset_tag 2021-01-04 09:01:31 +02:00
Petri Asikainen
9afb3a1be6 Added synopsis for asset_tag 2021-01-04 08:59:23 +02:00
Petri Asikainen
c88dd83323 Get-asset with -asset_tag 2021-01-04 08:53:47 +02:00
Petri Asikainen
f182756b30 Added Set-SnipeitLocation 2021-01-02 14:20:04 +02:00
Petri Asikainen
efe36f81f2 Added Set-SnipeitLocation 2021-01-02 14:19:15 +02:00
gvoynov
1c31e67419
Create Remove-User
Would you consider adding function for deleting users from snipe-it?
2020-12-14 11:53:02 +02:00
Harry John
2f32d12aa1 Added Remove-Asset to FunctionsToExport
Resolves #63
2020-09-03 02:44:17 +01:00
Harry John
fe5e3c6ba2 Added Remove-AssetMaintenance Function 2020-09-03 01:41:32 +01:00
Tim Murphy
13fa97f36f Updated Example 2020-06-29 20:29:49 -05:00
Tim Murphy
af62a28bef Removed unnecessary comment 2020-06-29 20:26:45 -05:00
Tim Murphy
b3826d33ec Changed to hash table, fixed optional switches formatting 2020-06-29 20:24:56 -05:00
Tim Murphy
95eed3330c Added license as valid category_type 2020-06-29 19:42:05 -05:00
Tim Murphy
54b7b4db3b Added parameter validation for category_type 2020-06-29 19:27:04 -05:00
Tim Murphy
ea04619706 Fixed brackets 2020-06-29 19:18:49 -05:00
Tim Murphy
bb53a87cf4 Added New-Category Function 2020-06-29 19:09:45 -05:00
Tim Murphy
4385d87093 Added New-Category Function 2020-06-29 18:50:43 -05:00
Stephen
8214d8db99
Merge pull request #53 from snazy2000/develop
New Release
2020-06-17 09:39:02 +01:00
Stephen
54043c68e4
Merge branch 'master' into develop 2020-06-17 09:36:54 +01:00
Stephen
0e07eed7d1
Well fix that later.. 2020-06-17 09:34:51 +01:00
Stephen
4ae8b11e10
Update SnipeItPS.Tests.ps1 2020-06-17 09:24:31 +01:00
Stephen
3266e6ae91
Hate builds.. 2020-06-17 09:21:58 +01:00
Stephen
bead7cbe8d
Update SnipeItPS.build.ps1 2020-06-17 09:18:44 +01:00
Stephen
28a3d40d51
Update SnipeItPS.build.ps1 2020-06-17 09:18:28 +01:00
Stephen
059f9e3938
Fixes Build 2020-06-17 09:08:13 +01:00
Stephen
bfa0aa1de0
Fix build 2020-06-17 09:02:18 +01:00
Stephen
a779b8c782
Fix wrong function name on Set-Model
Fixed #51
2020-06-17 08:48:46 +01:00
Stephen
998016b135
Merge pull request #49 from xlejakx/patch-1
Update New-Asset.md
2020-06-17 08:40:40 +01:00
Stephen
03e2fdf043
Merge pull request #42 from k9barry/master
Add New-Audit.ps1
2020-06-17 08:40:17 +01:00
Stephen
e6360a0def
Merge pull request #44 from MrCarter2959/master
Create Remove-Asset.ps1
2020-06-17 08:39:55 +01:00
xlejakx
d2e70120bb
Update New-Asset.md 2020-02-27 16:32:41 +03:00
MrCarter
e5c9a9db51
Update Remove-Asset.ps1 2020-01-23 11:18:34 -05:00
MrCarter
381ee730fd
Update Remove-Asset.ps1 2020-01-23 11:16:44 -05:00
MrCarter
621bab7d4e
Update Remove-Asset.ps1 2020-01-23 11:14:36 -05:00
MrCarter
7cbcd575f6
Create Remove-Asset.ps1 2020-01-23 11:08:42 -05:00
K9 Barry
96c39e04a1
Correction: had the wrong URI
needed at change from Uri    = "$url/api/v1/hardware" to Uri    = "$url/api/v1/hardware/audit"
2019-12-05 20:26:54 -05:00
K9 Barry
217ca45578
Add New-Audit.ps1
Add New-Audit.ps1 to add a audit to an asset through the API.
2019-12-05 19:55:51 -05:00
215 changed files with 24859 additions and 4662 deletions

32
.github/ISSUE_TEMPLATE.md vendored Normal file
View file

@ -0,0 +1,32 @@
## Context
<!--- How has this issue affected you? What are you trying to accomplish? -->
<!--- Providing context helps us come up with a solution that is most useful in the real world -->
## Your Environment
<!--- Include as many relevant details about the environment you experienced the bug in -->
* SnipitPS Module version used:
* Operating System and PowerShell version:
* Snipe It version:
## Expected Behavior
<!--- If you're describing a bug, tell us what should happen -->
<!--- If you're suggesting a change/improvement, tell us how it should work -->
## Current Behavior
<!--- If describing a bug, tell us what happens instead of the expected behavior -->
<!--- Please add command output with -Verbose and if possible -Debug switches -->
## Possible Solution
<!--- Not obligatory, but suggest a fix/reason for the bug, -->
<!--- or ideas how to implement the addition or change -->
## Steps to Reproduce (for bugs)
<!--- Provide a link to a live example, or an unambiguous set of steps to -->
<!--- reproduce this bug. Include code to reproduce, if relevant -->
1.
2.
3.
4.

View file

@ -5,4 +5,200 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/),
and this project adheres to [Semantic Versioning](http://semver.org/).
## [1.0] - 2017-11-18
# [v.1.10.x] - 2021-09-03
## New secure ways to connect Snipe it
### -secureApiKey allow pass apiKey as SecureString
Connect-SnipeitPS -URL 'https://asset.example.com' -secureApiKey 'tokenKey'
### Set connection with safely saved credentials, first save credentials
$SnipeCred= Get-Credential -message "Use url as username and apikey as password"
$SnipeCred | Export-CliXml snipecred.xml
### ..then use your saved credentials like
Connect-SnipeitPS -siteCred (Import-CliXml snipecred.xml)
## Fix for content encoding in invoke-snipeitmethod
Version 1.9 introduced bug that converted non ascii characters to ascii
during request.
# [v.1.9.x] - 2021-07-14
## Image uploads
## New features
Support for image upload and removes. Just specify filename for -image para-
meter when creating or updating item on snipe.
Remove image use -image_delete parameter.
*Snipe It version greater than 5.1.8 is needed to support image parameters.*
Most of set-commands have new -RequestType parameter that defaults to Patch.
If needed request method can be changed from default.
## New Functions
Following new commands have been added to SnipeitPS:
- New-Supplier
- Set-Supplier
- Remove-Supplier
- Set-Manufacturer
# [v.1.8.x] - 2021-06-17
## Support for new Snipe it endpoints
## New features
Get-SnipeitAccessories -user_id
returns accessories checked out to user id
Get-SnipeitAsset -user_id
Return Assets checked out to user id
Get-SnipeitAsset -component_id
Returns assets with specific component id
Get-SnipeitLicense -user_id
Get licenses checked out to user ID
Get-SnipeitLicense -asset_id
Get licenses checked out to asset ID
Get-SnipeitUser -accessory_id
Get users that have specific accessory id checked out
# [v.1.7.x] - 2021-06-14
## Consumables
## New features
Added support for consumables
## New functions
- New-SnipeitConsumable
- Get-SnipeitConsumable
- Set-SnipeitConsumable
- Remove-SnipeitConsumable
# [v.1.6.x] - 2021-06-14
## Remove more things ja set some more
### New features
Added some set and remove functions. Pipelineinput supported
for all remove functions.
### New functions
- Remove-SnipeitAccessory
- Remove-SnipeitCategory
- Remove-SnipeitCompany
- Remove-SnipeitComponent
- Remove-SnipeitCustomField
- Remove-SnipeitDepartment
- Remove-SnipeitLicense
- Remove-SnipeitLocation
- Remove-SnipeitManufacturer
- Remove-SnipeitModel
- Set-SnipeitCategory
- Set-SnipeitCompany
- Set-SnipeitCustomField
- Set-SnipeitDepartment
- Set-SnipeitStatus
# [v1.5.x] - 2021-06-08
## Piping input
### New features
Most of "Set" command accepts piped input. Piped objects "id" attribute
is used to select asset set values. Like
Get-SnipeitAsset -model_id 213 | Set-SnipeitAsset -notes 'This is nice!'
Set command accept id parameter as array, so its easier to set multiple items
in one run.
Parameter sets. Get commands have now parameters sets.This will make syntax more
clear between search and get by ID use. Use get-help to
### Fixes
-Empty strings are accepted as input so it's possible to wipe field values if
needed
# [v1.4.x] - 2021-05-27
## More Activity
### New features
Snipeit activity history is now searchable. So finding out checked out the
assest its easy. Api support many different target or item types that can
be uses as filter. Searchable types are 'Accessory','Asset','AssetMaintenance'
,'AssetModel','Category','Company','Component','Consumable','CustomField',
,'Group','Licence','LicenseSeat','Location','Manufacturer','Statuslabel',
'Supplier','User'
### New Functions
- Get-SnipeitActivity Get and search Snipe-It change history.
# [v1.3.x] - 2021-05-27
## Checking out accessories
### New features
You can specify Put or Patch for Set-SnipeitAsset when updating assets.
Set-SnipeitLocation new -city parameter
### New Functions
- Set-SnipeitAccessoryOwner checkout accessory
- Get-SnipeitAccessoryOwner list checkedout accessories
- Reset-SnipeitAccessoryOwner checkin accessory
### Fixes
- Set-SnipeitAsset fixed datetime and name inputs #126,128
-
# [v1.2.x] - 2021-05-24
## Prefixing SnipeitPS
### New Features
All commands are now prefixed like Set-Info -> Set-SnipeitInfo.
To keep compatibility all old commands are available as aliases.
To update existing scripts theres Update-SnipeitAlias command.
### New fuctions
- Update-SnipeitAlias Tool to update existing scripts
- Get-SnipeitLicenceSeat lists license seats
- Set-SnipeitLicenseSeat Set and checkouts/in license seats
Licenseseat api is supported from Snipe-It release => v5.1.5
### New fixes
Added -id parameter support to support Get-SnipeitCustomField and
Get-SnipeitFieldSet commands
# [v1.1.x] - 2021-05-18
## Pull request rollup release. Lots of new features including:
### New features
- Powershell 7 compatibility. So you can use SnipeitPS on macos or linux .
- Get every asset, model, licence with snipeit id by using -id parameter
- Get assets also by -asset_tag -or serialnumber
- Get functions also return all results from snipe when using -all parameter (by @PetriAsi)
### New functions
- Reset-AssetOwner by @lunchboxrts
- Remove-Asset by @sheppyh
- Added Remove-AssetMaintenance by @sheppyh
- Remove-User @gvoynov
### Fixes
- Fixed version number on powershell gallery
- Fixed Set-AssetOwner when checking asset out to an other asset.
## [v1.0] - 2017-11-18

View file

@ -19,9 +19,23 @@ Install-Module SnipeitPS
# Check for updates occasionally:
Update-Module SnipeitPS
# To use each session:
# import module to session:
Import-Module SnipeitPS
Set-Info -URL 'https://asset.example.com' -apiKey 'tokenKey'
# Set connection
Connect-SnipeitPS -URL 'https://asset.example.com' -apiKey 'tokenKey'
# Or set connection with safely saved credentials, first save credentials
$SnipeCred =Get-Credential -message "Use url as username and apikey as password"
$SnipeCred | Export-CliXml snipecred.xml
# ..then use your saved credentials like
Connect-SnipeitPS -siteCred (Import-CliXml snipecred.xml)
# OR use -secureApiKey that allow pass apiKey as SecureString
# if you are usin Microsoft.PowerShell.SecretManagement or like
Connect-SnipeitPS -URL 'https://asset.example.com' -secureApiKey 'tokenKey'
```
### Usage
@ -30,5 +44,8 @@ Set-Info -URL 'https://asset.example.com' -apiKey 'tokenKey'
# Review the help at any time!
Get-Help about_SnipeitPS
Get-Command -Module SnipeitPS
Get-Help Get-Asset -Full # or any other command
Get-Help Get-SnipeitAsset -Full # or any other command
```
### Reporting bugs and issues
Please use -Verbose switch with command you have problem with.
Then create ticket here with all -Verbose output

View file

@ -21,7 +21,7 @@ $env:PSModulePath = "$($env:PSModulePath);$releasePath"
Import-Module BuildHelpers
# Ensure Invoke-Build works in the most strict mode.
Set-StrictMode -Version Latest
#Set-StrictMode -Version Latest
# region debug information
task ShowDebug {
@ -88,15 +88,14 @@ task GitStatus -If (Test-Path .git) {
}
}
task TestVersions TestPS3, TestPS4, TestPS4, TestPS5
task TestPS3 {
exec {powershell.exe -Version 3 -NoProfile Invoke-Build PesterTests}
}
task TestPS4 {
exec {powershell.exe -Version 4 -NoProfile Invoke-Build PesterTests}
}
task TestPS5 {
exec {powershell.exe -Version 5 -NoProfile Invoke-Build PesterTests}
task TestVersions TestPS
task TestPS {
if($env:PShell -eq '7') {
exec {pwsh.exe -NoProfile Invoke-Build PesterTests}
}else {
exec {powershell.exe -NoProfile Invoke-Build PesterTests}
}
}
# Synopsis: Invoke Pester Tests
@ -192,7 +191,9 @@ task Deploy -If (
(-not ($env:APPVEYOR_PULL_REQUEST_NUMBER)) -and
# Do not deploy if the commit contains the string "skip-deploy"
# Meant for major/minor version publishes with a .0 build/patch version (like 2.1.0)
$env:APPVEYOR_REPO_COMMIT_MESSAGE -notlike '*skip-deploy*'
$env:APPVEYOR_REPO_COMMIT_MESSAGE -notlike '*skip-deploy*' -and
# publish from one powershell version is enought
$env:PShell -eq '5'
) {
Remove-Module SnipeitPS -ErrorAction SilentlyContinue
}, PublishToGallery

View file

@ -21,39 +21,49 @@ function Get-ParameterValue {
# }
[CmdletBinding()]
param(
# The $MyInvocation for the caller -- DO NOT pass this (dot-source Get-ParameterValues instead)
$Invocation = $MyInvocation,
# The $PSBoundParameters for the caller -- DO NOT pass this (dot-source Get-ParameterValues instead)
$BoundParameters = $PSBoundParameters,
# Pass $MyInvocation.MyCommand.Parameters to function, powershell 7 seems to only populate variables with dot sourcing
[parameter(mandatory = $true)]
$Parameters
,
[parameter(mandatory = $true)]
$BoundParameters,
[string[]]$DefaultExcludeParameter = @("id", "url", "apiKey", 'Debug', 'Verbose')
[string[]]$DefaultExcludeParameter = @("id", "url", "apiKey", 'Debug', 'Verbose','RequestType','customfields')
)
if ($MyInvocation.Line[($MyInvocation.OffsetInLine - 1)] -ne '.') {
throw "Get-ParameterValues must be dot-sourced, like this: . Get-ParameterValues"
}
if ($PSBoundParameters.Count -gt 0) {
throw "You should not pass parameters to Get-ParameterValues, just dot-source it like this: . Get-ParameterValues"
throw "Get-ParameterValue must be dot-sourced, like this: . Get-ParameterValues"
}
$ParameterValues = @{}
foreach ($parameter in $Invocation.MyCommand.Parameters.GetEnumerator()) {
foreach ($parameter in $Parameters.GetEnumerator()) {
# gm -in $parameter.Value | Out-Default
try {
$key = $parameter.Key
if ($key -notin $DefaultExcludeParameter) {
#Fill in default parameters values
if ($null -ne ($value = Get-Variable -Name $key -ValueOnly -ErrorAction Ignore )) {
if ($value -ne ($null -as $parameter.Value.ParameterType)) {
$ParameterValues[$key] = $value
}
}
#Fill in all given parameters even empty
if ($BoundParameters.ContainsKey($key)) {
$ParameterValues[$key] = $BoundParameters[$key]
}
}
}
finally {}
}
#Convert switch parameters to booleans so it converts nicely to json
foreach ( $key in @($ParameterValues.Keys)) {
if ($true -eq $ParameterValues[$key].IsPresent){
$ParameterValues[$key]=$true;
}
}
return $ParameterValues
}

View file

@ -0,0 +1,38 @@
Function Get-SnipeitAlias(){
@{'Get-Asset' = 'Get-SnipeitAsset';
'Get-AssetMaintenance' = 'Get-SnipeitAssetMaintenance';
'Get-Category' = 'Get-SnipeitCategory';
'Get-Company' = 'Get-SnipeitCompany';
'Get-Component' = 'Get-SnipeitCompany';
'Get-CustomField' = 'Get-SnipeitCustomField';
'Get-Department' = 'Get-SnipeitDepartment';
'Get-Fieldset' = 'Get-SnipeitFieldset';
'Get-Manufacturer' = 'Get-SnipeitManufacturer';
'Get-Model' = 'Get-SnipeitModel';
'Get-Status' = 'Get-SnipeitStatus';
'Get-Supplier' = 'Get-SnipeitSupplier';
'Get-User' = 'Get-SnipeitUser';
'New-Asset' = 'New-SnipeitAsset';
'New-AssetMaintenance' = 'New-SnipeitAssetMaintenance';
'New-Category' = 'New-SnipeitCategory';
'New-Component' = 'New-SnipeitComponent';
'New-CustomField' = 'New-SnipeitCustomField';
'New-Department' = 'New-SnipeitDepartment';
'New-License' = 'New-SnipeitLicense';
'Set-License' = 'Set-SnipeitLicense';
'New-Location' = 'New-SnipeitLocation';
'New-Manufacturer' = 'New-SnipeitManufacturer';
'New-Model' = 'New-SnipeitModel';
'New-User' = 'New-SnipeitUser';
'Set-Asset' = 'Set-SnipeitAsset';
'Set-AssetOwner' = 'Set-SnipeitAssetOwner';
'Set-Component' = 'Set-SnipeitComponent';
'Set-Model' = 'Set-SnipeitModel';
'Set-Info' = 'Set-SnipeitInfo';
'Set-User' = 'Set-SnipeitUser';
'New-Accessory' = 'New-SnipeitAccessory';
'Set-Accessory' = 'Set-SnipeitAccessory';
'Get-Accessory' = 'Get-SnipeitAccessory';
'Remove-Asset' = 'Remove-SnipeitAsset';
'Remove-User' = 'Remove-SnipeitUser';}
}

View file

@ -1,32 +1,62 @@
function Invoke-SnipeitMethod {
<#
<#
.SYNOPSIS
Extracted invokation of the REST method to own function.
#>
Make api request to Snipe it
.PARAMETER Api
Api part of url. prefix with slash ie. "/api/v1/hardware"
.PARAMETER Method
Method of the invokation, one of following "GET", "POST", "PUT", "PATCH" or "DELETE"
.PARAMETER Body
Request body as hashtable. Needed for post, put and patch
.PARAMETER GetParameters
Get-Parameters as hastable.
#>
function Invoke-SnipeitMethod {
[OutputType(
[PSObject]
)]
param (
# REST API to invoke
[Parameter(Mandatory = $true)]
[Uri]$URi,
# Method of the invokation
param (
[Parameter(Mandatory = $true)]
[string]$Api,
[ValidateSet("GET", "POST", "PUT", "PATCH", "DELETE")]
[string]$Method = "GET",
# Body of the request
[ValidateNotNullOrEmpty()]
[string]$Body,
[Hashtable]$Body,
[string] $Token,
# GET Parameters
[Hashtable]$GetParameters
)
BEGIN {
#use legacy per command based url and apikey
if ( $null -ne $SnipeitPSSession.legacyUrl -and $null -ne $SnipeitPSSession.legacyApiKey ) {
[string]$Url = $SnipeitPSSession.legacyUrl
Write-Debug "Invoke-SnipeitMethod url: $Url"
if($PSVersionTable.PSVersion -ge '7.0'){
$Token = ConvertFrom-SecureString -AsPlainText -SecureString $SnipeitPSSession.legacyApiKey
} else {
#convert to plaintext via credential
$Token = (New-Object PSCredential "user",$SnipeitPSSession.legacyApiKey).GetNetworkCredential().Password
}
} elseif ($null -ne $SnipeitPSSession.url -and $null -ne $SnipeitPSSession.apiKey) {
[string]$Url = $SnipeitPSSession.url
Write-Debug "Invoke-SnipeitMethod url: $Url"
if($PSVersionTable.PSVersion -ge '7.0'){
$Token = ConvertFrom-SecureString -AsPlainText -SecureString $SnipeitPSSession.apiKey
} else {
#convert to plaintext via credential
$Token = (New-Object PSCredential "user",$SnipeitPSSession.apiKey).GetNetworkCredential().Password
}
} else {
throw "Please use Connect-SnipeitPS to setup connection before any other commands."
}
# Validation of parameters
if (($Method -in ("POST", "PUT", "PATCH")) -and (!($Body))) {
$message = "The following parameters are required when using the ${Method} parameter: Body."
@ -34,42 +64,117 @@
Throw $exception
}
#Build request uri
$apiUri = "$Url$Api"
#To support images "image" property have be handled before this
$_headers = @{
"Authorization" = "Bearer $($token)"
"Authorization" = "Bearer $($Token)"
'Content-Type' = 'application/json; charset=utf-8'
"Accept" = "application/json"
}
}
Process {
if ($GetParameters -and ($URi -notlike "*\?*"))
{
# This can be done using $Body, maybe some day - PetriAsi
if ($GetParameters -and ($apiUri -notlike "*\?*")){
Write-Debug "Using `$GetParameters: $($GetParameters | Out-String)"
[string]$URI += (ConvertTo-GetParameter $GetParameters)
[string]$apiUri = $apiUri + (ConvertTo-GetParameter $GetParameters)
# Prevent recursive appends
$GetParameters = $null
}
# set mandatory parameters
$splatParameters = @{
Uri = $URi
Uri = $apiUri
Method = $Method
Headers = $_headers
UseBasicParsing = $true
ErrorAction = 'SilentlyContinue'
}
if ($Body) {$splatParameters["Body"] = [System.Text.Encoding]::UTF8.GetBytes($Body)}
# Send image requests as multipart/form-data if supported
if($null -ne $body -and $Body.Keys -contains 'image' ){
if($PSVersionTable.PSVersion -ge '7.0'){
$Body['image'] = get-item $body['image']
# As multipart/form-data is always POST we need add
# requested method for laravel named as '_method'
$Body['_method'] = $Method
$splatParameters["Method"] = 'POST'
$splatParameters["Form"] = $Body
} else {
# use base64 encoded images for powershell version < 7
Add-Type -AssemblyName "System.Web"
$mimetype = [System.Web.MimeMapping]::GetMimeMapping($body['image'])
$Body['image'] = 'data:@'+$mimetype+';base64,'+[Convert]::ToBase64String([IO.File]::ReadAllBytes($Body['image']))
}
}
if ($Body -and $splatParameters.Keys -notcontains 'Form') {
$splatParameters["Body"] = [System.Text.Encoding]::UTF8.GetBytes(($Body | Convertto-Json))
}
$script:PSDefaultParameterValues = $global:PSDefaultParameterValues
Write-Debug $Body
Write-Debug "$($Body | ConvertTo-Json)"
#Check throttle limit
if ($SnipeitPSSession.throttleLimit -gt 0) {
Write-Verbose "Check for request throttling"
Write-debug "ThrottleMode: $($SnipeitPSSession.throttleMode)"
Write-debug "ThrottleLimit: $($SnipeitPSSession.throttleLimit)"
Write-debug "ThrottlePeriod: $($SnipeitPSSession.throttlePeriod)"
Write-debug "ThrottleThreshold: $($SnipeitPSSession.throttleThreshold)"
Write-debug "Current count: $($SnipeitPSSession.throttledRequests.count)"
#current request timestamps in period
$SnipeitPSSession.throttledRequests = ($SnipeitPSSession.throttledRequests).where({$_ -gt (get-date).AddMilliseconds( 0 - $SnipeitPSSession.throttlePeriod).ToFileTime()})
#make sure that we alway have list here
if($null -eq $SnipeitPSSession.throttledRequests) {
$SnipeitPSSession.throttledRequests = [System.Collections.ArrayList]::new()
}
$naptime = 0
switch ($SnipeitPSSession.throttleMode) {
"Burst" {
if ($SnipeitPSSession.throttledRequests.count -ge $SnipeitPSSession.throttleLimit) {
$naptime = [Math]::Round(((get-date).ToFileTime() - ($SnipeitPSSession.throttledRequests[0]))/10000)
}
}
"Constant" {
$prevrequesttime =[Math]::Round(((get-date).ToFileTime() - ($SnipeitPSSession.throttledRequests[$SnipeitPSSession.throttledRequests.count - 1]))/10000)
$naptime = [Math]::Round($SnipeitPSSession.throttlePeriod / $SnipeitPSSession.throttleLimit) - $prevrequesttime
}
"Adaptive" {
$unThrottledRequests = $SnipeitPSSession.throttleLimit * ($SnipeitPSSession.throttleThreshold / 100)
if($SnipeitPSSession.throttledRequests.count -ge $unThrottledRequests) {
#calculate time left in throttlePeriod and devide it for remaining requests
$remaining = $SnipeitPSSession.throttleLimit - $SnipeitPSSession.throttledRequests.count
if ($remaining -lt 1) {
$remaining = 1
}
$naptime = [Math]::Round((((get-date).ToFileTime() - ($SnipeitPSSession.throttledRequests[0]))/ 10000) / $remaining)
}
}
}
#Do we need a nap
if ($naptime -gt 0) {
Write-verbose "Throttling request for $naptime ms"
Start-Sleep -Milliseconds $naptime
}
$SnipeitPSSession.throttledRequests.Add((Get-Date).ToFileTime())
}
# Invoke the API
try {
Write-Verbose "[$($MyInvocation.MyCommand.Name)] Invoking method $Method to URI $URi"
Write-Debug "[$($MyInvocation.MyCommand.Name)] Invoke-WebRequest with: $($splatParameters | Out-String)"
$webResponse = Invoke-WebRequest @splatParameters
$webResponse = Invoke-RestMethod @splatParameters
}
catch {
Write-Verbose "[$($MyInvocation.MyCommand.Name)] Failed to get an answer from the server"
@ -81,33 +186,55 @@
if ($webResponse) {
Write-Verbose "[$($MyInvocation.MyCommand.Name)] Status code: $($webResponse.StatusCode)"
if ($webResponse.Content) {
Write-Verbose $webResponse.Content
if ($webResponse) {
Write-Verbose $webResponse
# API returned a Content: lets work wit it
$response = ConvertFrom-Json -InputObject $webResponse.Content
if ($response.status -eq "error") {
Write-Verbose "[$($MyInvocation.MyCommand.Name)] An error response was received from; resolving"
# API returned a Content: lets work with it
try{
if ($webResponse.status -eq "error") {
Write-Verbose "[$($MyInvocation.MyCommand.Name)] An error response was received ... resolving"
# This could be handled nicely in an function such as:
# ResolveError $response -WriteError
Write-Error $($response.messages | Out-String)
Write-Error $($webResponse.messages | Out-String)
} elseif ( $webResponse.StatusCode -eq 'Unauthorized') {
Write-Verbose "[$($MyInvocation.MyCommand.Name)] An Unauthorized response was received"
Write-Error "Cannot connect to Snipe It: Unauthorized."
return $false
} else {
#update operations return payload
if ($webResponse.payload) {
$result = $webResponse.payload
}
#Search operations return rows
elseif ($webResponse.rows) {
$result = $webResponse.rows
}
#Remove operations returns status and message
elseif ($webResponse.status -eq 'success') {
$result = $webResponse.payload
}
#Search and query result with no results
elseif ($webResponse.total -eq 0){
$result = $null
}
#get operations with id returns just one object
else {
$result = $response
if (($response) -and ($response | Get-Member -Name payload))
{
$result = $response.payload
}
elseif (($response) -and ($response | Get-Member -Name rows)) {
$result = $response.rows
$result = $webResponse
}
Write-Verbose "Status: $($webResponse.status)"
Write-Verbose "Messages: $($webResponse.messages)"
$result
}
}
catch {
Write-Warning "Cannot parse server response. To debug try to add -Verbose with command."
}
}
elseif ($webResponse.StatusCode -eq "Unauthorized") {
Write-Error "[$($MyInvocation.MyCommand.Name)] You are not Authorized to access the resource, check your token is correct"
Write-Error "[$($MyInvocation.MyCommand.Name)] You are not Authorized to access the resource, check your apiKey is correct"
}
else {
# No content, although statusCode < 400
@ -125,3 +252,4 @@
Write-Verbose "[$($MyInvocation.MyCommand.Name)] Function ended"
}
}

View file

@ -0,0 +1,16 @@
function Reset-SnipeitPSLegacyApi {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
param(
)
process {
Write-Verbose 'Reset-SnipeitPSLegacyApi'
if ($PSCmdlet.ShouldProcess("ShouldProcess?")) {
$SnipeitPSSession.legacyUrl = $null
$SnipeitPSSession.legacyApiKey = $null
}
}
}

View file

@ -0,0 +1,18 @@
function Set-SnipeitAlias()
{
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
param()
Write-Verbose "Setting compatibility aliases.. "
Write-Verbose "All aliases are deprediated."
$SnipeitAliases = get-SnipeitAlias
ForEach ($key in $SnipeitAliases.Keys ) {
New-Alias -Name $key -Value $($SnipeitAliases[$key]) -Scope 1
Write-Verbose ("{0,5} -> {1}" -f $key,$($SnipeitAliases[$key]))
}
Write-Verbose "Please start using native 'Snipeit' prfixed functions instead."
Get-Command -Module SnipeitPS -CommandType Alias | Select-Object -Property DisplayName,ResolvedCommand
}

View file

@ -0,0 +1,18 @@
function Set-SnipeitPSLegacyApiKey {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
param(
[string]$apiKey
)
process {
if ($PSCmdlet.ShouldProcess("ShouldProcess?")) {
if($PSVersionTable.PSVersion -ge '7.0'){
$SnipeitPSSession.legacyApiKey = ConvertTo-SecureString -AsPlainText -String $apiKey
} else {
$SnipeitPSSession.legacyApiKey = ConvertTo-SecureString -Force -AsPlainText -String $apiKey
}
}
}
}

View file

@ -0,0 +1,14 @@
function Set-SnipeitPSLegacyUrl {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
param(
$url
)
process {
if ($PSCmdlet.ShouldProcess("ShouldProcess?")) {
$SnipeitPSSession.legacyUrl = $url.TrimEnd('/')
}
}
}

View file

@ -0,0 +1,15 @@
function Test-SnipeitAlias()
{
[CmdletBinding()]
param(
[parameter(mandatory = $true)]
[string]$invocationName,
[parameter(mandatory = $true)]
[string]$commandName
)
if($invocationName -ne $commandName) {
Write-Warning "$invocationName is still working, but it has been superceded by $commandName, please use it instead."
Write-Warning 'To update your scripts you can use Update-SnipeitAlias helper function: '
Write-Warning '"Get-Content [your-script.ps1] | Update-SnipeitAlias | Out-File [new-script-name.ps1]"'
}
}

View file

@ -0,0 +1,18 @@
function Test-SnipeitPSConnection {
#test api connection
$Parameters = @{
Api = '/api/v1/statuslabels'
Method = 'Get'
GetParameters = @{'limit'=1}
}
Write-Verbose "Testing connection to $($SnipeitPSSession.url)."
$contest = Invoke-SnipeitMethod @Parameters
if ( $contest) {
Write-Verbose "Connection to $($SnipeitPSSession.url) tested succesfully."
return $true
} else {
return $false
}
}

View file

@ -0,0 +1,149 @@
<#
.SYNOPSIS
Sets authetication information
.DESCRIPTION
Sets apikey and url to connect Snipe-It system.
Based on Set-SnipeitInfo command, what is now just compatibility wrapper
and calls Connect-SnipeitPS
.PARAMETER url
URL of Snipeit system.
.PARAMETER apiKey
User's API Key for Snipeit.
.PARAMETER secureApiKey
Snipe it Api key as securestring
.PARAMETER siteCred
PSCredential where username shoul be snipe it url and password should be
snipe it apikey.
.PARAMETER throttleLimit
Throttle request rate to nro of requests per throttlePeriod. Defaults to 0 that means no requests are not throttled.
.PARAMETER throttlePeriod
Throttle period time span in milliseconds defaults to 60 milliseconds.
.PARAMETER throttleThreshold
Threshold percentage of used request on period after request are throttled.
.PARAMETER throttleMode
RequestThrottling type. "Burst" allows all requests to be used in ThrottlePeriod without delays and then waits
until there's new requests avalable. With "Contant" mode there always delay between requests. Delay is calculated
by dividing throttlePeriod with throttleLimit. "Adaptive" mode allows throttleThreshold percentage of request to be
used with out delay, after threshold limit is reached next requests are delayded by dividing available requests
over throttlePeriod.
.EXAMPLE
Connect-SnipeitPS -Url $url -apiKey $myapikey
Connect to Snipe it api.
.EXAMPLE
Connect-SnipeitPS -Url $url -SecureApiKey $myapikey
Connects to Snipe it api with apikey stored to securestring
.EXAMPLE
Connect-SnipeitPS -siteCred (Get-Credential -message "Use site url as username and apikey as password")
Connect to Snipe It with PSCredential object.
To use saved creadentials yu can use export-clixml and import-clixml commandlets.
.EXAMPLE
Build credential with apikey value from secret vault (Microsoft.PowerShell.SecretManagement)
$siteurl = "https://mysnipeitsite.url"
$apikey = Get-SecretInfo -Name SnipeItApiKey
$siteCred = New-Object -Type PSCredential -Argumentlist $siteurl,$spikey
Connect-SnipeitPS -siteCred $siteCred
#>
function Connect-SnipeitPS {
[CmdletBinding(
DefaultParameterSetName = 'Connect with url and apikey'
)]
[System.Diagnostics.CodeAnalysis.SuppressMessage('PSUseShouldProcessForStateChangingFunctions', '')]
param (
[Parameter(ParameterSetName='Connect with url and apikey',Mandatory=$true)]
[Parameter(ParameterSetName='Connect with url and secure apikey',Mandatory=$true)]
[Uri]$url,
[Parameter(ParameterSetName='Connect with url and apikey',Mandatory=$true)]
[String]$apiKey,
[Parameter(ParameterSetName='Connect with url and secure apikey',Mandatory=$true)]
[SecureString]$secureApiKey,
[Parameter(ParameterSetName='Connect with credential',Mandatory=$true)]
[PSCredential]$siteCred,
[Parameter(ParameterSetName='Connect with url and apikey',Mandatory=$false)]
[Parameter(ParameterSetName='Connect with url and secure apikey',Mandatory=$false)]
[Parameter(ParameterSetName='Connect with credential',Mandatory=$false)]
[int]$throttleLimit,
[Parameter(ParameterSetName='Connect with url and apikey',Mandatory=$false)]
[Parameter(ParameterSetName='Connect with url and secure apikey',Mandatory=$false)]
[Parameter(ParameterSetName='Connect with credential',Mandatory=$false)]
[int]$throttlePeriod,
[Parameter(ParameterSetName='Connect with url and apikey',Mandatory=$false)]
[Parameter(ParameterSetName='Connect with url and secure apikey',Mandatory=$false)]
[Parameter(ParameterSetName='Connect with credential',Mandatory=$false)]
[int]$throttleThreshold,
[Parameter(ParameterSetName='Connect with url and apikey',Mandatory=$false)]
[Parameter(ParameterSetName='Connect with url and secure apikey',Mandatory=$false)]
[Parameter(ParameterSetName='Connect with credential',Mandatory=$false)]
[ValidateSet("Burst","Constant","Adaptive")]
[string]$throttleMode
)
PROCESS {
switch ($PsCmdlet.ParameterSetName) {
'Connect with url and apikey' {
$SnipeitPSSession.url = $url.AbsoluteUri.TrimEnd('/')
if($PSVersionTable.PSVersion -ge '7.0'){
$SnipeitPSSession.apiKey = ConvertTo-SecureString -AsPlainText -String $apiKey
} else {
$SnipeitPSSession.apiKey = ConvertTo-SecureString -String $apiKey -AsPlainText -Force
}
}
'Connect with url and secure apikey' {
$SnipeitPSSession.url = $url.AbsoluteUri.TrimEnd('/')
$SnipeitPSSession.apiKey = $secureApiKey
}
'Connect with credential' {
$SnipeitPSSession.url = ($siteCred.GetNetworkCredential().UserName).TrimEnd('/')
$SnipeitPSSession.apiKey = $siteCred.GetNetworkCredential().SecurePassword
}
}
if($null -eq $throttleLimit) { $throttleLimit = 0}
$SnipeitPSSession.throttleLimit = $throttleLimit
if($throttleThreshold -lt 1) { $throttleThreshold = 90}
$SnipeitPSSession.throttleThreshold = $throttleThreshold
if('' -eq $throttleMode) { $throttleMode = "Burst"}
$SnipeitPSSession.throttleMode = $throttleMode
if ($SnipeitPSSession.throttleLimit -gt 0) {
if($null -eq $throttlePeriod) { $throttlePeriod = 60000}
$SnipeitPSSession.throttlePeriod = $throttlePeriod
$SnipeitPSSession.throttledRequests = [System.Collections.ArrayList]::new()
}
Write-Debug "Site-url $($SnipeitPSSession.url)"
Write-Debug "Site apikey: $($SnipeitPSSession.apiKey)"
if (-not (Test-SnipeitPSConnection)) {
throw "Cannot verify connection to snipe it. For the start try to check url and provided apikey or credential parameters"
}
}
}

View file

@ -1,47 +0,0 @@
function Get-Accessory() {
Param(
[string]$search,
[int]$company_id,
[int]$category_id,
[int]$manufacturer_id,
[int]$supplier_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 = . Get-ParameterValue
$Parameters = @{
Uri = "$url/api/v1/accessories"
Method = 'Get'
GetParameters = $SearchParameter
Token = $apiKey
}
$result = Invoke-SnipeitMethod @Parameters
$result
}

View file

@ -1,117 +0,0 @@
<#
.SYNOPSIS
Gets a list of Snipe-it Assets
.PARAMETER search
A text string to search the assets data
.PARAMETER order_number
Optionally restrict asset results to this order number
.PARAMETER model_id
Optionally restrict asset results to this asset model ID
.PARAMETER category_id
Optionally restrict asset results to this category ID
.PARAMETER manufacturer_id
Optionally restrict asset results to this manufacturer ID
.PARAMETER company_id
Optionally restrict asset results to this company ID
.PARAMETER location_id
Optionally restrict asset results to this location ID
.PARAMETER status
Optionally restrict asset results to one of these status types: RTD, Deployed, Undeployable, Deleted, Archived, Requestable
.PARAMETER status_id
Optionally restrict asset results to this status label ID
.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-Asset -url "https://assets.example.com" -token "token..."
.EXAMPLE
Get-Asset -search "myMachine" -url "https://assets.example.com" -token "token..."
.EXAMPLE
Get-Asset -search "myMachine" -url "https://assets.example.com" -token "token..."
#>
function Get-Asset() {
Param(
[string]$search,
[int]$order_number,
[int]$model_id,
[int]$category_id,
[int]$manufacturer_id,
[int]$company_id,
[int]$location_id,
[int]$depreciation_id,
[bool]$requestable = $false,
[string]$status,
[int]$status_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 = . Get-ParameterValue
$Parameters = @{
Uri = "$url/api/v1/hardware"
Method = 'Get'
GetParameters = $SearchParameter
Token = $apiKey
}
$result = Invoke-SnipeitMethod @Parameters
$result
}

View file

@ -1,78 +0,0 @@
<#
.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 = . Get-ParameterValue
$Parameters = @{
Uri = "$url/api/v1/maintenances"
Method = 'Get'
GetParameters = $SearchParameter
Token = $apiKey
}
$result = Invoke-SnipeitMethod @Parameters
$result
}

View file

@ -1,50 +0,0 @@
<#
.SYNOPSIS
# Gets a list of Snipe-it Categories
.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-Category -url "https://assets.example.com" -token "token..."
.EXAMPLE
Get-Category -url "https://assets.example.com" -token "token..." | Where-Object {$_.name -eq "Laptop" }
#>
function Get-Category()
{
Param(
[string]$search,
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[int]$limit = 50,
[int]$offset,
[parameter(mandatory = $true)]
[string]$url,
[parameter(mandatory = $true)]
[string]$apiKey
)
$SearchParameter = . Get-ParameterValue
$Parameters = @{
Uri = "$url/api/v1/categories"
Method = 'Get'
Token = $apiKey
GetParameters = $SearchParameter
}
$result = Invoke-SnipeitMethod @Parameters
$result
}

View file

@ -1,50 +0,0 @@
<#
.SYNOPSIS
# Gets a list of Snipe-it Companies
.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-Company -url "https://assets.example.com" -token "token..."
.EXAMPLE
Get-Company -url "https://assets.example.com" -token "token..." | Where-Object {$_.name -eq "Company1" }
#>
function Get-Company()
{
Param(
[string]$search,
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[int]$limit = 50,
[int]$offset,
[parameter(mandatory=$true)]
[string]$url,
[parameter(mandatory=$true)]
[string]$apiKey
)
$SearchParameter = . Get-ParameterValue
$Parameters = @{
Uri = "$url/api/v1/companies"
Method = 'Get'
Token = $apiKey
GetParameters = $SearchParameter
}
$result = Invoke-SnipeitMethod @Parameters
$result
}

View file

@ -1,58 +0,0 @@
<#
.SYNOPSIS
# Gets a list of Snipe-it Components
.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-Component -url "https://assets.example.com" -token "token..."
.EXAMPLE
Get-Component -url "https://assets.example.com" -token "token..." | Where-Object {$_.name -eq "Memory" }
#>
function Get-Component() {
Param(
[string]$search,
[int]$category_id,
[int]$company_id,
[int]$location_id,
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[ValidateSet('id', 'name', 'min_amt', 'order_number', 'serial', 'purchase_date', 'purchase_cost', 'company', 'category', 'qty', 'location', 'image', 'created_at')]
[string]$sort = "created_at",
[int]$limit = 50,
[int]$offset,
[parameter(mandatory = $true)]
[string]$url,
[parameter(mandatory = $true)]
[string]$apiKey
)
$SearchParameter = . Get-ParameterValue
$Parameters = @{
Uri = "$url/api/v1/components"
Method = 'Get'
Token = $apiKey
GetParameters = $SearchParameter
}
$result = Invoke-SnipeitMethod @Parameters
$result
}

View file

@ -1,35 +0,0 @@
<#
.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
}

View file

@ -1,54 +0,0 @@
<#
.SYNOPSIS
# Gets a list of Snipe-it Departments
.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-Department -url "https://assets.example.com" -token "token..."
.EXAMPLE
Get-Department -url "https://assets.example.com" -token "token..." | Where-Object {$_.name -eq "Department1" }
#>
function Get-Department()
{
Param(
[string]$search,
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[int]$limit = 50,
[int]$offset,
[ValidateSet('id', 'name', 'image', 'users_count', 'created_at')]
[string]$sort = "created_at",
[parameter(mandatory = $true)]
[string]$url,
[parameter(mandatory = $true)]
[string]$apiKey
)
$SearchParameter = . Get-ParameterValue
$Parameters = @{
Uri = "$url/api/v1/departments"
Method = 'Get'
Token = $apiKey
GetParameters = $SearchParameter
}
$result = Invoke-SnipeitMethod @Parameters
$result
}

View file

@ -1,37 +0,0 @@
<#
.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
}

View file

@ -1,75 +0,0 @@
<#
.SYNOPSIS
# Gets a list of Snipe-it Licenses
.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-License -url "https://assets.example.com" -token "token..."
.EXAMPLE
Get-License -url "https://assets.example.com" -token "token..." | Where-Object {$_.name -eq "License" }
#>
function Get-License() {
Param(
[string]$search,
[string]$name,
[int] $company_id,
[string]$product_key,
[int]$order_number,
[string]$purchase_order,
[string]$license_name,
[mailaddress]$license_email,
[int]$manufacturer_id,
[int]$supplier_id,
[int]$depreciation_id,
[int]$category_id,
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[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",
[int]$limit = 50,
[int]$offset,
[parameter(mandatory = $true)]
[string]$url,
[parameter(mandatory = $true)]
[string]$apiKey
)
$SearchParameter = . Get-ParameterValue
$Parameters = @{
Uri = "$url/api/v1/licenses"
Method = 'Get'
Token = $apiKey
GetParameters = $SearchParameter
}
$result = Invoke-SnipeitMethod @Parameters
$result
}

View file

@ -1,50 +0,0 @@
<#
.SYNOPSIS
# Gets a list of Snipe-it Manufacturers
.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-Manufacturer -url "https://assets.example.com" -token "token..."
.EXAMPLE
Get-Manufacturer -url "https://assets.example.com" -token "token..." | Where-Object {$_.name -eq "HP" }
#>
function Get-Manufacturer()
{
Param(
[string]$search,
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[int]$limit = 50,
[int]$offset,
[parameter(mandatory = $true)]
[string]$url,
[parameter(mandatory = $true)]
[string]$apiKey
)
$SearchParameter = . Get-ParameterValue
$Parameters = @{
Uri = "$url/api/v1/manufacturers"
Method = 'Get'
Token = $apiKey
GetParameters = $SearchParameter
}
$result = Invoke-SnipeitMethod @Parameters
$result
}

View file

@ -1,50 +0,0 @@
<#
.SYNOPSIS
# Gets a list of Snipe-it Models
.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-Models -url "https://assets.example.com" -token "token..."
.EXAMPLE
Get-Models -url "https://assets.example.com" -token "token..." | Where-Object {$_.name -eq "DL380" }
#>
function Get-Model()
{
Param(
[string]$search,
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[int]$limit = 50,
[int]$offset,
[parameter(mandatory = $true)]
[string]$url,
[parameter(mandatory = $true)]
[string]$apiKey
)
$SearchParameter = . Get-ParameterValue
$Parameters = @{
Uri = "$url/api/v1/models"
Method = 'Get'
Token = $apiKey
GetParameters = $SearchParameter
}
$result = Invoke-SnipeitMethod @Parameters
$result
}

View file

@ -0,0 +1,165 @@
<#
.SYNOPSIS
Gets a list of Snipe-it Accessories
.DESCRIPTION
Gets a list of Snipe-it Accessories
.PARAMETER search
A text string to search the Accessory data
.PARAMETER user_id
Return Accessories checked out to user id
.PARAMETER id
A id of specific Accessory
.PARAMETER company_id
Optionally restrict Accessory results to this company_id field
.PARAMETER category_id
Optionally restrict Accessory results to this category_id field
.PARAMETER manufacturer_id
Optionally restrict Accessory results to this manufacturer_id field
.PARAMETER supplier_id
Optionally restrict Accessory results to this supplier_id field
.PARAMETER limit
Specify the number of results you wish to return. Defaults to 50. Defines batch size for -all
.PARAMETER offset
Result offset to use
.PARAMETER all
A return all results, works with -offset and other parameters
.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
Get-SnipeitAccessory -search Keyboard
.EXAMPLE
Get-SnipeitAccessory -id 1
.EXAMPLE
Get-SnipeitAccessory -user_id 1
Get accessories checked out to user ID 1
#>
function Get-SnipeitAccessory() {
[CmdletBinding(DefaultParameterSetName = 'Search')]
Param(
[parameter(ParameterSetName='Search')]
[string]$search,
[parameter(ParameterSetName='Get by ID')]
[int]$id,
[parameter(ParameterSetName='Accessories checked out to user id')]
[int]$user_id,
[parameter(ParameterSetName='Search')]
[int]$company_id,
[parameter(ParameterSetName='Search')]
[int]$category_id,
[parameter(ParameterSetName='Search')]
[int]$manufacturer_id,
[parameter(ParameterSetName='Search')]
[int]$supplier_id,
[parameter(ParameterSetName='Search')]
[string]$sort = "created_at",
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset,
[parameter(ParameterSetName='Search')]
[parameter(ParameterSetName='Accessories checked out to user id')]
[switch]$all = $false,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
Test-SnipeitAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
switch($PsCmdlet.ParameterSetName) {
'Search' {$api = "/api/v1/accessories"}
'Get by ID' {$api= "/api/v1/accessories/$id"}
'Accessories checked out to user id' {$api = "/api/v1/users/$user_id/accessories"}
}
$SearchParameter = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters
$Parameters = @{
Api = $api
Method = 'Get'
GetParameters = $SearchParameter
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
}
process {
if ($all) {
$offstart = $(if ($offset) {$offset} Else {0})
$callargs = $SearchParameter
$callargs.Remove('all')
while ($true) {
$callargs['offset'] = $offstart
$callargs['limit'] = $limit
$res=Get-SnipeitAccessory @callargs
$res
if ($res.count -lt $limit) {
break
}
$offstart = $offstart + $limit
}
} else {
$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
}
}
}

View file

@ -0,0 +1,64 @@
<#
.SYNOPSIS
Get list of checked out accessories
.DESCRIPTION
Get list of checked out accessories
.PARAMETER id
Unique ID For accessory to list
.PARAMETER url
Deprecated parameter, please use Connect-SnipeitPS instead. URL of Snipeit system.
.PARAMETER apiKey
Deprecated parameter, please use Connect-SnipeitPS instead. User's API Key for Snipeit.
.EXAMPLE
Get-SnipeitAccessoryOwner -id 1
#>
function Get-SnipeitAccessoryOwner() {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Medium"
)]
Param(
[parameter(mandatory = $true)]
[int]$id,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
$Parameters = @{
Api = "/api/v1/accessories/$id/checkedout"
Method = 'GET'
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
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
}
}
}

View file

@ -0,0 +1,145 @@
<#
.SYNOPSIS
Gets and search Snipe-it Activity history
.DESCRIPTION
Gets a list of Snipe-it activity history
.PARAMETER search
A text string to search the Activity history
.PARAMETER target_type
Type of target. One from following list 'Accessory','Asset','AssetMaintenance','AssetModel','Category','Company','Component','Consumable','CustomField','Depreciable','Depreciation','Group','Licence','LicenseSeat','Location','Manufacturer','Statuslabel','Supplier','User'
.PARAMETER target_id
Needed if target_type is specified
.PARAMETER item_type
Type of target. One from following list 'Accessory','Asset','AssetMaintenance','AssetModel','Category','Company','Component','Consumable','CustomField','Depreciable','Depreciation','Group','Licence','LicenseSeat','Location','Manufacturer','Statuslabel','Supplier','User'
.PARAMETER item_id
Needed if target_type is specified
.PARAMETER action_type
Type of action. One from following list "add seats", "checkin from", 'checkout' or 'update'
.PARAMETER offset
Result offset to use
.PARAMETER all
A return all results, works with -offset and other parameters
.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
Get-SnipeitAccessory -search Keyboard
.EXAMPLE
Get-SnipeitAccessory -id 1
#>
function Get-SnipeitActivity() {
Param(
[string]$search,
[Parameter(Mandatory=$false)]
[ValidateSet('Accessory','Asset','AssetMaintenance','AssetModel','Category','Company','Component','Consumable','CustomField','Depreciable','Depreciation','Group','Licence','LicenseSeat','Location','Manufacturer','Statuslabel','Supplier','User')]
[string]$target_type,
[Parameter(Mandatory=$false)]
[int]$target_id,
[Parameter(Mandatory=$false)]
[ValidateSet('Accessory','Asset','AssetMaintenance','AssetModel','Category','Company','Component','Consumable','CustomField','Depreciable','Depreciation','Group','Licence','LicenseSeat','Location','Manufacturer','Statuslabel','Supplier','User')]
[string]$item_type,
[Parameter(Mandatory=$false)]
[int]$item_id,
[ValidateSet("add seats", "checkin from", 'checkout','update')]
[string]$action_type ,
[int]$limit = 50,
[int]$offset,
[switch]$all = $false,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
if (($target_type -and -not $target_id) -or
($target_id -and -not $target_type)) {
throw "Please specify both target_type and target_id"
}
if (($item_type -and -not $item_id) -or
($item_id -and -not $item_type)) {
throw "Please specify both item_type and item_id"
}
$SearchParameter = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters
$Parameters = @{
Api = "/api/v1/reports/activity"
Method = 'Get'
GetParameters = $SearchParameter
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
}
process {
if ($all) {
$offstart = $(if ($offset) {$offset} Else {0})
$callargs = $SearchParameter
$callargs.Remove('all')
while ($true) {
$callargs['offset'] = $offstart
$callargs['limit'] = $limit
$res=Get-SnipeitActivity @callargs
$res
if ($res.count -lt $limit) {
break
}
$offstart = $offstart + $limit
}
} else {
$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
}
}
}

View file

@ -0,0 +1,312 @@
<#
.SYNOPSIS
Gets a list of Snipe-it Assets or specific asset
.PARAMETER search
A text string to search the assets data
.PARAMETER id
ID number of excact snipeit asset
.PARAMETER asset_tag
Exact asset tag to query
.PARAMETER asset_serial
Exact asset serialnumber to query
.PARAMETER audit_due
Retrieve a list of assets that are due for auditing soon.
.PARAMETER audit_overdue
Retrieve a list of assets that are overdue for auditing.
.PARAMETER user_id
Retrieve a list of assets checked out to user id.
.PARAMETER component_id
Retrieve a list of assets assigned this component id.
.PARAMETER name
Optionally restrict asset results to this asset name
.PARAMETER order_number
Optionally restrict asset results to this order number
.PARAMETER model_id
Optionally restrict asset results to this asset model ID
.PARAMETER category_id
Optionally restrict asset results to this category ID
.PARAMETER manufacturer_id
Optionally restrict asset results to this manufacturer ID
.PARAMETER company_id
Optionally restrict asset results to this company ID
.PARAMETER location_id
Optionally restrict asset results to this location ID
.PARAMETER depreciation_id
Optionally restrict asset results to this depreciation ID
.PARAMETER requestable
Optionally restrict asset results to those set as requestable
.PARAMETER status
Optionally restrict asset results to one of these status types: RTD, Deployed, Undeployable, Deleted, Archived, Requestable
.PARAMETER status_id
Optionally restrict asset results to this status label ID
.PARAMETER customfields
Hastable of custom fields and extra fields for searching assets in Snipe-It.
Use internal field names from Snipe-It. You can use Get-CustomField to get internal field names.
.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. Defines batch size for -all
.PARAMETER offset
Offset to use
.PARAMETER all
A return all results, works with -offset and other parameters
.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
Get-SnipeitAsset -all
Returens all assets
.EXAMPLE
Get-SnipeitAsset -search "myMachine"
Search for specific asset
.EXAMPLE
Get-SnipeitAsset -id 3
Get asset with id number 3
.EXAMPLE
Get-SnipeitAsset -asset_tag snipe0003
Get asset with asset tag snipe00033
.EXAMPLE
Get-SnipeitAsset -serial 1234
Get asset with searial number 1234
.EXAMPLE
Get-SnipeitAsser -audit_due
Get Assets due auditing soon
.EXAMPLE
Get-SnipeitAsser -audit_overdue
Get Assets overdue for auditing
.EXAMPLE
Get-AnipeitAsset -user_id 4
Get Assets checked out to user id 4
.EXAMPLE
Get-SnipeitAsset -component_id 5
Get Assets with component id 5
#>
function Get-SnipeitAsset() {
[CmdletBinding(DefaultParameterSetName = 'Search')]
Param(
[parameter(ParameterSetName='Search')]
[string]$search,
[parameter(ParameterSetName='Get with id')]
[int]$id,
[parameter(ParameterSetName='Get with asset tag')]
[string]$asset_tag,
[parameter(ParameterSetName='Get with serial')]
[Alias('asset_serial')]
[string]$serial,
[parameter(ParameterSetName='Assets due auditing soon')]
[switch]$audit_due,
[parameter(ParameterSetName='Assets overdue for auditing')]
[switch]$audit_overdue,
[parameter(ParameterSetName='Assets checked out to user id')]
[int]$user_id,
[parameter(ParameterSetName='Assets with component id')]
[int]$component_id,
[parameter(ParameterSetName='Search')]
[string]$name,
[parameter(ParameterSetName='Search')]
[string]$order_number,
[parameter(ParameterSetName='Search')]
[int]$model_id,
[parameter(ParameterSetName='Search')]
[int]$category_id,
[parameter(ParameterSetName='Search')]
[int]$manufacturer_id,
[parameter(ParameterSetName='Search')]
[int]$company_id,
[parameter(ParameterSetName='Search')]
[int]$location_id,
[parameter(ParameterSetName='Search')]
[int]$depreciation_id,
[parameter(ParameterSetName='Search')]
[bool]$requestable = $false,
[parameter(ParameterSetName='Search')]
[string]$status,
[parameter(ParameterSetName='Search')]
[int]$status_id,
[parameter(ParameterSetName='Search')]
[hashtable]$customfields,
[parameter(ParameterSetName='Search')]
[parameter(ParameterSetName='Assets due auditing soon')]
[parameter(ParameterSetName='Assets overdue for auditing')]
[parameter(ParameterSetName='Assets checked out to user id')]
[parameter(ParameterSetName='Assets with component id')]
[ValidateSet('id','created_at','asset_tag','serial','order_number','model_id','category_id','manufacturer_id','company_id','location_id','status','status_id')]
[string]$sort,
[parameter(ParameterSetName='Search')]
[parameter(ParameterSetName='Assets due auditing soon')]
[parameter(ParameterSetName='Assets overdue for auditing')]
[parameter(ParameterSetName='Assets checked out to user id')]
[parameter(ParameterSetName='Assets with component id')]
[ValidateSet("asc", "desc")]
[string]$order,
[parameter(ParameterSetName='Search')]
[parameter(ParameterSetName='Assets due auditing soon')]
[parameter(ParameterSetName='Assets overdue for auditing')]
[parameter(ParameterSetName='Assets checked out to user id')]
[parameter(ParameterSetName='Assets with component id')]
[int]$limit = 50,
[parameter(ParameterSetName='Search')]
[parameter(ParameterSetName='Assets due auditing soon')]
[parameter(ParameterSetName='Assets overdue for auditing')]
[parameter(ParameterSetName='Assets checked out to user id')]
[parameter(ParameterSetName='Assets with component id')]
[int]$offset,
[parameter(ParameterSetName='Search')]
[parameter(ParameterSetName='Assets due auditing soon')]
[parameter(ParameterSetName='Assets overdue for auditing')]
[parameter(ParameterSetName='Assets checked out to user id')]
[parameter(ParameterSetName='Assets with component id')]
[switch]$all = $false,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
Test-SnipeitAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
$SearchParameter = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters
# Add in custom fields.
if ($customfields.Count -gt 0) {
foreach ($pair in $customfields.GetEnumerator()) {
if (-Not $SearchParameter.ContainsKey($pair.Name)) {
$SearchParameter.Add($pair.Name, $pair.Value)
}
}
}
switch ($PsCmdlet.ParameterSetName) {
'Search' { $api = "/api/v1/hardware" }
'Get with id' {$api= "/api/v1/hardware/$id"}
'Get with asset tag' {$api= "/api/v1/hardware/bytag/$asset_tag"}
'Get with serial' { $api= "/api/v1/hardware/byserial/$serial"}
'Assets due auditing soon' {$api = "/api/v1/hardware/audit/due"}
'Assets overdue for auditing' {$api = "/api/v1/hardware/audit/overdue"}
'Assets checked out to user id'{$api = "/api/v1/users/$user_id/assets"}
'Assets with component id' {$api = "/api/v1/components/$component_id/assets"}
}
$Parameters = @{
Api = $api
Method = 'Get'
GetParameters = $SearchParameter
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
}
process {
if ($all) {
$offstart = $(if ($offset) {$offset} Else {0})
$callargs = $SearchParameter
Write-Verbose "Callargs: $($callargs | convertto-json)"
$callargs.Remove('all')
while ($true) {
$callargs['offset'] = $offstart
$callargs['limit'] = $limit
$res=Get-SnipeitAsset @callargs
$res
if ( $res.count -lt $limit) {
break
}
$offstart = $offstart + $limit
}
} else {
$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
}
}
}

View file

@ -0,0 +1,119 @@
<#
.SYNOPSIS
Lists Snipe-it Assets Maintenances
.PARAMETER asset_id
Asset ID of the asset you'd like to return maintenances for
.PARAMETER search
Search string
.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. Defines batch size for -all
.PARAMETER offset
Offset to use
.PARAMETER all
A return all results, works with -offset and other parameters
.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
Get-SnipeitAssetMaintenances
.EXAMPLE
Get-SnipeitAssetMaintenances -search "myMachine"
.EXAMPLE
Get-SnipeitAssetMaintenances -search "myMachine"
#>
function Get-SnipeitAssetMaintenance() {
Param(
[string]$search,
[int]$asset_id,
[string]$sort = "created_at",
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[int]$limit = 50,
[switch]$all = $false,
[int]$offset,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
Test-SnipeitAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
$SearchParameter = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters
$Parameters = @{
Api = "/api/v1/maintenances"
Method = 'Get'
GetParameters = $SearchParameter
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
}
process {
if ($all) {
$offstart = $(if ($offset) {$offset} Else {0})
$callargs = $SearchParameter
$callargs.Remove('all')
while ($true) {
$callargs['offset'] = $offstart
$callargs['limit'] = $limit
$res=Get-SnipeitAssetMaintenance @callargs
$res
if ($res.count -lt $limit) {
break
}
$offstart = $offstart + $limit
}
} else {
$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
}
}
}

View file

@ -0,0 +1,128 @@
<#
.SYNOPSIS
Gets a list of Snipe-it Categories
.PARAMETER search
A text string to search the Categories data
.PARAMETER id
A id of specific Category
.PARAMETER name
Optionally restrict Category results to this Category name.
.PARAMETER limit
Specify the number of results you wish to return. Defaults to 50. Defines batch size for -all
.PARAMETER offset
Offset to use
.PARAMETER all
A return all results, works with -offset and other parameters
.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
Get-SnipeitCategory -id 1
.EXAMPLE
Get-SnipeitCategory -search "Laptop"
#>
function Get-SnipeitCategory() {
[CmdletBinding(DefaultParameterSetName = 'Search')]
Param(
[parameter(ParameterSetName='Search')]
[string]$search,
[parameter(ParameterSetName='Get with ID')]
[int]$id,
[parameter(ParameterSetName='Search')]
[string]$name,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
Test-SnipeitAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
$SearchParameter = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters
$api = "/api/v1/categories"
if ($search -and $id ) {
Throw "[$($MyInvocation.MyCommand.Name)] Please specify only -search or -id parameter , not both "
}
if ($id) {
$api= "/api/v1/categories/$id"
}
$Parameters = @{
Api = $api
Method = 'Get'
GetParameters = $SearchParameter
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
}
process {
if ($all) {
$offstart = $(if ($offset) {$offset} Else {0})
$callargs = $SearchParameter
$callargs.Remove('all')
while ($true) {
$callargs['offset'] = $offstart
$callargs['limit'] = $limit
$res=Get-SnipeitCategory @callargs
$res
if ($res.count -lt $limit) {
break
}
$offstart = $offstart + $limit
}
} else {
$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
}
}
}

View file

@ -0,0 +1,129 @@
<#
.SYNOPSIS
Gets a list of Snipe-it Companies
.PARAMETER search
A text string to search the Companies data
.PARAMETER id
A id of specific Company
.PARAMETER name
Optionally restrict company results to this company name.
.PARAMETER limit
Specify the number of results you wish to return. Defaults to 50. Defines batch size for -all
.PARAMETER offset
Offset to use
.PARAMETER all
A return all results, works with -offset and other parameters
.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
Get-SnipeitCompany
Gets all companies
.EXAMPLE
Get-SnipeitCompany -id 1
Gets specific company
#>
function Get-SnipeitCompany() {
[CmdletBinding(DefaultParameterSetName = 'Search')]
Param(
[parameter(ParameterSetName='Search')]
[string]$search,
[parameter(ParameterSetName='Get with ID')]
[int]$id,
[parameter(ParameterSetName='Search')]
[string]$name,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false,
[parameter(mandatory=$false)]
[string]$url,
[parameter(mandatory=$false)]
[string]$apiKey
)
begin {
Test-SnipeitAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
$SearchParameter = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters
$api = "/api/v1/companies"
if ($search -and $id ) {
Throw "[$($MyInvocation.MyCommand.Name)] Please specify only -search or -id parameter , not both "
}
if ($id) {
$api= "/api/v1/companies/$id"
}
$Parameters = @{
Api = $api
Method = 'Get'
GetParameters = $SearchParameter
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
}
process {
if ($all) {
$offstart = $(if ($offset) {$offset} Else {0})
$callargs = $SearchParameter
$callargs.Remove('all')
while ($true) {
$callargs['offset'] = $offstart
$callargs['limit'] = $limit
$res=Get-SnipeitCompany @callargs
$res
if ($res.count -lt $limit) {
break
}
$offstart = $offstart + $limit
}
} else {
$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
}
}
}

View file

@ -0,0 +1,156 @@
<#
.SYNOPSIS
Gets a list of Snipe-it Components
.PARAMETER search
A text string to search the Components data
.PARAMETER id
A id of specific Component
.PARAMETER name
Optionally restrict Component results to this name field
.PARAMETER company_id
Optionally restrict Component results to this company_id field
.PARAMETER category_id
Optionally restrict Component results to this category_id field
.PARAMETER location_id
Optionally restrict Component results to this location_id field
.PARAMETER limit
Specify the number of results you wish to return. Defaults to 50. Defines batch size for -all
.PARAMETER offset
Offset to use
.PARAMETER all
A return all results, works with -offset and other parameters
.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
Get-SnipeitComponent
Returns all components
.EXAMPLE
Get-SnipeitComponent -search display
Returns search results containeing string display
.EXAMPLE
Get-SnipeitComponent -id
Returns specific component
#>
function Get-SnipeitComponent() {
[CmdletBinding(DefaultParameterSetName = 'Search')]
Param(
[parameter(ParameterSetName='Search')]
[string]$search,
[parameter(ParameterSetName='Get with ID')]
[int]$id,
[parameter(ParameterSetName='Search')]
[string]$name,
[parameter(ParameterSetName='Search')]
[int]$category_id,
[parameter(ParameterSetName='Search')]
[int]$company_id,
[parameter(ParameterSetName='Search')]
[int]$location_id,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "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')]
[string]$sort = "created_at",
[parameter(ParameterSetName='Search')]
[int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
Test-SnipeitAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
$SearchParameter = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters
$api = "/api/v1/components"
if ($search -and $id ) {
Throw "[$($MyInvocation.MyCommand.Name)] Please specify only -search or -id parameter , not both "
}
if ($id) {
$api= "/api/v1/components/$id"
}
$Parameters = @{
Api = $api
Method = 'Get'
GetParameters = $SearchParameter
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
}
process {
if ($all) {
$offstart = $(if ($offset) {$offset} Else {0})
$callargs = $SearchParameter
$callargs.Remove('all')
while ($true) {
$callargs['offset'] = $offstart
$callargs['limit'] = $limit
$res=Get-SnipeitComponent @callargs
$res
if ($res.count -lt $limit) {
break
}
$offstart = $offstart + $limit
}
} else {
$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
}
}
}

View file

@ -0,0 +1,178 @@
<#
.SYNOPSIS
Gets a list of Snipe-it consumables
.PARAMETER search
A text string to search the consumables
.PARAMETER id
A id of specific consumable
.PARAMETER name
Optionally restrict consumable results to this name field
.PARAMETER company_id
Id number of company
.PARAMETER category_id
Id number of category
.PARAMETER manufacturer_id
Id number of manufacturer
.PARAMETER sort
Sort results by column
.PARAMETER order
Specify the order (asc or desc) you wish to order by on your sort column
.PARAMETER expand
Whether to include detailed information on categories, etc (true) or just the text name (false)
.PARAMETER limit
Specify the number of results you wish to return. Defaults to 50. Defines batch size for -all
.PARAMETER offset
Offset to use
.PARAMETER all
A return all results
.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
Get-SnipeitConsumable -all
Returns all consumables
.EXAMPLE
Get-SnipeitConsumable -search paper
Returns search results containeing string display
.EXAMPLE
Get-Snipeitconsumable -id
Returns specific consumable
#>
function Get-SnipeitConsumable() {
[CmdletBinding(DefaultParameterSetName = 'Search')]
Param(
[parameter(ParameterSetName='Search')]
[string]$search,
[parameter(ParameterSetName='Get with ID')]
[int[]]$id,
[parameter(ParameterSetName='Search')]
[string]$name,
[parameter(ParameterSetName='Search')]
[int]$category_id,
[parameter(ParameterSetName='Search')]
[int]$company_id,
[parameter(ParameterSetName='Search')]
[int]$manufacturer_id,
[parameter(ParameterSetName='Search')]
[int]$location_id,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "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')]
[string]$sort = "created_at",
[Parameter(ParameterSetName='Search')]
[switch]$expand,
[parameter(ParameterSetName='Search')]
[int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
$SearchParameter = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
}
process {
switch ($PSCmdlet.ParameterSetName) {
'Search' {
$Parameters = @{
Api = "/api/v1/consumables"
Method = 'Get'
GetParameters = $SearchParameter
}
if ($all) {
$offstart = $(if ($offset) {$offset} Else {0})
$callargs = $SearchParameter
$callargs.Remove('all')
while ($true) {
$callargs['offset'] = $offstart
$callargs['limit'] = $limit
$res=Get-Snipeitconsumable @callargs
$res
if ($res.count -ne $limit) {
break
}
$offstart = $offstart + $limit
}
} else {
$result = Invoke-SnipeitMethod @Parameters
$result
}
}
'Get with ID' {
foreach($consumable_id in $id) {
$Parameters = @{
Api = "$url/api/v1/consumables/$consumable_id"
Method = 'Get'
GetParameters = $SearchParameter
}
$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
}
}
}

View file

@ -0,0 +1,72 @@
<#
.SYNOPSIS
Returns specific Snipe-IT custom field or a list of all custom field
.PARAMETER id
A id of specific field
.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
Get-SnipeitCustomField
Get all custom fields
.EXAMPLE
Get-SnipeitCustomField -id 1
Get custom field with ID 1
#>
function Get-SnipeitCustomField() {
Param(
[int]$id,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
Test-SnipeitAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
if ($id) {
$api= "/api/v1/fields/$id"
} else {
$api = "/api/v1/fields"
}
$Parameters = @{
Api = $api
Method = 'Get'
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
}
process {
$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
}
}
}

View file

@ -0,0 +1,154 @@
<#
.SYNOPSIS
Gets a list of Snipe-it Departments
.PARAMETER search
A text string to search the Departments data
.PARAMETER id
A id of specific Department
.PARAMETER name
Optionally restrict department results to this department name.
.PARAMETER manager_id
Optionally restrict department results to this manager ID.
.PARAMETER company_id
Optionally restrict department results to this company ID.
.PARAMETER location_id
Optionally restrict department results to this location ID.
.PARAMETER limit
Specify the number of results you wish to return. Defaults to 50. Defines batch size for -all
.PARAMETER offset
Offset to use
.PARAMETER all
A return all results, works with -offset and other parameters
.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
Get-SnipeitDepartment
.EXAMPLE
Get-SnipeitDepartment -search Department1
.EXAMPLE
Get-SnipeitDepartment -id 1
#>
function Get-SnipeitDepartment() {
[CmdletBinding(DefaultParameterSetName = 'Search')]
Param(
[parameter(ParameterSetName='Search')]
[string]$search,
[parameter(ParameterSetName='Get with ID')]
[int]$id,
[parameter(ParameterSetName='Search')]
[string]$name,
[parameter(ParameterSetName='Search')]
[int]$manager_id,
[parameter(ParameterSetName='Search')]
[int]$company_id,
[parameter(ParameterSetName='Search')]
[int]$location_id,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false,
[parameter(ParameterSetName='Search')]
[ValidateSet('id', 'name', 'image', 'users_count', 'created_at')]
[string]$sort = "created_at",
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
Test-SnipeitAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
$SearchParameter = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters
$api = "/api/v1/departments"
if ($search -and $id ) {
Throw "[$($MyInvocation.MyCommand.Name)] Please specify only -search or -id parameter , not both "
}
if ($id) {
$api= "/api/v1/departments/$id"
}
$Parameters = @{
Api = $api
Method = 'Get'
GetParameters = $SearchParameter
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
}
process {
if ($all) {
$offstart = $(if ($offset) {$offset} Else {0})
$callargs = $SearchParameter
$callargs.Remove('all')
while ($true) {
$callargs['offset'] = $offstart
$callargs['limit'] = $limit
$res=Get-SnipeitDepartment @callargs
$res
if ($res.count -lt $limit) {
break
}
$offstart = $offstart + $limit
}
} else {
$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
}
}
}

View file

@ -0,0 +1,69 @@
<#
.SYNOPSIS
Returns a fieldset or list of Snipe-it Fieldsets
.PARAMETER id
A id of specific fieldset
.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
Get-SnipeitFieldset
Get all fieldsets
.EXAMPLE
Get-SnipeitFieldset | Where-Object {$_.name -eq "Windows" }
Gets fieldset by name
#>
function Get-SnipeitFieldset() {
Param(
[int]$id,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
Test-SnipeitAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
if ($id) {
$api = "/api/v1/fieldsets/$id"
} else {
$api = "/api/v1/fieldsets"
}
$Parameters = @{
Api = $api
Method = 'Get'
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
}
process {
$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
}
}
}

View file

@ -0,0 +1,165 @@
<#
.SYNOPSIS
Gets a list of Snipe-it Licenses
.PARAMETER search
A text string to search the Licenses data
.PARAMETER id
A id of specific License
.PARAMETER limit
Specify the number of results you wish to return. Defaults to 50. Defines batch size for -all
.PARAMETER offset
Offset to use
.PARAMETER all
A return all results, works with -offset and other parameters
.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
Get-SnipeitLicense -search SomeLicense
.EXAMPLE
Get-SnipeitLicense -id 1
#>
function Get-SnipeitLicense() {
[CmdletBinding(DefaultParameterSetName = 'Search')]
Param(
[parameter(ParameterSetName='Search')]
[string]$search,
[parameter(ParameterSetName='Get with ID')]
[int]$id,
[parameter(ParameterSetName='Get licenses checked out to user ID')]
[int]$user_id,
[parameter(ParameterSetName='Get licenses checked out to asset ID')]
[int]$asset_id,
[parameter(ParameterSetName='Search')]
[string]$name,
[parameter(ParameterSetName='Search')]
[int] $company_id,
[parameter(ParameterSetName='Search')]
[string]$product_key,
[parameter(ParameterSetName='Search')]
[string]$order_number,
[parameter(ParameterSetName='Search')]
[string]$purchase_order,
[parameter(ParameterSetName='Search')]
[string]$license_name,
[parameter(ParameterSetName='Search')]
[mailaddress]$license_email,
[parameter(ParameterSetName='Search')]
[int]$manufacturer_id,
[parameter(ParameterSetName='Search')]
[int]$supplier_id,
[parameter(ParameterSetName='Search')]
[int]$depreciation_id,
[parameter(ParameterSetName='Search')]
[int]$category_id,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[parameter(ParameterSetName='Search')]
[ValidateSet('created_at','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",
[parameter(ParameterSetName='Search')]
[int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset,
[parameter(ParameterSetName='Get licenses checked out to user ID')]
[parameter(ParameterSetName='Get licenses checked out to asset ID')]
[parameter(ParameterSetName='Search')]
[switch]$all = $false,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
Test-SnipeitAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
$SearchParameter = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters
switch($PsCmdlet.ParameterSetName) {
'Search' {$api = "/api/v1/licenses"}
'Get with ID' {$api= "/api/v1/licenses/$id"}
'Get licenses checked out to user ID' {$api= "/api/v1/users/$user_id/licenses"}
'Get licenses checked out to asset ID' {$api= "/api/v1/hardware/$asset_id/licenses"}
}
$Parameters = @{
Api = $api
Method = 'Get'
GetParameters = $SearchParameter
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
}
process {
if ($all) {
$offstart = $(if ($offset) {$offset} Else {0})
$callargs = $SearchParameter
$callargs.Remove('all')
while ($true) {
$callargs['offset'] = $offstart
$callargs['limit'] = $limit
$res=Get-SnipeitLicense @callargs
$res
if ($res.count -lt $limit) {
break
}
$offstart = $offstart + $limit
}
} else {
$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
}
}
}

View file

@ -0,0 +1,114 @@
<#
.SYNOPSIS
Gets a list of Snipe-it Licenses Seats or specific Seat
.PARAMETER search
A text string to search the Licenses data
.PARAMETER id
A id of specific License
.PARAMETER seat_id
A id of specific seat
.PARAMETER limit
Specify the number of results you wish to return. Defaults to 50. Defines batch size for -all
.PARAMETER offset
Offset to use
.PARAMETER all
A return all results, works with -offset and other parameters
.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
Get-SnipeitLicenseSeat -id 1
#>
function Get-SnipeitLicenseSeat() {
Param(
[parameter(mandatory = $true)]
[int]$id,
[int]$seat_id,
[int]$limit = 50,
[int]$offset,
[switch]$all = $false,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
Test-SnipeitAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
$SearchParameter = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters -DefaultExcludeParameter 'url', 'apiKey', 'Debug', 'Verbose','RequestType'
$api = "/api/v1/licenses/$id/seats"
if ($seat_id) {
$api= "/api/v1/licenses/$id/seats/$seat_id"
}
$Parameters = @{
Api = $api
Method = 'Get'
GetParameters = $SearchParameter
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
}
process {
if ($all) {
$offstart = $(if ($offset) {$offset} Else {0})
$callargs = $SearchParameter
$callargs.Remove('all')
while ($true) {
$callargs['offset'] = $offstart
$callargs['limit'] = $limit
$res=Get-SnipeitLicenseSeat @callargs
$res
if ($res.count -lt $limit) {
break
}
$offstart = $offstart + $limit
}
} else {
$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
}
}
}

View file

@ -1,51 +1,159 @@
<#
.SYNOPSIS
# Gets a list of Snipe-it Locations
Gets a list of Snipe-it Locations
.PARAMETER search
A text string to search the Locations data
.PARAMETER id
A id of specific Location
.PARAMETER name
Optionally restrict Location results to this Location name.
.PARAMETER address
Optionally restrict Location results to this Location address.
.PARAMETER address2
Optionally restrict Location results to this Location address2.
.PARAMETER city
Optionally restrict Location results to this Location city.
.PARAMETER zip
Optionally restrict Location results to this Location zip.
.PARAMETER country
Optionally restrict Location results to this Location country.
.PARAMETER limit
Specify the number of results you wish to return. Defaults to 50. Defines batch size for -all
.PARAMETER offset
Offset to use
.PARAMETER all
A return all results, works with -offset and other parameters
.PARAMETER url
URL of Snipeit system, can be set using Set-Info command
Deprecated parameter, please use Connect-SnipeitPS instead. URL of Snipeit system.
.PARAMETER apiKey
Users API Key for Snipeit, can be set using Set-Info command
Deprecated parameter, please use Connect-SnipeitPS instead. Users API Key for Snipeit.
.EXAMPLE
Get-Location -url "https://assets.example.com" -token "token..."
Get-SnipeitLocation -search Location1
.EXAMPLE
Get-Location -url "https://assets.example.com" -token "token..." | Where-Object {$_.name -eq "Location1" }
Get-SnipeitLocation -id 3
#>
function Get-SnipeitLocation()
{
function Get-SnipeitLocation() {
[CmdletBinding(DefaultParameterSetName = 'Search')]
Param(
[parameter(ParameterSetName='Search')]
[string]$search,
[parameter(ParameterSetName='Get with ID')]
[int]$id,
[parameter(ParameterSetName='Search')]
[string]$name,
[parameter(ParameterSetName='Search')]
[string]$address,
[parameter(ParameterSetName='Search')]
[string]$address2,
[parameter(ParameterSetName='Search')]
[string]$city,
[parameter(ParameterSetName='Search')]
[string]$zip,
[parameter(ParameterSetName='Search')]
[string]$country,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset,
[parameter(mandatory = $true)]
[parameter(ParameterSetName='Search')]
[switch]$all = $false,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $true)]
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
Test-SnipeitAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
$SearchParameter = . Get-ParameterValue
$SearchParameter = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters
$api = "/api/v1/locations"
if ($search -and $id ) {
Throw "[$($MyInvocation.MyCommand.Name)] Please specify only -search or -id parameter , not both "
}
if ($id) {
$api= "/api/v1/locations/$id"
}
$Parameters = @{
Uri = "$url/api/v1/locations"
Api = $api
Method = 'Get'
Token = $apiKey
GetParameters = $SearchParameter
}
$result = Invoke-SnipeitMethod @Parameters
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
}
process {
if ($all) {
$offstart = $(if ($offset) {$offset} Else {0})
$callargs = $SearchParameter
$callargs.Remove('all')
while ($true) {
$callargs['offset'] = $offstart
$callargs['limit'] = $limit
$res=Get-SnipeitLocation @callargs
$res
if ($res.count -lt $limit) {
break
}
$offstart = $offstart + $limit
}
} else {
$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
}
}
}

View file

@ -0,0 +1,129 @@
<#
.SYNOPSIS
# Gets a list of Snipe-it Manufacturers
.PARAMETER search
A text string to search the Manufactures data
.PARAMETER id
A id of specific Manufactuter
.PARAMETER name
Optionally restrict Manufacturer results to this name field
.PARAMETER limit
Specify the number of results you wish to return. Defaults to 50. Defines batch size for -all
.PARAMETER offset
Offset to use
.PARAMETER all
A return all results, works with -offset and other parameters
.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
Get-SnipeitManufacturer -search HP
Search all manufacturers for string HP
.EXAMPLE
Get-SnipeitManufacturer -id 3
Returns manufacturer with id 3
#>
function Get-SnipeitManufacturer() {
[CmdletBinding(DefaultParameterSetName = 'Search')]
Param(
[parameter(ParameterSetName='Search')]
[string]$search,
[parameter(ParameterSetName='Get with ID')]
[int]$id,
[parameter(ParameterSetName='Search')]
[string]$name,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
Test-SnipeitAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
$SearchParameter = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters
$api = "/api/v1/manufacturers"
if ($search -and $id ) {
Throw "[$($MyInvocation.MyCommand.Name)] Please specify only -search or -id parameter , not both "
}
if ($id) {
$api= "/api/v1/manufacturers/$id"
}
$Parameters = @{
Api = $api
Method = 'Get'
GetParameters = $SearchParameter
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
}
process {
if ($all) {
$offstart = $(if ($offset) {$offset} Else {0})
$callargs = $SearchParameter
$callargs.Remove('all')
while ($true) {
$callargs['offset'] = $offstart
$callargs['limit'] = $limit
$res=Get-SnipeitManufacturer @callargs
$res
if ($res.count -lt $limit) {
break
}
$offstart = $offstart + $limit
}
} else {
$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
}
}
}

View file

@ -0,0 +1,123 @@
<#
.SYNOPSIS
Gets a list of Snipe-it Models
.PARAMETER search
A text string to search the Models data
.PARAMETER id
A id of specific model
.PARAMETER limit
Specify the number of results you wish to return. Defaults to 50. Defines batch size for -all
.PARAMETER offset
Offset to use
.PARAMETER all
A return all results, works with -offset and other parameters
.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
Get-SnipeitModel -search "DL380"
.EXAMPLE
Get-SnipeitModel -id 1
#>
function Get-SnipeitModel() {
[CmdletBinding(DefaultParameterSetName = 'Search')]
Param(
[parameter(ParameterSetName='Search')]
[string]$search,
[parameter(ParameterSetName='Get with ID')]
[int]$id,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
Test-SnipeitAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
$SearchParameter = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters
$api = "/api/v1/models"
if ($search -and $id ) {
Throw "[$($MyInvocation.MyCommand.Name)] Please specify only -search or -id parameter , not both "
}
if ($id) {
$api= "/api/v1/models/$id"
}
$Parameters = @{
Api = $api
Method = 'Get'
GetParameters = $SearchParameter
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
}
process {
if ($all) {
$offstart = $(if ($offset) {$offset} Else {0})
$callargs = $SearchParameter
$callargs.Remove('all')
while ($true) {
$callargs['offset'] = $offstart
$callargs['limit'] = $limit
$res=Get-SnipeitModel @callargs
$res
if ($res.count -ne $limit ) {
break
}
$offstart = $offstart + $limit
}
} else {
$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
}
}
}

View file

@ -0,0 +1,128 @@
<#
.SYNOPSIS
Gets a list of Snipe-it Status Labels
.PARAMETER search
A text string to search the Status Labels data
.PARAMETER id
A id of specific Status Label
.PARAMETER name
Optionally restrict Status Label results to this name field
.PARAMETER limit
Specify the number of results you wish to return. Defaults to 50. Defines batch size for -all
.PARAMETER offset
Offset to use
.PARAMETER all
A return all results, works with -offset and other parameters
.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
Get-SnipeitStatus -search "Ready to Deploy"
.EXAMPLE
Get-SnipeitStatus -id 3
#>
function Get-SnipeitStatus() {
[CmdletBinding(DefaultParameterSetName = 'Search')]
Param(
[parameter(ParameterSetName='Search')]
[string]$search,
[parameter(ParameterSetName='Get with ID')]
[int]$id,
[parameter(ParameterSetName='Search')]
[string]$name,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
Test-SnipeitAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
$SearchParameter = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters
$api = "/api/v1/statuslabels"
if ($search -and $id ) {
Throw "[$($MyInvocation.MyCommand.Name)] Please specify only -search or -id parameter , not both "
}
if ($id) {
$api= "/api/v1/statuslabels/$id"
}
$Parameters = @{
Api = $api
Method = 'Get'
GetParameters = $SearchParameter
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
}
process {
if ($all) {
$offstart = $(if ($offset) {$offset} Else {0})
$callargs = $SearchParameter
$callargs.Remove('all')
while ($true) {
$callargs['offset'] = $offstart
$callargs['limit'] = $limit
$res=Get-SnipeitStatus @callargs
$res
if ($res.count -lt $limit) {
break
}
$offstart = $offstart + $limit
}
} else {
$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
}
}
}

View file

@ -0,0 +1,176 @@
<#
.SYNOPSIS
# Gets a list of Snipe-it Suppliers
.PARAMETER search
A text string to search the Supliers data
.PARAMETER id
A id of specific Suplier
.PARAMETER name
Optionally restrict Supplier results to this Supplier name.
.PARAMETER address
Optionally restrict Supplier results to this Supplier address.
.PARAMETER address2
Optionally restrict Supplier results to this Supplier address2.
.PARAMETER city
Optionally restrict Supplier results to this Supplier city.
.PARAMETER zip
Optionally restrict Supplier results to this Supplier zip.
.PARAMETER country
Optionally restrict Supplier results to this Supplier country.
.PARAMETER fax
Optionally restrict Supplier results to this Supplier fax number.
.PARAMETER email
Optionally restrict Supplier results to this Supplier email address.
.PARAMETER notes
Optionally restrict Supplier results to this Supplier notes field.
.PARAMETER limit
Specify the number of results you wish to return. Defaults to 50. Defines batch size for -all
.PARAMETER offset
Offset to use
.PARAMETER all
A return all results, works with -offset and other parameters
.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
Get-SnipeitSupplier -search MySupplier
.EXAMPLE
Get-SnipeitSupplier -id 2
#>
function Get-SnipeitSupplier() {
[CmdletBinding(DefaultParameterSetName = 'Search')]
Param(
[parameter(ParameterSetName='Search')]
[string]$search,
[parameter(ParameterSetName='Get with ID')]
[int]$id,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[parameter(ParameterSetName='Search')]
[string]$name,
[parameter(ParameterSetName='Search')]
[string]$address,
[parameter(ParameterSetName='Search')]
[string]$address2,
[parameter(ParameterSetName='Search')]
[string]$city,
[parameter(ParameterSetName='Search')]
[string]$zip,
[parameter(ParameterSetName='Search')]
[string]$country,
[parameter(ParameterSetName='Search')]
[string]$fax,
[parameter(ParameterSetName='Search')]
[string]$email,
[parameter(ParameterSetName='Search')]
[string]$notes,
[parameter(ParameterSetName='Search')]
[int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset,
[parameter(ParameterSetName='Search')]
[switch]$all = $false,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
Test-SnipeitAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
$SearchParameter = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters
$api = "/api/v1/suppliers"
if ($search -and $id ) {
Throw "[$($MyInvocation.MyCommand.Name)] Please specify only -search or -id parameter , not both "
}
if ($id) {
$api= "/api/v1/suppliers/$id"
}
$Parameters = @{
Api = $api
Method = 'Get'
GetParameters = $SearchParameter
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
}
process {
if ($all) {
$offstart = $(if ($offset) {$offset} Else {0})
$callargs = $SearchParameter
$callargs.Remove('all')
while ($true) {
$callargs['offset'] = $offstart
$callargs['limit'] = $limit
$res=Get-SnipeitSupplier @callargs
$res
if ($res.count -lt $limit) {
break
}
$offstart = $offstart + $limit
}
} else {
$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
}
}
}

View file

@ -0,0 +1,232 @@
<#
.SYNOPSIS
# Gets a list of Snipe-it Users
.PARAMETER search
A text string to search the User data
.PARAMETER id
A id of specific User
.PARAMETER accessory_id
Get users a specific accessory id has been checked out to
.PARAMETER username
Optionally restrict User results to this username field
.PARAMETER email
Optionally restrict User results to this email field
.PARAMETER employee_num
Optionally restrict User results to this employee_num field
.PARAMETER state
Optionally restrict User results to this state field
.PARAMETER country
Optionally restrict User results to this country field
.PARAMETER zip
Optionally restrict User results to this zip field
.PARAMETER company_id
Optionally restrict User results to this company_id field
.PARAMETER location_id
Optionally restrict User results to this location_id field
.PARAMETER department_id
Optionally restrict User results to this department_id field
.PARAMETER deleted
Optionally restrict User results to deleted users only
.PARAMETER ldap_import
Optionally restrict User results to those with specified ldap_import value
.PARAMETER remote
Optionally restrict User results to those with specified remote worker value
.PARAMETER assets_count
Optionally restrict User results to those with the specified assets count
.PARAMETER licenses_count
Optionally restrict User results to those with the specified licenses count
.PARAMETER accessories_count
Optionally restrict User results to those with the specified accessories count
.PARAMETER consumables_count
Optionally restrict User results to those with the specified consumables count
.PARAMETER limit
Specify the number of results you wish to return. Defaults to 50. Defines batch size for -all
.PARAMETER offset
Offset to use
.PARAMETER all
A return all results, works with -offset and other parameters
.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
Get-SnipeitUser -search SomeSurname
.EXAMPLE
Get-SnipeitUser -id 3
.EXAMPLE
Get-SnipeitUser -username someuser
.EXAMPLE
Get-SnipeitUser -email user@somedomain.com
.EXAMPLE
Get-SnipeitUser -accessory_id 3
Get users with accessory id 3 has been checked out to
#>
function Get-SnipeitUser() {
[CmdletBinding(DefaultParameterSetName = 'Search')]
Param(
[parameter(ParameterSetName='Search')]
[string]$search,
[parameter(ParameterSetName='Get with ID')]
[string]$id,
[parameter(ParameterSetName='Get users a specific accessory id has been checked out to')]
[string]$accessory_id,
[parameter(ParameterSetName='Search')]
[int]$company_id,
[parameter(ParameterSetName='Search')]
[int]$location_id,
[parameter(ParameterSetName='Search')]
[int]$group_id,
[parameter(ParameterSetName='Search')]
[int]$department_id,
[parameter(ParameterSetName='Search')]
[string]$username,
[parameter(ParameterSetName='Search')]
[string]$email,
[parameter(ParameterSetName='Search')]
[string]$employee_num,
[parameter(ParameterSetName='Search')]
[string]$state,
[parameter(ParameterSetName='Search')]
[string]$zip,
[parameter(ParameterSetName='Search')]
[string]$country,
[parameter(ParameterSetName='Search')]
[Nullable[bool]]$deleted,
[parameter(ParameterSetName='Search')]
[Nullable[bool]]$ldap_import,
[parameter(ParameterSetName='Search')]
[Nullable[bool]]$remote,
[parameter(ParameterSetName='Search')]
[int]$assets_count,
[parameter(ParameterSetName='Search')]
[int]$licenses_count,
[parameter(ParameterSetName='Search')]
[int]$accessories_count,
[parameter(ParameterSetName='Search')]
[int]$consumables_count,
[parameter(ParameterSetName='Search')]
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[parameter(ParameterSetName='Search')]
[int]$limit = 50,
[parameter(ParameterSetName='Search')]
[int]$offset,
[parameter(ParameterSetName='Search')]
[parameter(ParameterSetName='Get users a specific accessory id has been checked out to')]
[switch]$all = $false,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
Test-SnipeitAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
$SearchParameter = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters
switch ($PsCmdlet.ParameterSetName) {
'Search' { $api = "/api/v1/users"}
'Get with id' {$api= "/api/v1/users/$id"}
'Get users a specific accessory id has been checked out to' {$api= "/api/v1/accessories/$accessory_id/checkedout"}
}
$Parameters = @{
Api = $api
Method = 'Get'
GetParameters = $SearchParameter
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
}
process {
if ($all) {
$offstart = $(if ($offset) {$offset} Else {0})
$callargs = $SearchParameter
$callargs.Remove('all')
while ($true) {
$callargs['offset'] = $offstart
$callargs['limit'] = $limit
$res=Get-SnipeitUser @callargs
$res
if ($res.count -lt $limit) {
break
}
$offstart = $offstart + $limit
}
} else {
$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
}
}
}

View file

@ -1,50 +0,0 @@
<#
.SYNOPSIS
# Gets a list of Snipe-it Status Labels
.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-Status -url "https://assets.example.com" -token "token..."
.EXAMPLE
Get-Status -url "https://assets.example.com" -token "token..." | Where-Object {$_.name -eq "Ready to Deploy" }
#>
function Get-Status()
{
Param(
[string]$search,
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[int]$limit = 50,
[int]$offset,
[parameter(mandatory = $true)]
[string]$url,
[parameter(mandatory = $true)]
[string]$apiKey
)
$SearchParameter = . Get-ParameterValue
$Parameters = @{
Uri = "$url/api/v1/statuslabels"
Method = 'Get'
Token = $apiKey
GetParameters = $SearchParameter
}
$result = Invoke-SnipeitMethod @Parameters
$result
}

View file

@ -1,51 +0,0 @@
<#
.SYNOPSIS
# Gets a list of Snipe-it Suppliers
.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-Supplier -url "https://assets.example.com" -token "token..."
.EXAMPLE
Get-Supplier -url "https://assets.example.com" -token "token..." | Where-Object {$_.name -eq "MySupplier" }
#>
function Get-Supplier()
{
Param(
[string]$search,
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[int]$limit = 50,
[int]$offset,
[parameter(mandatory = $true)]
[string]$url,
[parameter(mandatory = $true)]
[string]$apiKey
)
$SearchParameter = . Get-ParameterValue
$Parameters = @{
Uri = "$url/api/v1/suppliers"
Method = 'Get'
Token = $apiKey
GetParameters = $SearchParameter
}
$result = Invoke-SnipeitMethod @Parameters
$result
}

View file

@ -1,56 +0,0 @@
<#
.SYNOPSIS
# Gets a list of Snipe-it Users
.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-User -url "https://assets.example.com" -token "token..."
.EXAMPLE
Get-User -url "https://assets.example.com" -token "token..." | Where-Object {$_.username -eq "stephenm" }
#>
function Get-User() {
Param(
[string]$search,
[int]$company_id,
[int]$location_id,
[int]$group_id,
[int]$department_id,
[ValidateSet("asc", "desc")]
[string]$order = "desc",
[int]$limit = 50,
[int]$offset,
[parameter(mandatory = $true)]
[string]$url,
[parameter(mandatory = $true)]
[string]$apiKey
)
$SearchParameter = . Get-ParameterValue
$Parameters = @{
Uri = "$url/api/v1/users"
Method = 'Get'
GetParameters = $SearchParameter
Token = $apiKey
}
$result = Invoke-SnipeitMethod @Parameters
$result
}

View file

@ -1,65 +0,0 @@
function New-Accessory() {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true)]
[ValidateLength(3, 255)]
[string]$name,
[parameter(mandatory = $true)]
[int]$qty,
[parameter(mandatory = $true)]
[ValidateRange(1, [int]::MaxValue)]
[int]$category_id,
[ValidateRange(1, [int]::MaxValue)]
[int]$company_id,
[ValidateRange(1, [int]::MaxValue)]
[int]$manufacturer_id,
[string]$order_number,
[float]$purchase_cost,
[datetime]$purchase_date,
[bool]$requestable,
[ValidateRange(1, [int]::MaxValue)]
[int]$supplier_id,
[parameter(mandatory = $true)]
[string]$url,
[parameter(mandatory = $true)]
[string]$apiKey
)
$Values = . Get-ParameterValue
if ($values['purchase_date']) {
$values['purchase_date'] = $values['purchase_date'].ToString("yyyy-MM-dd")
}
$Body = $Values | ConvertTo-Json;
$Parameters = @{
Uri = "$url/api/v1/accessories"
Method = 'POST'
Body = $Body
Token = $apiKey
}
If ($PSCmdlet.ShouldProcess("ShouldProcess?")) {
$result = Invoke-SnipeitMethod @Parameters
}
$result
}

View file

@ -1,95 +0,0 @@
<#
.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-Asset()
{
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[string]$tag,
[parameter(mandatory = $true)]
[string]$Name,
[parameter(mandatory = $true)]
[int]$Status_id,
[parameter(mandatory = $true)]
[int]$Model_id,
[parameter(mandatory = $true)]
[string]$url,
[parameter(mandatory = $true)]
[string]$apiKey,
[hashtable] $customfields
)
$Values = @{
"name" = $Name
"status_id" = $status_id
"model_id" = $model_id
}
if ($PSBoundParameters.ContainsKey('tag'))
{
$Values += @{"asset_tag" = $tag}
}
if ($customfields)
{
$Values += $customfields
}
$Body = $Values | ConvertTo-Json;
$Parameters = @{
Uri = "$url/api/v1/hardware"
Method = 'Post'
Body = $Body
Token = $apiKey
}
If ($PSCmdlet.ShouldProcess("ShouldProcess?"))
{
$result = Invoke-SnipeitMethod @Parameters
}
$result
}

View file

@ -1,63 +0,0 @@
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)]
[datetime]$start_date,
[parameter(mandatory = $false)]
[datetime]$completion_date,
[bool]$is_warranty = $false,
[decimal]$cost,
[string]$notes,
[parameter(mandatory = $true)]
[string]$url,
[parameter(mandatory = $true)]
[string]$apiKey
)
$Values = . Get-ParameterValue
if ($values['start_date']) {
$values['start_date'] = $values['start_date'].ToString("yyyy-MM-dd")
}
if ($values['completion_date']) {
$values['completion_date'] = $values['completion_date'].ToString("yyyy-MM-dd")
}
$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
}

View file

@ -1,60 +0,0 @@
<#
.SYNOPSIS
Short description
.DESCRIPTION
Long description
.PARAMETER name
Parameter description
.PARAMETER url
Parameter description
.PARAMETER apiKey
Parameter description
.EXAMPLE
An example
.NOTES
General notes
#>
function New-Company()
{
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true)]
[string]$name,
[parameter(mandatory = $true)]
[string]$url,
[parameter(mandatory = $true)]
[string]$apiKey
)
$Values = . Get-ParameterValue
$Body = $Values | ConvertTo-Json;
$Parameters = @{
Uri = "$url/api/v1/companies"
Method = 'POST'
Body = $Body
Token = $apiKey
}
If ($PSCmdlet.ShouldProcess("ShouldProcess?"))
{
$result = Invoke-SnipeitMethod @Parameters
}
$result
}

View file

@ -1,82 +0,0 @@
<#
.SYNOPSIS
Short description
.DESCRIPTION
Long description
.PARAMETER name
Parameter description
.PARAMETER category_id
Parameter description
.PARAMETER qty
Parameter description
.PARAMETER url
Parameter description
.PARAMETER apiKey
Parameter description
.EXAMPLE
An example
.NOTES
General notes
#>
function New-Component() {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true)]
[string]$name,
[parameter(mandatory = $true)]
[int]$category_id,
[parameter(mandatory = $true)]
[string]$qty,
[int]$company_id,
[int]$location_id,
[datetime]$purchase_date,
[float]$purchase_cost,
[parameter(mandatory = $true)]
[string]$url,
[parameter(mandatory = $true)]
[string]$apiKey
)
$Values = . Get-ParameterValue
if ($values['purchase_date']) {
$values['purchase_date'] = $values['purchase_date'].ToString("yyyy-MM-dd")
}
$Body = $Values | ConvertTo-Json;
$Parameters = @{
Uri = "$url/api/v1/components"
Method = 'POST'
Body = $Body
Token = $apiKey
}
If ($PSCmdlet.ShouldProcess("ShouldProcess?")) {
$result = Invoke-SnipeitMethod @Parameters
}
$result
}

View file

@ -1,67 +0,0 @@
<#
.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",
[bool]$field_encrypted,
[string]$CustomFormat,
[parameter(mandatory = $true)]
[string]$url,
[parameter(mandatory = $true)]
[string]$apiKey
)
$Values = . Get-ParameterValue
#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
}

View file

@ -1,72 +0,0 @@
<#
.SYNOPSIS
Short description
.DESCRIPTION
Long description
.PARAMETER name
Parameter description
.PARAMETER category_id
Parameter description
.PARAMETER qty
Parameter description
.PARAMETER url
Parameter description
.PARAMETER apiKey
Parameter description
.EXAMPLE
An example
.NOTES
General notes
#>
function New-Department() {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true)]
[string]$name,
[int]$company_id,
[int]$location_id,
[int]$manager_id,
[string]$notes,
[parameter(mandatory = $true)]
[string]$url,
[parameter(mandatory = $true)]
[string]$apiKey
)
$Values = . Get-ParameterValue
$Body = $Values | ConvertTo-Json;
$Parameters = @{
Uri = "$url/api/v1/departments"
Method = 'POST'
Body = $Body
Token = $apiKey
}
If ($PSCmdlet.ShouldProcess("ShouldProcess?")) {
$result = Invoke-SnipeitMethod @Parameters
}
$result
}

View file

@ -1,88 +0,0 @@
function New-License() {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true)]
[ValidateLength(3, 255)]
[string]$name,
[parameter(mandatory = $true)]
[int]$seats,
[ValidateRange(1, [int]::MaxValue)]
[int]$category_id,
[ValidateRange(1, [int]::MaxValue)]
[int]$company_id,
[datetime]$expiration_date,
[ValidateLength(1, 120)]
[mailaddress]$license_email,
[ValidateLength(1, 100)]
[string]$license_name,
[bool]$maintained,
[ValidateRange(1, [int]::MaxValue)]
[int]$manufacturer_id,
[string]$notes,
[string]$order_number,
[float]$purchase_cost,
[datetime]$purchase_date,
[bool]$reassignable,
[string]$serial,
[ValidateRange(1, [int]::MaxValue)]
[int]$supplier_id,
[datetime]$termination_date,
[parameter(mandatory = $true)]
[string]$url,
[parameter(mandatory = $true)]
[string]$apiKey
)
$Values = . Get-ParameterValue
if ($values['expiration_date']) {
$values['expiration_date'] = $values['expiration_date'].ToString("yyyy-MM-dd")
}
if ($values['purchase_date']) {
$values['purchase_date'] = $values['purchase_date'].ToString("yyyy-MM-dd")
}
if ($values['termination_date']) {
$values['termination_date'] = $values['termination_date'].ToString("yyyy-MM-dd")
}
$Body = $Values | ConvertTo-Json;
$Parameters = @{
Uri = "$url/api/v1/licenses"
Method = 'POST'
Body = $Body
Token = $apiKey
}
If ($PSCmdlet.ShouldProcess("ShouldProcess?")) {
$result = Invoke-SnipeitMethod @Parameters
}
$result
}

View file

@ -1,77 +0,0 @@
<#
.SYNOPSIS
Add a new Model to Snipe-it asset system
.DESCRIPTION
Long description
.PARAMETER name
Name of the Asset Model
.PARAMETER category_id
Category ID that the asset belongs to this can be got using Get-Category
.PARAMETER manufacturer_id
Manufacturer ID that the asset belongs to this can be got using Get-Manufacturer
.PARAMETER fieldset_id
Fieldset ID that the asset uses (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
New-Model -name "DL380" -manufacturer_id 2 -fieldset_id 2 -category_id 1
#>
function New-Location() {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true)]
[string]$name,
[string]$address,
[string]$address2,
[string]$state,
[string]$country,
[string]$zip,
[int]$manager_id,
[string]$ldap_ou,
[parameter(mandatory = $true)]
[string]$url,
[parameter(mandatory = $true)]
[string]$apiKey
)
$Values = . Get-ParameterValue
$Body = $Values | ConvertTo-Json;
$Parameters = @{
Uri = "$url/api/v1/locations"
Method = 'post'
Body = $Body
Token = $apiKey
}
If ($PSCmdlet.ShouldProcess("ShouldProcess?")) {
$result = Invoke-SnipeitMethod @Parameters
}
$result
}

View file

@ -1,60 +0,0 @@
<#
.SYNOPSIS
Add a new Manufacturer to Snipe-it asset system
.DESCRIPTION
Long description
.PARAMETER Name
Name of the Manufacturer
.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-Manufacturer -name "HP"
#>
function New-Manufacturer()
{
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true)]
[string]$Name,
[parameter(mandatory = $true)]
[string]$url,
[parameter(mandatory = $true)]
[string]$apiKey
)
$Values = @{
"name" = $Name
}
#Convert Values to JSON format
$Body = $Values | ConvertTo-Json;
$Parameters = @{
Uri = "$url/api/v1/manufacturers"
Method = 'post'
Body = $Body
Token = $apiKey
}
If ($PSCmdlet.ShouldProcess("ShouldProcess?"))
{
$result = Invoke-SnipeitMethod @Parameters
}
$result
}

View file

@ -1,86 +0,0 @@
<#
.SYNOPSIS
Add a new Model to Snipe-it asset system
.DESCRIPTION
Long description
.PARAMETER name
Name of the Asset Model
.PARAMETER category_id
Category ID that the asset belongs to this can be got using Get-Category
.PARAMETER manufacturer_id
Manufacturer ID that the asset belongs to this can be got using Get-Manufacturer
.PARAMETER fieldset_id
Fieldset ID that the asset uses (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
New-Model -name "DL380" -manufacturer_id 2 -fieldset_id 2 -category_id 1
#>
function New-Model()
{
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true)]
[string]$name,
[string]$model_number,
[parameter(mandatory = $true)]
[int]$category_id,
[parameter(mandatory = $true)]
[int]$manufacturer_id,
[int]$eol,
[parameter(mandatory = $true)]
[int]$fieldset_id,
[parameter(mandatory = $true)]
[string]$url,
[parameter(mandatory = $true)]
[string]$apiKey
)
$Values = @{
name = $name
category_id = $category_id
manufacturer_id = $manufacturer_id
fieldset_id = $fieldset_id
}
if ($PSBoundParameters.ContainsKey('model_number')) { $Values.Add("model_number", $model_number) }
if ($PSBoundParameters.ContainsKey('eol')) { $Values.Add("eol", $eol) }
$Body = $Values | ConvertTo-Json;
$Parameters = @{
Uri = "$url/api/v1/models"
Method = 'post'
Body = $Body
Token = $apiKey
}
If ($PSCmdlet.ShouldProcess("ShouldProcess?"))
{
$result = Invoke-SnipeitMethod @Parameters
}
$result
}

View file

@ -0,0 +1,158 @@
<#
.SYNOPSIS
Creates new accessory on Snipe-It system
.DESCRIPTION
Creates new accessory on Snipe-It system
.PARAMETER name
Accessory name
.PARAMETER notes
Notes about the accessory
.PARAMETER qty
Quantity of the accessory you have
.PARAMETER category_id
ID number of the category the accessory belongs to
.PARAMETER company_id
ID Number of the company the accessory is assigned to
.PARAMETER manufacturer_id
ID number of the manufacturer for this accessory.
.PARAMETER model_number
Model number for this accessory
.PARAMETER order_number
Order number for this accessory.
.PARAMETER purchase_cost
Cost of item being purchased.
.PARAMETER purchase_date
Date accessory was purchased
.PARAMETER order_number
Order number for this accessory.
.PARAMETER purchase_cost
Cost of item being purchased.
.PARAMETER purchase_date
Date accessory was purchased
.PARAMETER supplier_id
ID number of the supplier for this accessory
.PARAMETER location_id
ID number of the location the accessory is assigned to
.PARAMETER min_amt
Min quantity of the accessory before alert is triggered
.PARAMETER image
Accessory image fileame and path
.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-SnipeitAccessory -name "Accessory" -qty 3 -category_id 1
#>
function New-SnipeitAccessory() {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true)]
[ValidateLength(3, 255)]
[string]$name,
[parameter(mandatory = $true)]
[int]$qty,
[parameter(mandatory = $true)]
[ValidateRange(1, [int]::MaxValue)]
[int]$category_id,
[ValidateRange(1, [int]::MaxValue)]
[int]$company_id,
[ValidateRange(1, [int]::MaxValue)]
[int]$manufacturer_id,
[string]$order_number,
[string]$model_number,
[float]$purchase_cost,
[datetime]$purchase_date,
[int]$min_amt,
[ValidateRange(1, [int]::MaxValue)]
[int]$supplier_id,
[ValidateRange(1, [int]::MaxValue)]
[int]$location_id,
[ValidateScript({Test-Path $_})]
[string]$image,
[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
if ($values['purchase_date']) {
$values['purchase_date'] = $values['purchase_date'].ToString("yyyy-MM-dd")
}
$Parameters = @{
Api = "/api/v1/accessories"
Method = 'POST'
Body = $Values
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
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
}
}
}

View file

@ -0,0 +1,208 @@
<#
.SYNOPSIS
Add a new Asset to Snipe-it asset system
.DESCRIPTION
Long description
.PARAMETER status_id
Required Status ID of the asset, this can be got using Get-Status
.PARAMETER model_id
Required Model ID of the asset, this can be got using Get-Model
.PARAMETER name
Optional Name of the Asset
.PARAMETER asset_tag
Asset Tag for the Asset, not required when snipe asset_tag autogeneration is on.
.PARAMETER serial
Optional Serial number of the Asset
.PARAMETER company_id
Optional Company id
.PARAMETER order_number
Optional Order number
.PARAMETER notes
Optional Notes
.PARAMETER warranty_monhts
Optional Warranty lenght of the Asset in months
.PARAMETER purchase_cost
Optional Purchase cost of the Asset
.PARAMETER purchase_date
Optional Purchase cost of the Asset
.PARAMETER supplier_id
Optional Supplier id of the Asset
.PARAMETER rtd_location_id
Optional Default location id for the asset
.PARAMETER image
Asset image filename and path
.PARAMETER assigned_id
Id of target user , location or asset
.PARAMETER checkout_to_type
Checkout asset when creating to one of following types user, location or asset.
.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.
.PARAMETER customfields
Hastable of custom fields and extra fields that need passing through to Snipeit.
Use internal field names from snipeit .You can use Get-CustomField to get internal field names.
.EXAMPLE
New-SnipeitAsset -status_id 1 -model_id 1 -name "Machine1"
Create asset with automatic tag if tag genaration is enabled on snipe-it, other wise without tag
.EXAMPLE
New-SnipeitAsset -status_id 1 -model_id 1 -name "Machine1" -asset_tag "DEV123"
Specifying asset tag when creating asset
.EXAMPLE
New-SnipeitAsset -status_id 1 -model_id 1 -name "Machine1" -customfields = @{ "_snipeit_os_5" = "Windows 10 Pro" }
Using customfields when creating asset.
#>
function New-SnipeitAsset() {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low",
DefaultParameterSetName = 'Create asset'
)]
Param(
[parameter(ParameterSetName='Create asset',mandatory = $true)]
[parameter(ParameterSetName='Checkout asset when creating',mandatory = $true)]
[int]$status_id,
[parameter(mandatory = $true)]
[int]$model_id,
[parameter(mandatory = $false)]
[string]$name,
[parameter(mandatory = $false)]
[Alias('tag')]
[string]$asset_tag,
[parameter(mandatory = $false)]
[string]$serial,
[parameter(mandatory = $false)]
[int]$company_id,
[parameter(mandatory = $false)]
[string]$order_number,
[parameter(mandatory = $false)]
[string]$notes,
[parameter(mandatory = $false)]
[int]$warranty_months,
[parameter(mandatory = $false)]
[string]$purchase_cost,
[parameter(mandatory = $false)]
[datetime]$purchase_date,
[parameter(mandatory = $false)]
[int]$supplier_id,
[parameter(mandatory = $false)]
[int]$rtd_location_id,
[ValidateScript({Test-Path $_})]
[string]$image,
[parameter(ParameterSetName='Checkout asset when creating',mandatory = $true)]
[int]$assigned_id,
[parameter(ParameterSetName='Checkout asset when creating',mandatory = $true)]
[ValidateSet("location","asset","user")]
[string] $checkout_to_type = "user",
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey,
[Alias('CustomValues')]
[hashtable] $customfields
)
begin {
Test-SnipeitAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
$Values = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters
if ($values['purchase_date']) {
$values['purchase_date'] = $values['purchase_date'].ToString("yyyy-MM-dd")
}
if ($customfields) {
$Values += $customfields
}
#Checkout asset when creating it
if ($PsCmdlet.ParameterSetName -eq 'Checkout asset when creating') {
switch ($checkout_to_type) {
'location' { $Values += @{ "assigned_location" = $assigned_id } }
'user' { $Values += @{ "assigned_user" = $assigned_id } }
'asset' { $Values += @{ "assigned_asset" = $assigned_id } }
}
#This are not needed for API
if ($Values.ContainsKey('assigned_id')) {$Values.Remove('assigned_id')}
if ($Values.ContainsKey('checkout_to_type')) {$Values.Remove('checkout_to_type')}
}
$Parameters = @{
Api = "/api/v1/hardware"
Method = 'Post'
Body = $Values
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
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
}
}
}

View file

@ -0,0 +1,124 @@
<#
.SYNOPSIS
Add a new Asset maintenence to Snipe-it asset system
.DESCRIPTION
Long description
.PARAMETER title
Required Title of maintenance
.PARAMETER asset_id
Required ID of the asset, this can be got using Get-Asset
.PARAMETER supplier_id
Required maintenance supplier
.PARAMETER start_date
Required start date
.PARAMETER is_warranty
Optional Maintenance done under warranty
.PARAMETER cost
Optional cost
.PARAMETER comletion_date
Optional completion date
.PARAMETER notes
Optional cost
.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-SnipeitAssetMaintenence -asset_id 1 -supplier_id 1 -title "replace keyboard" -start_date 2021-01-01
#>
function New-SnipeitAssetMaintenance() {
[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)]
[datetime]$start_date,
[parameter(mandatory = $false)]
[datetime]$completion_date,
[bool]$is_warranty = $false,
[decimal]$cost,
[string]$notes,
[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
if ($Values['start_date']) {
$Values['start_date'] = $Values['start_date'].ToString("yyyy-MM-dd")
}
if ($Values['completion_date']) {
$Values['completion_date'] = $Values['completion_date'].ToString("yyyy-MM-dd")
}
$Parameters = @{
Api = "/api/v1/maintenances"
Method = 'Post'
Body = $Values
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
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
}
}
}

View file

@ -0,0 +1,90 @@
<#
.SYNOPSIS
Add a new Audit to Snipe-it asset system
.DESCRIPTION
Long description
.PARAMETER Tag
The asset tag of the asset you wish to audit
.PARAMETER next_audit_date
Due date for the asset's next audit
.PARAMETER Location_id
ID of the location you want to associate with the audit
.EXAMPLE
New-SnipeitAudit -tag 1 -location_id 1
#>
function New-SnipeitAudit() {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true)]
[string]$tag,
[int]$location_id,
[parameter(mandatory = $false)]
[datetime]$next_audit_date,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
Test-SnipeitAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
$Values = @{
"location_id" = $location_id
}
if ($PSBoundParameters.ContainsKey('tag')) {
$Values += @{"asset_tag" = $tag}
}
if ($PSBoundParameters.ContainsKey('next_audit_date')) {
$Values += @{"next_audit_date" = ($next_audit_date).ToString("yyyy-MM-dd")}
}
$Parameters = @{
Api = "/api/v1/hardware/audit"
Method = 'Post'
Body = $Values
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
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
}
}
}

View file

@ -0,0 +1,109 @@
<#
.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 eula_text
This allows you to customize your EULAs for specific types of assets
.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
.PARAMETER image
Category image filename and path
.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 API Key for Snipeit.
.EXAMPLE
New-SnipeitCategory -name "Laptops" -category_type asset
#>
function New-SnipeitCategory() {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true)]
[string]$name,
[parameter(mandatory = $true)]
[ValidateSet("asset", "accessory", "consumable", "component", "license")]
[string]$category_type,
[string]$eula_text,
[switch]$use_default_eula,
[switch]$require_acceptance,
[switch]$checkin_email,
[ValidateScript({Test-Path $_})]
[string]$image,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
Test-SnipeitAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
if ($eula_text -and $use_default_eula) {
throw 'Dont use -use_defalt_eula if -eula_text is set'
}
$Values = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters
}
process {
$Parameters = @{
Api = "/api/v1/categories"
Method = 'POST'
Body = $Values
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
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
}
}
}

View file

@ -0,0 +1,81 @@
<#
.SYNOPSIS
Creates a new Company
.DESCRIPTION
Creates new company on Snipe-It system
.PARAMETER name
Comapany name
.PARAMETER image
Company image filename and path
.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 API Key for Snipeit.
.EXAMPLE
New-SnipeitCompany -name "Acme Company"
#>
function New-SnipeitCompany() {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true)]
[string]$name,
[ValidateScript({Test-Path $_})]
[string]$image,
[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/companies"
Method = 'POST'
Body = $Values
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
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
}
}
}

View file

@ -0,0 +1,120 @@
<#
.SYNOPSIS
Create a new component
.DESCRIPTION
Createa new componen on Snipe-It system
.PARAMETER name
Component name
.PARAMETER category_id
ID number of category
.PARAMETER qty
Quantity of the components you have
.PARAMETER location_id
ID number of the location the accessory is assigned to
.PARAMETER order_number
Order number of the component
.PARAMETER purchase_date
Date accessory was purchased
.PARAMETER purchase_cost
Cost of item being purchased.
.PARAMETER image
Component image filename and path
.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 API Key for Snipeit.
.EXAMPLE
New-SnipeitComponent -name 'Display adapter' -catecory_id 3 -qty 10
#>
function New-SnipeitComponent() {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true)]
[string]$name,
[parameter(mandatory = $true)]
[int]$category_id,
[parameter(mandatory = $true)]
[string]$qty,
[int]$company_id,
[int]$location_id,
[string]$order_number,
[datetime]$purchase_date,
[float]$purchase_cost,
[ValidateScript({Test-Path $_})]
[string]$image,
[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
if ($Values['purchase_date']) {
$Values['purchase_date'] = $Values['purchase_date'].ToString("yyyy-MM-dd")
}
$Parameters = @{
Api = "/api/v1/components"
Method = 'POST'
Body = $Values
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
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
}
}
}

View file

@ -0,0 +1,157 @@
<#
.SYNOPSIS
Add a new Consumable to Snipe-it asset system
.DESCRIPTION
Long description
.PARAMETER name
Required Name of the Consumable
.PARAMETER qty
Required Quantity of comsumable
.PARAMETER category_id
Required Category ID of the Consumable, this can be got using Get-SnipeitCategory
.PARAMETER min_amt
Optional minimum quantity of comsumable
.PARAMETER company_id
Optional Company id
.PARAMETER order_number
Optional Order number
.PARAMETER manufacturer_id
Manufaturer id number of the consumable
.PARAMETER location_id
Location id number of the consumable
.PARAMETER requestable
Is consumable requestable?
.PARAMETER purchase_date
Optional Purchase cost of the consumable
.PARAMETER purchase_cost
Optional Purchase cost of the consumable
.PARAMETER model_number
Model number of the consumable in months
.PARAMETER item_no
Item number for the consumable
.PARAMETER image
Consumable Image filename and path
.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-Snipeitconsumable -name "Ink pack" -qty 20 -category_id 3 -min_amt 5
Create consumable with stock count 20 , alert when stock is 5 or lower
#>
function New-SnipeitConsumable() {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true)]
[string]$name,
[parameter(mandatory = $true)]
[int]$qty,
[parameter(mandatory = $true)]
[int]$category_id,
[parameter(mandatory = $false)]
[int]$min_amt,
[parameter(mandatory = $false)]
[int]$company_id,
[parameter(mandatory = $false)]
[string]$order_number,
[parameter(mandatory = $false)]
[int]$manufacturer_id,
[parameter(mandatory = $false)]
[int]$location_id,
[parameter(mandatory = $false)]
[bool]$requestable,
[parameter(mandatory = $false)]
[datetime]$purchase_date,
[parameter(mandatory = $false)]
[string]$purchase_cost,
[parameter(mandatory = $false)]
[string]$model_number,
[parameter(mandatory = $false)]
[string]$item_no,
[ValidateScript({Test-Path $_})]
[string]$image,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
$Values = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters
if ($Values['purchase_date']) {
$Values['purchase_date'] = $Values['purchase_date'].ToString("yyyy-MM-dd")
}
$Parameters = @{
Api = "/api/v1/consumables"
Method = 'Post'
Body = $Values
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
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
}
}
}

View file

@ -0,0 +1,115 @@
<#
.SYNOPSIS
Add a new Custom Field to Snipe-it asset system
.DESCRIPTION
Add a new Custom Field to Snipe-it asset system
.PARAMETER name
The field's name, which is also the form label
.PARAMETER element
Form field type that should be displayed.
.PARAMETER field_values
In the case of list boxes, etc, this should be a list of the options available
.PARAMETER show_in_email
Whether or not to show the custom field in email notifications
.PARAMETER format
How the field should be validated
.PARAMETER custom_format
In the case of format 'CUSTOM REGEX', this should be validation regex this field
.PARAMETER field_encrypted
Whether the field should be encrypted. (This can cause issues if you change it after the field was created.)
.PARAMETER help_text
Any additional text you wish to display under the new form field to make it clearer what the gauges should be.
.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-SnipeitCustomField -Name "AntivirusInstalled" -Format "BOOLEAN" -HelpText "Is AntiVirus installed on Asset"
#>
function New-SnipeitCustomField() {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true)]
[string]$name,
[string]$help_text,
[parameter(mandatory = $true)]
[ValidateSet('text','textarea','listbox','checkbox','radio')]
[string]$element ,
[parameter(mandatory = $true)]
[ValidateSet('ANY','CUSTOM REGEX','ALPHA','ALPHA-DASH','NUMERIC','ALPHA-NUMERIC','EMAIL','DATE','URL','IP','IPV4','IPV6','MAC','BOOLEAN')]
[string]$format,
[string]$field_values,
[bool]$field_encrypted=$false,
[bool]$show_in_email=$false,
[string]$custom_format,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
Test-SnipeitAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
if ($format -eq 'CUSTOM REGEX' -and (-not $custom_format)) {
throw "Please specify regex validation with -custom_format when using -format 'CUSTOM REGEX'"
}
$Values = . Get-ParameterValue -Parameters $MyInvocation.MyCommand.Parameters -BoundParameters $PSBoundParameters
$Parameters = @{
Api = "/api/v1/fields"
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
}
}
}

View file

@ -0,0 +1,100 @@
<#
.SYNOPSIS
Creates a department
.DESCRIPTION
Creates a new department on Snipe-It system
.PARAMETER name
Department Name
.PARAMETER company_id
ID number of company
.PARAMETER location_id
ID number of location
.PARAMETER manager_id
ID number of manager
.PARAMETER image
Department Image filename and path
.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-SnipeitDepartment -name "Department1" -company_id 1 -localtion_id 1 -manager_id 3
#>
function New-SnipeitDepartment() {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true)]
[string]$name,
[int]$company_id,
[int]$location_id,
[int]$manager_id,
[string]$notes,
[ValidateScript({Test-Path $_})]
[string]$image,
[switch]$image_delete=$false,
[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/departments"
Method = 'POST'
Body = $Values
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
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
}
}
}

View file

@ -0,0 +1,174 @@
<#
.SYNOPSIS
Creates a licence
.DESCRIPTION
Creates a new licence on Snipe-It system
.PARAMETER name
Name of license being created
.PARAMETER seats
Number of license seats owned.
.PARAMETER company_id
Id number of company license belongs to
.PARAMETER expiration_date
Date of license expiration
.PARAMETER expiration_date
Date of license expiration
.PARAMETER license_email
Email address associated with license
.PARAMETER license_name
Name of license contact person
.PARAMETER serial
Serialnumber of license
.PARAMETER maintained
Maintained status of license
.PARAMETER manufacturer_id
ID number of manufacturer of license.
.PARAMETER notes
License Notes
.PARAMETER order_number
Order number of license purchase
.PARAMETER purchase_cost
Cost of license
.PARAMETER purchase_date
Date of license purchase
.PARAMETER reassignable
Is license reassignable?
.PARAMETER supplier_id
ID number of license supplier
.PARAMETER termination_date
Termination date for license.
.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-SnipeitLicence -name "License" -seats 3 -company_id 1
#>
function New-SnipeitLicense() {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true)]
[ValidateLength(3, 255)]
[string]$name,
[parameter(mandatory = $true)]
[int]$seats,
[ValidateRange(1, [int]::MaxValue)]
[int]$category_id,
[ValidateRange(1, [int]::MaxValue)]
[int]$company_id,
[datetime]$expiration_date,
[ValidateLength(1, 120)]
[mailaddress]$license_email,
[ValidateLength(1, 100)]
[string]$license_name,
[bool]$maintained,
[ValidateRange(1, [int]::MaxValue)]
[int]$manufacturer_id,
[string]$notes,
[string]$order_number,
[float]$purchase_cost,
[datetime]$purchase_date,
[bool]$reassignable,
[string]$serial,
[ValidateRange(1, [int]::MaxValue)]
[int]$supplier_id,
[datetime]$termination_date,
[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
if ($Values['expiration_date']) {
$Values['expiration_date'] = $Values['expiration_date'].ToString("yyyy-MM-dd")
}
if ($Values['purchase_date']) {
$Values['purchase_date'] = $Values['purchase_date'].ToString("yyyy-MM-dd")
}
if ($Values['termination_date']) {
$Values['termination_date'] = $Values['termination_date'].ToString("yyyy-MM-dd")
}
$Parameters = @{
Api = "/api/v1/licenses"
Method = 'POST'
Body = $Values
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
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
}
}
}

View file

@ -0,0 +1,132 @@
<#
.SYNOPSIS
Add a new Location to Snipe-it asset system
.DESCRIPTION
Long description
.PARAMETER name
Name of the Location
.PARAMETER address
Address line 1 of the location
.PARAMETER address2
Address line 2 of the location
.PARAMETER state
Address State of the location
.PARAMETER country
Country of the location
.PARAMETER zip
The zip code of the location
.PARAMETER ldap_ou
The LDAP OU of the location
.PARAMETER parent_id
Parent location ID for the location
.PARAMETER currency
Currency used at the location
.PARAMETER city
City of the location
.PARAMETER manager_id
The manager ID of the location
.PARAMETER image
Location Image filename and path
.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-SnipeitLocation -name "Room 1" -address "123 Asset Street" -parent_id 14
#>
function New-SnipeitLocation() {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true)]
[string]$name,
[string]$address,
[string]$address2,
[string]$city,
[string]$state,
[string]$country,
[string]$zip,
[string]$currency,
[int]$parent_id,
[int]$manager_id,
[string]$ldap_ou,
[ValidateScript({Test-Path $_})]
[string]$image,
[switch]$image_delete=$false,
[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/locations"
Method = 'post'
Body = $Values
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
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
}
}
}

View file

@ -0,0 +1,85 @@
<#
.SYNOPSIS
Add a new Manufacturer to Snipe-it asset system
.DESCRIPTION
Long description
.PARAMETER Name
Name of the Manufacturer
.PARAMETER image
Manufacturer Image filename and path
.PARAMETER image_delete
Remove current image
.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-SnipeitManufacturer -name "HP"
#>
function New-SnipeitManufacturer() {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true)]
[string]$Name,
[ValidateScript({Test-Path $_})]
[string]$image,
[switch]$image_delete=$false,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
Test-SnipeitAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
$Values = @{
"name" = $Name
}
$Parameters = @{
Api = "/api/v1/manufacturers"
Method = 'post'
Body = $Values
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
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
}
}
}

View file

@ -0,0 +1,114 @@
<#
.SYNOPSIS
Add a new Model to Snipe-it asset system
.DESCRIPTION
Long description
.PARAMETER name
Name of the Asset Model
.PARAMETER model_number
Model number of the Asset Model
.PARAMETER category_id
Category ID that the asset belongs to this can be got using Get-Category
.PARAMETER manufacturer_id
Manufacturer ID that the asset belongs to this can be got using Get-Manufacturer
.PARAMETER fieldset_id
Fieldset ID that the asset uses (Custom fields)
.PARAMETER image
Asset model Image filename and path
.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-SnipeitModel -name "DL380" -manufacturer_id 2 -fieldset_id 2 -category_id 1
#>
function New-SnipeitModel() {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true)]
[string]$name,
[string]$model_number,
[parameter(mandatory = $true)]
[int]$category_id,
[parameter(mandatory = $true)]
[int]$manufacturer_id,
[int]$eol,
[parameter(mandatory = $false)]
[int]$fieldset_id,
[ValidateScript({Test-Path $_})]
[string]$image,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
Test-SnipeitAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
$Values = @{
name = $name
category_id = $category_id
manufacturer_id = $manufacturer_id
fieldset_id = $fieldset_id
}
if ($PSBoundParameters.ContainsKey('model_number')) { $Values.Add("model_number", $model_number) }
if ($PSBoundParameters.ContainsKey('eol')) { $Values.Add("eol", $eol) }
$Parameters = @{
Api = "/api/v1/models"
Method = 'post'
Body = $Values
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
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
}
}
}

View file

@ -0,0 +1,136 @@
<#
.SYNOPSIS
Creates a supplier
.DESCRIPTION
Creates a new supplier on Snipe-It system
.PARAMETER name
Department Name
.PARAMETER address
Address line 1 of supplier
.PARAMETER address2
Address line 1 of supplier
.PARAMETER city
City
.PARAMETER state
State
.PARAMETER country
Country
.PARAMETER zip
Zip code
.PARAMETER phone
Phone number
.PARAMETER fax
Fax number
.PARAMETER email
Email address
.PARAMETER contact
Contact person
.PARAMETER notes
Email address
.PARAMETER image
Image file name and path for item
.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-SnipeitDepartment -name "Department1" -company_id 1 -localtion_id 1 -manager_id 3
#>
function New-SnipeitSupplier() {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true)]
[string]$name,
[string]$address,
[string]$address2,
[string]$city,
[string]$state,
[string]$country,
[string]$zip,
[string]$phone,
[string]$fax,
[string]$email,
[string]$contact,
[string]$notes,
[ValidateScript({Test-Path $_})]
[string]$image,
[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/suppilers"
Method = 'POST'
Body = $Values
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
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
}
}
}

View file

@ -0,0 +1,164 @@
<#
.SYNOPSIS
Creates a new user
.DESCRIPTION
Creates a new user to Snipe-IT system
.PARAMETER first_name
Users first name
.PARAMETER last_name
Users last name
.PARAMETER username
Username for user
.PARAMETER active
Can user log in to snipe-it?
.PARAMETER password
Password for user
.PARAMETER notes
User Notes
.PARAMETER jobtitle
Users job tittle
.PARAMETER email
email address
.PARAMETER phone
Phone number
.PARAMETER company_id
ID number of company users belogs to
.PARAMETER location_id
ID number of localtion
.PARAMETER department_id
ID number of department
.PARAMETER manager_id
ID number of manager
.PARAMETER groups
ID numbers of groups
.PARAMETER employee_num
Employeenumber
.PARAMETER ldap_import
Mark user as import from ldap
.PARAMETER image
User Image file name and path
.PARAMETER url
Deprecated parameter, please use Connect-SnipeitPS instead. URL of Snipeit system.
.PARAMETER apiKey
Deprecated parameter, please use Connect-SnipeitPS instead. User's API Key for Snipeit.
.EXAMPLE
New-Snipeituser -fist_name It -lastname Snipe -username snipeit -activated $false -company_id 1 -location_id 1 -department_id 1
Creates new a new user who can't login to system
.NOTES
General notes
#>
function New-SnipeitUser() {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true)]
[string]$first_name,
[parameter(mandatory = $true)]
[string]$last_name,
[parameter(mandatory = $true)]
[string]$username,
[string]$password,
[bool]$activated = $false,
[string]$notes,
[string]$jobtitle,
[string]$email,
[string]$phone,
[int]$company_id,
[int]$location_id,
[int]$department_id,
[int]$manager_id,
[int[]]$groups,
[string]$employee_num,
[bool]$ldap_import = $false,
[ValidateScript({Test-Path $_})]
[string]$image,
[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
if ($password ) {
$Values['password_confirmation'] = $password
}
$Parameters = @{
Api = "/api/v1/users"
Method = 'post'
Body = $Values
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
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
}
}
}

View file

@ -1,146 +0,0 @@
<#
.SYNOPSIS
Short description
.DESCRIPTION
Long description
.PARAMETER firstName
Parameter description
.PARAMETER lastName
Parameter description
.PARAMETER userName
Parameter description
.PARAMETER jobTitle
Parameter description
.PARAMETER email
Parameter description
.PARAMETER phone
Parameter description
.PARAMETER company_id
Parameter description
.PARAMETER location_id
Parameter description
.PARAMETER department_id
Parameter description
.PARAMETER manager_id
Parameter description
.PARAMETER employee_num
Parameter description
.PARAMETER ldap_user
Parameter description
.PARAMETER url
Parameter description
.PARAMETER apiKey
Parameter description
.EXAMPLE
An example
.NOTES
General notes
#>
function New-User() {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true)]
[string]$firstName,
[parameter(mandatory = $true)]
[string]$lastName,
[parameter(mandatory = $true)]
[string]$userName,
[string]$password,
[string]$jobTitle,
[string]$email,
[string]$phone,
[int]$company_id,
[int]$location_id,
[int]$department_id,
[int]$manager_id,
[string]$employee_num,
[bool]$ldap_user = $false,
[parameter(mandatory = $true)]
[string]$url,
[parameter(mandatory = $true)]
[string]$apiKey
)
$Values = @{
first_name = $firstName
last_name = $lastName
username = $userName
email = $email
phone = $phone
company_id = $company_id
location_id = $location_id
department_id = $department_id
manager_id = $manager_id
jobtitle = $jobTitle
employee_num = $employee_num
notes = "Imported using SnipeitPS Script"
activated = 1
}
if ($ldap_user -eq $false) {
$ldap = @{
password = $password
password_confirmation = $password
ldap_import = 0
}
$Values += $ldap
}
else {
$ldap = @{
ldap_import = 1
}
$Values += $ldap
}
$Body = $Values | ConvertTo-Json;
$Parameters = @{
Uri = "$url/api/v1/users"
Method = 'post'
Body = $Body
Token = $apiKey
}
If ($PSCmdlet.ShouldProcess("ShouldProcess?")) {
$result = Invoke-SnipeitMethod @Parameters
}
$result
}

View file

@ -0,0 +1,72 @@
<#
.SYNOPSIS
Removes Accessory from Snipe-it asset system
.DESCRIPTION
Removes Accessory or multiple Accessoriers from Snipe-it asset system
.PARAMETER ID
Unique ID For accessory to be removed
.PARAMETER url
Deprecated parameter, please use Connect-SnipeitPS instead. URL of Snipeit system.
.PARAMETER apiKey
Deprecated parameter, please use Connect-SnipeitPS instead. User's API Key for Snipeit.
.EXAMPLE
Remove-SnipeitAccessory -ID 44 -Verbose
.EXAMPLE
Get-SnipeitAccessory -search needle | Remove-SnipeitAccessory
#>
function Remove-SnipeitAccessory () {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true,ValueFromPipelineByPropertyName)]
[int[]]$id,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
}
process {
foreach($accessory_id in $id) {
$Parameters = @{
Api = "/api/v1/accessories/$accessory_id"
Method = 'Delete'
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
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
}
}
}

View file

@ -0,0 +1,73 @@
<#
.SYNOPSIS
Removes Asset from Snipe-it asset system
.DESCRIPTION
Removes asset or multiple assets from Snipe-it asset system
.PARAMETER ID
Unique ID For Asset to be removed
.PARAMETER url
Deprecated parameter, please use Connect-SnipeitPS instead. URL of Snipeit system.
.PARAMETER apiKey
Deprecated parameter, please use Connect-SnipeitPS instead. User's API Key for Snipeit.
.EXAMPLE
Remove-SnipeitAsset -ID 44 -Verbose
.EXAMPLE
Get-SnipeitAsset -serial 123456789 | Remove-SnipeitAsset
#>
function Remove-SnipeitAsset () {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true,ValueFromPipelineByPropertyName)]
[int[]]$id,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
Test-SnipeitAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
}
process {
foreach($asset_id in $id) {
$Parameters = @{
Api = "/api/v1/hardware/$asset_id"
Method = 'Delete'
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
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
}
}
}

View file

@ -0,0 +1,72 @@
<#
.SYNOPSIS
Remove asset maintenance from Snipe-it asset system
.DESCRIPTION
Removes asset maintenance event or events from Snipe-it asset system by ID
.PARAMETER ID
Unique ID of the asset maintenance to be removed
.PARAMETER url
Deprecated parameter, please use Connect-SnipeitPS instead. URL of Snipeit system.
.PARAMETER url
Deprecated parameter, please use Connect-SnipeitPS instead. User's API Key for Snipeit.
.EXAMPLE
Remove-SnipeitAssetMaintenance -ID 44
#>
function Remove-SnipeitAssetMaintenance {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
param (
[Parameter(Mandatory = $true,ValueFromPipelineByPropertyName)]
[int[]]
$id,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
Test-SnipeitAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
}
process {
foreach($maintenance_id in $id) {
$Parameters = @{
Api = "/api/v1/maintenances/$maintenance_id"
Method = 'Delete'
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
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
}
}
}

View file

@ -0,0 +1,71 @@
<#
.SYNOPSIS
Removes category from Snipe-it asset system
.DESCRIPTION
Removes category or multiple categories from Snipe-it asset system
.PARAMETER ID
Unique ID For categoryto be removed
.PARAMETER url
Deprecated parameter, please use Connect-SnipeitPS instead. URL of Snipeit system.
.PARAMETER apiKey
Deprecated parameter, please use Connect-SnipeitPS instead. User's API Key for Snipeit.
.EXAMPLE
Remove-SnipeitCategory -ID 44
.EXAMPLE
Get-SnipeitCategory -search something | Remove-SnipeitCategory
#>
function Remove-SnipeitCategory () {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true,ValueFromPipelineByPropertyName)]
[int[]]$id,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
}
process {
foreach($category_id in $id) {
$Parameters = @{
Api = "/api/v1/categories/$category_id"
Method = 'Delete'
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
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
}
}
}

View file

@ -0,0 +1,71 @@
<#
.SYNOPSIS
Removes Company from Snipe-it asset system
.DESCRIPTION
Removes Company or multiple Companies from Snipe-it asset system
.PARAMETER ID
Unique ID For Company to be removed
.PARAMETER url
Deprecated parameter, please use Connect-SnipeitPS instead. URL of Snipeit system.
.PARAMETER apiKey
Deprecated parameter, please use Connect-SnipeitPS instead. User's API Key for Snipeit.
.EXAMPLE
Remove-SnipeitCompany -ID 44
.EXAMPLE
Get-SnipeitCompany | | Where-object {$_.name -like '*some*'} | Remove-SnipeitCompany
#>
function Remove-SnipeitCompany () {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true,ValueFromPipelineByPropertyName)]
[int[]]$id,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
}
process {
foreach($company_id in $id) {
$Parameters = @{
Api = "/api/v1/companies/$company_id"
Method = 'Delete'
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
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
}
}
}

View file

@ -0,0 +1,72 @@
<#
.SYNOPSIS
Removes component from Snipe-it asset system
.DESCRIPTION
Removes component or multiple components from Snipe-it asset system
.PARAMETER IDs
Unique ID For component to be removed
.PARAMETER url
Deprecated parameter, please use Connect-SnipeitPS instead. URL of Snipeit system.
.PARAMETER apiKey
Deprecated parameter, please use Connect-SnipeitPS instead. User's API Key for Snipeit.
.EXAMPLE
Remove-SnipeitComponent -ID 44
.EXAMPLE
Get-SnipeitComponent -search 123456789 | Remove-SnipeitComponent
#>
function Remove-SnipeitComponent () {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true,ValueFromPipelineByPropertyName)]
[int[]]$id,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
}
process {
foreach($component_id in $id) {
$Parameters = @{
Api = "/api/v1/components/$component_id"
Method = 'Delete'
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
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
}
}
}

View file

@ -0,0 +1,73 @@
<#
.SYNOPSIS
Removes consumable from Snipe-it asset system
.DESCRIPTION
Removes consumable or multiple consumables from Snipe-it asset system
.PARAMETER ID
Unique ID For consumable to be removed
.PARAMETER url
Deprecated parameter, please use Connect-SnipeitPS instead. URL of Snipeit system.
.PARAMETER apiKey
Deprecated parameter, please use Connect-SnipeitPS instead. User's API Key for Snipeit.
.EXAMPLE
Remove-SnipeitConsumable -ID 44
.EXAMPLE
Get-SnipeitConsumable -search "paper" | Remove-SnipeitConsumable
#>
function Remove-SnipeitConsumable () {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true,ValueFromPipelineByPropertyName)]
[int[]]$id,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
}
process {
foreach($consumable_id in $id) {
$Parameters = @{
Api = "/api/v1/consumables/$consumable_id"
Method = 'Delete'
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
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
}
}
}

View file

@ -0,0 +1,70 @@
<#
.SYNOPSIS
Removes custom field from Snipe-it asset system
.DESCRIPTION
Removes custom field or multiple fields from Snipe-it asset system
.PARAMETER ID
Unique ID For field to be removed
.PARAMETER url
Deprecated parameter, please use Connect-SnipeitPS instead. URL of Snipeit system.
.PARAMETER apiKey
Deprecated parameter, please use Connect-SnipeitPS instead. User's API Key for Snipeit.
.EXAMPLE
Remove-SnipeitCustomField -ID 44 -Verbose
.EXAMPLE
Get-SnipeitCustomField | Where-object {$_.name -like '*address*'} | Remove-SnipeitCustomField
#>
function Remove-SnipeitCustomField () {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true,ValueFromPipelineByPropertyName)]
[int[]]$id,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
}
process {
foreach($field_id in $id) {
$Parameters = @{
Api = "/api/v1/fields/$field_id"
Method = 'Delete'
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
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
}
}
}

View file

@ -0,0 +1,71 @@
<#
.SYNOPSIS
Removes department from Snipe-it asset system
.DESCRIPTION
Removes department or multiple departments from Snipe-it asset system
.PARAMETER ID
Unique ID For department to be removed
.PARAMETER url
Deprecated parameter, please use Connect-SnipeitPS instead. URL of Snipeit system.
.PARAMETER apiKey
Deprecated parameter, please use Connect-SnipeitPS instead. User's API Key for Snipeit.
.EXAMPLE
Remove-SnipeitDepartment -ID 44
.EXAMPLE
Get-SnipeitDepartment | Where-object {$_.name -like '*head*'} | Remove-SnipeitDepartment
#>
function Remove-SnipeitDepartment () {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true,ValueFromPipelineByPropertyName)]
[int[]]$id,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
}
process {
foreach($department_id in $id) {
$Parameters = @{
Api = "/api/v1/departments/$department_id"
Method = 'Delete'
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
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
}
}
}

View file

@ -0,0 +1,72 @@
<#
.SYNOPSIS
Removes licence from Snipe-it asset system
.DESCRIPTION
Removes licence or multiple licenses from Snipe-it asset system
.PARAMETER ID
Unique ID For licence to be removed
.PARAMETER url
Deprecated parameter, please use Connect-SnipeitPS instead. URL of Snipeit system.
.PARAMETER apiKey
Deprecated parameter, please use Connect-SnipeitPS instead. User's API Key for Snipeit.
.EXAMPLE
Remove-SnipeitLicence -ID 44
.EXAMPLE
Get-SnipeitLicence -product_key 123456789 | Remove-SnipeitLicense
#>
function Remove-SnipeitLicense () {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true,ValueFromPipelineByPropertyName)]
[int[]]$id,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
}
process {
foreach($license_id in $id) {
$Parameters = @{
Api = "/api/v1/licenses/$license_id"
Method = 'Delete'
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
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
}
}
}

View file

@ -0,0 +1,72 @@
<#
.SYNOPSIS
Removes Location from Snipe-it asset system
.DESCRIPTION
Removes localtion or multiple locations from Snipe-it asset system
.PARAMETER ID
Unique ID For location to be removed
.PARAMETER url
Deprecated parameter, please use Connect-SnipeitPS instead. URL of Snipeit system.
.PARAMETER apiKey
Deprecated parameter, please use Connect-SnipeitPS instead. User's API Key for Snipeit.
.EXAMPLE
Remove-SnipeitLocation -ID 44
.EXAMPLE
Get-SnipeitLocation -city Arkham | Remove-SnipeitLocation
#>
function Remove-SnipeitLocation () {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true,ValueFromPipelineByPropertyName)]
[int[]]$id,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
}
process {
foreach($location_id in $id) {
$Parameters = @{
Api = "/api/v1/locations/$asset_id"
Method = 'Delete'
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
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
}
}
}

View file

@ -0,0 +1,73 @@
<#
.SYNOPSIS
Removes manufacturer from Snipe-it asset system
.DESCRIPTION
Removes manufacturer or multiple manufacturers from Snipe-it asset system
.PARAMETER ID
Unique ID For manufacturer to be removed
.PARAMETER url
Deprecated parameter, please use Connect-SnipeitPS instead. URL of Snipeit system.
.PARAMETER apiKey
Deprecated parameter, please use Connect-SnipeitPS instead. User's API Key for Snipeit.
.EXAMPLE
Remove-SnipeitManufacturer -ID 44
.EXAMPLE
Get-SnipeitManufacturer | Where-object {$_.name -like '*something*'} | Remove-SnipeitManufacturer
#>
function Remove-SnipeitManufacturer () {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true,ValueFromPipelineByPropertyName)]
[int[]]$id,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
}
process {
foreach($manufacturer_id in $id) {
$Parameters = @{
Api = "/api/v1/manufacturers/$manufacturer_id"
Method = 'Delete'
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
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
}
}
}

View file

@ -0,0 +1,72 @@
<#
.SYNOPSIS
Removes Asset model from Snipe-it asset system
.DESCRIPTION
Removes asset model or multiple assets models from Snipe-it asset system
.PARAMETER ID
Unique ID For Model to be removed
.PARAMETER url
Deprecated parameter, please use Connect-SnipeitPS instead. URL of Snipeit system.
.PARAMETER apiKey
Deprecated parameter, please use Connect-SnipeitPS instead. User's API Key for Snipeit.
.EXAMPLE
Remove-SnipeitModel -ID 44
.EXAMPLE
Get-SnipeitModel -search needle | Remove-SnipeitModel
#>
function Remove-SnipeitModel () {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true,ValueFromPipelineByPropertyName)]
[int[]]$id,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
}
process {
foreach($model_id in $id) {
$Parameters = @{
Api = "/api/v1/models/$model_id"
Method = 'Delete'
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
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
}
}
}

View file

@ -0,0 +1,72 @@
<#
.SYNOPSIS
Removes supplier from Snipe-it asset system
.DESCRIPTION
Removes supplier or multiple manufacturers from Snipe-it asset system
.PARAMETER ID
Unique ID For supplier to be removed
.PARAMETER url
Deprecated parameter, please use Connect-SnipeitPS instead. URL of Snipeit system.
.PARAMETER apiKey
Deprecated parameter, please use Connect-SnipeitPS instead. User's API Key for Snipeit.
.EXAMPLE
Remove-SnipeitSupplier -ID 44
.EXAMPLE
Get-SnipeitSupplier | Where-object {$_.name -like '*something*'} | Remove-SnipeitSupplier
#>
function Remove-SnipeitSupplier () {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true,ValueFromPipelineByPropertyName)]
[int[]]$id,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin {
}
process {
foreach($suppliers_id in $id) {
$Parameters = @{
Api = "/api/v1/suppliers/$supplier_id"
Method = 'Delete'
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
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
}
}
}

View file

@ -0,0 +1,71 @@
<#
.SYNOPSIS
Removes User from Snipe-it asset system
.DESCRIPTION
Removes Uuser or users from Snipe-it asset system
.PARAMETER ID
Unique ID For User to be removed
.PARAMETER url
Deprecated parameter, please use Connect-SnipeitPS instead. URL of Snipeit system.
.PARAMETER apiKey
Deprecated parameter, please use Connect-SnipeitPS instead. User's API Key for Snipeit.
.EXAMPLE
Remove-SnipeitUser -ID 44 -url $url -apiKey $secret -Verbose
#>
function Remove-SnipeitUser () {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true,ValueFromPipelineByPropertyName)]
[int[]]$id,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
begin{
Test-SnipeitAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
}
process {
foreach($user_id in $id) {
$Parameters = @{
Api = "/api/v1/users/$user_id"
Method = 'Delete'
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
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
}
}
}

View file

@ -1,45 +0,0 @@
function Reset-AssetOwner() {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Medium"
)]
Param(
[parameter(mandatory = $true)]
[int]$id,
[int]$status_id,
[int]$location_id,
[string]$notes,
[parameter(mandatory = $true)]
[string]$url,
[parameter(mandatory = $true)]
[string]$apiKey
)
$Values = @{
"notes" = $notes
}
if ($PSBoundParameters.ContainsKey('location_id')) { $Values.Add("location_id", $location_id) }
if ($PSBoundParameters.ContainsKey('status_id')) { $Values.Add("status_id", $status_id) }
$Body = $Values | ConvertTo-Json;
$Parameters = @{
Uri = "$url/api/v1/hardware/$id/checkin"
Method = 'POST'
Body = $Body
Token = $apiKey
}
If ($PSCmdlet.ShouldProcess("ShouldProcess?")) {
$result = Invoke-SnipeitMethod @Parameters
}
return $result
}

View file

@ -0,0 +1,72 @@
<#
.SYNOPSIS
Checkin accessories
.DESCRIPTION
Checkin accessories
.PARAMETER assigned_pivot_id
This is the assigned_pivot_id of the accessory+user relationships in the accessories_users table
Use Get-SnipeitAccessoryOwner to find out nooded value
.PARAMETER url
Deprecated parameter, please use Connect-SnipeitPS instead. URL of Snipeit system.
.PARAMETER apiKey
Deprecated parameter, please use Connect-SnipeitPS instead. User's API Key for Snipeit.
.EXAMPLE
To get the accessories_users table for specific accessory id number
Get-SnipeitAccessoryOwner -id 1
Thenselect assigned_pivot_id for userid you like check in
Get-SnipeitAccessoryOwner -assigned_pivot_id xxx
#>
function Reset-SnipeitAccessoryOwner() {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Medium"
)]
Param(
[parameter(mandatory = $true)]
[int]$assigned_pivot_id,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
$Parameters = @{
Api = "/api/v1/accessories/$assigned_pivot_id/checkin"
Method = 'Post'
Body = @{}
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
if ($PSCmdlet.ShouldProcess("ShouldProcess?")) {
$result = Invoke-SnipeitMethod @Parameters
}
# reset legacy sessions
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url -or $PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Reset-SnipeitPSLegacyApi
}
return $result
}

View file

@ -0,0 +1,84 @@
<#
.SYNOPSIS
Checkin asset
.DESCRIPTION
Checks asset in from current user/localtion/asset
.PARAMETER ID
Unique ID For asset to checkin
.PARAMETER status_id
Change asset status to
.PARAMETER location_id
Location id to change asset location to
.PARAMETER note
Notes about checkin
.PARAMETER url
Deprecated parameter, please use Connect-SnipeitPS instead. URL of Snipeit system.
.PARAMETER apiKey
Deprecated parameter, please use Connect-SnipeitPS instead. User's API Key for Snipeit.
.EXAMPLE
Remove-SnipeitUser -ID 44
#>
function Reset-SnipeitAssetOwner() {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Medium"
)]
Param(
[parameter(mandatory = $true)]
[int]$id,
[int]$status_id,
[int]$location_id,
[string]$note,
[parameter(mandatory = $false)]
[string]$url,
[parameter(mandatory = $false)]
[string]$apiKey
)
Test-SnipeitAlias -invocationName $MyInvocation.InvocationName -commandName $MyInvocation.MyCommand.Name
$Values = @{
"note" = $note
}
if ($PSBoundParameters.ContainsKey('location_id')) { $Values.Add("location_id", $location_id) }
if ($PSBoundParameters.ContainsKey('status_id')) { $Values.Add("status_id", $status_id) }
$Parameters = @{
Api = "/api/v1/hardware/$id/checkin"
Method = 'POST'
Body = $Values
}
if ($PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Write-Warning "-apiKey parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyApiKey -apiKey $apikey
}
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url) {
Write-Warning "-url parameter is deprecated, please use Connect-SnipeitPS instead."
Set-SnipeitPSLegacyUrl -url $url
}
if ($PSCmdlet.ShouldProcess("ShouldProcess?")) {
$result = Invoke-SnipeitMethod @Parameters
}
# reset legacy sessions
if ($PSBoundParameters.ContainsKey('url') -and '' -ne [string]$url -or $PSBoundParameters.ContainsKey('apiKey') -and '' -ne [string]$apiKey) {
Reset-SnipeitPSLegacyApi
}
return $result
}

View file

@ -1,65 +0,0 @@
function Set-Accessory() {
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Low"
)]
Param(
[parameter(mandatory = $true)]
[int]$id,
[ValidateLength(3, 255)]
[string]$name,
[int]$qty,
[ValidateRange(1, [int]::MaxValue)]
[int]$category_id,
[ValidateRange(1, [int]::MaxValue)]
[int]$company_id,
[ValidateRange(1, [int]::MaxValue)]
[int]$manufacturer_id,
[string]$order_number,
[float]$purchase_cost,
[datetime]$purchase_date,
[bool]$requestable,
[ValidateRange(1, [int]::MaxValue)]
[int]$supplier_id,
[parameter(mandatory = $true)]
[string]$url,
[parameter(mandatory = $true)]
[string]$apiKey
)
$Values = . Get-ParameterValue
if ($values['purchase_date']) {
$values['purchase_date'] = $values['purchase_date'].ToString("yyyy-MM-dd")
}
$Body = $Values | ConvertTo-Json;
$Parameters = @{
Uri = "$url/api/v1/accessories/$id"
Method = 'POST'
Body = $Body
Token = $apiKey
}
If ($PSCmdlet.ShouldProcess("ShouldProcess?")) {
$result = Invoke-SnipeitMethod @Parameters
}
$result
}

View file

@ -1,88 +0,0 @@
<#
.SYNOPSIS
Update a Asset in the Snipe-it asset system
.DESCRIPTION
Long description
.PARAMETER id
ID of 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
Set-Asset -id 1 -status_id 1 -model_id 1 -name "Machine1"
.EXAMPLE
Set-Asset -id 1 -status_id 1 -model_id 1 -name "Machine1" -CustomValues = @{ "_snipeit_os_5 = "Windows 10 Pro" }
#>
function Set-Asset()
{
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Medium"
)]
Param(
[parameter(mandatory = $true)]
[int]$id,
[string]$Name,
[string]$Status_id,
[string]$Model_id,
[parameter(mandatory = $true)]
[string]$url,
[parameter(mandatory = $true)]
[string]$apiKey,
[hashtable] $customfields
)
$Values = @{
"name" = $Name
"status_id" = $status_id
"model_id" = $model_id
}
if ($customfields)
{
$Values += $customfields
}
$Body = $Values | ConvertTo-Json;
$Parameters = @{
Uri = "$url/api/v1/hardware/$id"
Method = 'Put'
Body = $Body
Token = $apiKey
}
If ($PSCmdlet.ShouldProcess("ShouldProcess?"))
{
$result = Invoke-SnipeitMethod @Parameters
}
$result
}

View file

@ -1,52 +0,0 @@
function Set-AssetOwner()
{
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Medium"
)]
Param(
[parameter(mandatory = $true)]
[int]$id,
[parameter(mandatory = $true)]
[int]$assigned_id,
[ValidateSet("location","asset","user")]
[string] $checkout_to_type = "user",
[parameter(mandatory = $true)]
[string]$url,
[parameter(mandatory = $true)]
[string]$apiKey
)
$Values = @{
"id" = $assigned_id
"checkout_to_type" = $checkout_to_type
}
switch ($checkout_to_type)
{
'location' { $Values += @{ "assigned_location" = $assigned_id } }
'user' { $Values += @{ "assigned_user" = $assigned_id } }
'asset' { $Values += @{ "assigned_asset" = $assigned_id } }
}
$Body = $Values | ConvertTo-Json;
$Parameters = @{
Uri = "$url/api/v1/hardware/$id/checkout"
Method = 'POST'
Body = $Body
Token = $apiKey
}
If ($PSCmdlet.ShouldProcess("ShouldProcess?"))
{
$result = Invoke-SnipeitMethod @Parameters
}
return $result
}

View file

@ -1,41 +0,0 @@
function Set-Component()
{
[CmdletBinding(
SupportsShouldProcess = $true,
ConfirmImpact = "Medium"
)]
Param(
[parameter(mandatory = $true)]
[string]$id,
[parameter(mandatory = $true)]
[string]$qty,
[parameter(mandatory = $true)]
[string]$url,
[parameter(mandatory = $true)]
[string]$apiKey
)
$Values = @{
"qty" = $qty
}
$Body = $Values | ConvertTo-Json;
$Parameters = @{
Uri = "$url/api/v1/components/$component_id"
Method = 'Patch'
Body = $Body
Token = $apiKey
}
If ($PSCmdlet.ShouldProcess("ShouldProcess?"))
{
$result = Invoke-SnipeitMethod @Parameters
}
$result
}

View file

@ -1,50 +0,0 @@
function Set-Info {
[CmdletBinding()]
[System.Diagnostics.CodeAnalysis.SuppressMessage('PSUseShouldProcessForStateChangingFunctions', '')]
param (
[Uri]$url,
[String]$apiKey
)
BEGIN {
function Add-DefaultParameter {
param(
[Parameter(Mandatory = $true)]
[string]$Command,
[Parameter(Mandatory = $true)]
[string]$Parameter,
[Parameter(Mandatory = $true)]
$Value
)
PROCESS {
#Write-Verbose "[$($MyInvocation.MyCommand.Name)] Setting [$command : $parameter] = $value"
# Needs to set both global and module scope for the private functions:
# http://stackoverflow.com/questions/30427110/set-psdefaultparametersvalues-for-use-within-module-scope
$PSDefaultParameterValues["${command}:${parameter}"] = $Value
$global:PSDefaultParameterValues["${command}:${parameter}"] = $Value
}
}
$moduleCommands = Get-Command -Module SnipeitPS
}
PROCESS {
foreach ($command in $moduleCommands) {
$parameter = "url"
if ($url -and ($command.Parameters.Keys -contains $parameter)) {
Add-DefaultParameter -Command $command -Parameter $parameter -Value ($url.AbsoluteUri.TrimEnd('/'))
}
$parameter = "apiKey"
if ($apiKey -and ($command.Parameters.Keys -contains $parameter)) {
Add-DefaultParameter -Command $command -Parameter $parameter -Value $apiKey
}
}
}
}

Some files were not shown because too many files have changed in this diff Show more