Public/Get-VerkadaCameraGroup.ps1
function Get-VerkadaCameraGroup { <# .SYNOPSIS Gets all the camera sites in an organization .DESCRIPTION Used to retrieve all the camera sites in an organization or just the one with the specified name. This function takes pipeline paramters making it easy to add mulitple sites via csv with the desired named out of the gate. .LINK https://github.com/bepsoccer/verkadaModule/blob/master/docs/function-documentation/Get-VerkadaCameraGroup.md .EXAMPLE Get-VerkadaCameraGroup This will retrieve all the sites in an organization. The org_id and tokens will be populated from the cached created by Connect-Verkada. .EXAMPLE Get-VerkadaCameraGroup -name 'My New Sub-Site' This will retrieve the site with the name "My New Sub-Site". The org_id and tokens will be populated from the cached created by Connect-Verkada. .EXAMPLE Get-VerkadaCameraGroup -name 'My New Site' -org_id 'deds343-uuid-of-org' -x_verkada_token 'sd78ds-uuid-of-verkada-token' -x_verkada_auth 'auth-token-uuid-dscsdc' This will retrieve the site with the name "My New Sub-Site". The org_id and tokens are submitted as parameters in the call. #> [CmdletBinding(PositionalBinding = $true)] [Alias("Get-VerkadaCameraSite")] param ( #The name of the site or sub-site being added [Parameter(Position = 0)] [String]$name, #The UUID of the organization the user belongs to [Parameter(ValueFromPipelineByPropertyName = $true)] [ValidateNotNullOrEmpty()] [ValidatePattern('^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$')] [String]$org_id = $Global:verkadaConnection.org_id, #The Verkada(CSRF) token of the user running the command [Parameter()] [ValidateNotNullOrEmpty()] [ValidatePattern('^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$')] [string]$x_verkada_token = $Global:verkadaConnection.csrfToken, #The Verkada Auth(session auth) token of the user running the command [Parameter()] [ValidateNotNullOrEmpty()] [string]$x_verkada_auth = $Global:verkadaConnection.userToken, #The UUID of the user account making the request [Parameter()] [ValidateNotNullOrEmpty()] [ValidatePattern('^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$')] [string]$usr = $Global:verkadaConnection.usr, #Switch to force site refresh [Parameter()] [switch]$refresh ) begin { #parameter validation if ([string]::IsNullOrEmpty($org_id)) {throw "org_id is missing but is required!"} if ([string]::IsNullOrEmpty($x_verkada_token)) {throw "x_verkada_token is missing but is required!"} if ([string]::IsNullOrEmpty($x_verkada_auth)) {throw "x_verkada_auth is missing but is required!"} if ([string]::IsNullOrEmpty($usr)) {throw "usr is missing but is required!"} } process { if(!($Global:verkadaCameraGroups) -or $refresh.IsPresent){ Invoke-VerkadaCommandInit | Out-Null } $cameraGroups = $Global:verkadaCameraGroups if (!([string]::IsNullOrEmpty($name))) { $cameraGroups = $cameraGroups | Where-Object {$_.name -eq $name} } return $cameraGroups } end { } } |