Skip to content

Commit

Permalink
Merge pull request #159 from bepsoccer/dev
Browse files Browse the repository at this point in the history
New Function
  • Loading branch information
bepsoccer authored Jan 24, 2024
2 parents cbd7616 + f4edc59 commit e947c3d
Show file tree
Hide file tree
Showing 4 changed files with 255 additions and 13 deletions.
148 changes: 148 additions & 0 deletions docs/function-documentation/Set-VerkadaAccessDoorName.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
---
external help file: verkadaModule-help.xml
Module Name: verkadaModule
online version: https://github.com/bepsoccer/verkadaModule/blob/master/docs/function-documentation/Set-VerkadaAccessDoorName.md
schema: 2.0.0
---

# Set-VerkadaAccessDoorName

## SYNOPSIS
Sets a Verkada Access door name

## SYNTAX

```
Set-VerkadaAccessDoorName [-doorId] <String> [-doorName] <String> [[-org_id] <String>]
[[-x_verkada_token] <String>] [[-x_verkada_auth] <String>] [[-usr] <String>] [<CommonParameters>]
```

## DESCRIPTION
This function will set the name of a Verkada Access door using the doorId (UUID) in an organization.
The org_id and reqired tokens can be directly submitted as parameters, but is much easier to use Connect-Verkada to cache this information ahead of time and for subsequent commands.

## EXAMPLES

### EXAMPLE 1
```
Set-VerkadaAccessDoorName -doorId '60624bd4-2422-4d39-a401-4eba1a2f0960' -name 'My Door'
This will set the door name of doorId 60624bd4-2422-4d39-a401-4eba1a2f0960 to "My Door". The org_id and tokens will be populated from the cached created by Connect-Verkada.
```

### EXAMPLE 2
```
Set-VerkadaAccessDoorName -doorId '60624bd4-2422-4d39-a401-4eba1a2f0960' -name 'My Door' -org_id '7cd47706-f51b-4419-8675-3b9f0ce7c12d' -x_verkada_token 'a366ef47-2c20-4d35-a90a-10fd2aee113a' -x_verkada_auth 'auth-token-uuid-dscsdc'
This will set the door name of doorId 60624bd4-2422-4d39-a401-4eba1a2f0960 to "My Door". The org_id and tokens are submitted as parameters in the call.
```

### EXAMPLE 3
```
Get-VerkadaAccessDoors | ?{$_.name -eq "My Door"} | Set-VerkadaAccessDoorName -name 'My New Door'
This will rename the door currently named "My Door" to "My New Door". The org_id and tokens will be populated from the cached created by Connect-Verkada.
```

## PARAMETERS

### -doorId
The UUID of the door

```yaml
Type: String
Parameter Sets: (All)
Aliases:

Required: True
Position: 1
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False
```
### -doorName
The new name for the door who's name is being changed
```yaml
Type: String
Parameter Sets: (All)
Aliases: name

Required: True
Position: 2
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False
```
### -org_id
The UUID of the organization the user belongs to
```yaml
Type: String
Parameter Sets: (All)
Aliases:

Required: False
Position: 3
Default value: $Global:verkadaConnection.org_id
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False
```
### -x_verkada_token
The Verkada(CSRF) token of the user running the command
```yaml
Type: String
Parameter Sets: (All)
Aliases:

Required: False
Position: 4
Default value: $Global:verkadaConnection.csrfToken
Accept pipeline input: False
Accept wildcard characters: False
```
### -x_verkada_auth
The Verkada Auth(session auth) token of the user running the command
```yaml
Type: String
Parameter Sets: (All)
Aliases:

Required: False
Position: 5
Default value: $Global:verkadaConnection.userToken
Accept pipeline input: False
Accept wildcard characters: False
```
### -usr
The UUID of the user account making the request
```yaml
Type: String
Parameter Sets: (All)
Aliases:

Required: False
Position: 6
Default value: $Global:verkadaConnection.usr
Accept pipeline input: False
Accept wildcard characters: False
```
### CommonParameters
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
## INPUTS
## OUTPUTS
## NOTES
## RELATED LINKS
[https://github.com/bepsoccer/verkadaModule/blob/master/docs/function-documentation/Set-VerkadaAccessDoorName.md](https://github.com/bepsoccer/verkadaModule/blob/master/docs/function-documentation/Set-VerkadaAccessDoorName.md)
1 change: 1 addition & 0 deletions docs/reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@
* [Remove-VerkadaCommandUser](function-documentation/Remove-VerkadaCommandUser.md)
* [Remove-VerkadaLicensePlateOfInterest](function-documentation/Remove-VerkadaLicensePlateOfInterest.md)
* [Send-VerkadaPassInvite](function-documentation/Send-VerkadaPassInvite.md)
* [Set-VerkadaAccessDoorName](function-documentation/Set-VerkadaAccessDoorName.md)
* [Set-VerkadaAccessDoorScheduleOverride](function-documentation/Set-VerkadaAccessDoorScheduleOverride.md)
* [Set-VerkadaAccessUserBleUnlock](function-documentation/Set-VerkadaAccessUserBleUnlock.md)
* [Set-VerkadaAccessUserEmail](function-documentation/Set-VerkadaAccessUserEmail.md)
Expand Down
92 changes: 92 additions & 0 deletions verkadaModule/Public/Set-VerkadaAccessDoorName.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
function Set-VerkadaAccessDoorName{
<#
.SYNOPSIS
Sets a Verkada Access door name
.DESCRIPTION
This function will set the name of a Verkada Access door using the doorId (UUID) in an organization.
The org_id and reqired tokens can be directly submitted as parameters, but is much easier to use Connect-Verkada to cache this information ahead of time and for subsequent commands.
.LINK
https://github.com/bepsoccer/verkadaModule/blob/master/docs/function-documentation/Set-VerkadaAccessDoorName.md
.EXAMPLE
Set-VerkadaAccessDoorName -doorId '60624bd4-2422-4d39-a401-4eba1a2f0960' -name 'My Door'
This will set the door name of doorId 60624bd4-2422-4d39-a401-4eba1a2f0960 to "My Door". The org_id and tokens will be populated from the cached created by Connect-Verkada.
.EXAMPLE
Set-VerkadaAccessDoorName -doorId '60624bd4-2422-4d39-a401-4eba1a2f0960' -name 'My Door' -org_id '7cd47706-f51b-4419-8675-3b9f0ce7c12d' -x_verkada_token 'a366ef47-2c20-4d35-a90a-10fd2aee113a' -x_verkada_auth 'auth-token-uuid-dscsdc'
This will set the door name of doorId 60624bd4-2422-4d39-a401-4eba1a2f0960 to "My Door". The org_id and tokens are submitted as parameters in the call.
.EXAMPLE
Get-VerkadaAccessDoors | ?{$_.name -eq "My Door"} | Set-VerkadaAccessDoorName -name 'My New Door'
This will rename the door currently named "My Door" to "My New Door". The org_id and tokens will be populated from the cached created by Connect-Verkada.
#>
[CmdletBinding(PositionalBinding = $true)]
[Alias("Set-VrkdaAcDrNm","st-VrkdaAcDrNm")]
param (
#The UUID of the door
[Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)]
[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]$doorId,
#The new name for the door who's name is being changed
[Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)]
[Alias("name")]
[String]$doorName,
#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
)

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!"}

$url = "https://vcerberus.command.verkada.com/door/set_metadata"
} #end begin

process {
$body = @{
"doorId" = $doorId
"name" = $doorName
}

try {
$response = Invoke-VerkadaCommandCall $url $org_id $body -x_verkada_token $x_verkada_token -x_verkada_auth $x_verkada_auth -usr $usr -Method 'POST' | Select-Object -ExpandProperty doors

return $response
}
catch [Microsoft.PowerShell.Commands.HttpResponseException] {
$err = $_.ErrorDetails | ConvertFrom-Json
$errorMes = $_ | Convertto-Json -WarningAction SilentlyContinue
$err | Add-Member -NotePropertyName StatusCode -NotePropertyValue (($errorMes | ConvertFrom-Json -Depth 100 -WarningAction SilentlyContinue).Exception.Response.StatusCode) -Force

Write-Host "$doorId not renamed because: $($err.StatusCode) - $($err.message)" -ForegroundColor Red
Return
}
} #end process

end {

} #end end
} #end function
27 changes: 14 additions & 13 deletions verkadaModule/verkadaModule.psd1
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#
# Generated by: Brad Parker
#
# Generated on: 01/21/2024
# Generated on: 01/24/2024
#

@{
Expand All @@ -12,7 +12,7 @@
RootModule = 'verkadaModule.psm1'

# Version number of this module.
ModuleVersion = '0.6.13'
ModuleVersion = '0.6.14'

# Supported PSEditions
CompatiblePSEditions = 'Desktop', 'Core'
Expand Down Expand Up @@ -101,6 +101,7 @@ FunctionsToExport = 'Add-VerkadaAccessBadgeToUser', 'Add-VerkadaAccessGroup',
'Remove-VerkadaAccessUserRemoteUnlock',
'Remove-VerkadaCameraArchive', 'Remove-VerkadaCommandUser',
'Remove-VerkadaLicensePlateOfInterest', 'Send-VerkadaPassInvite',
'Set-VerkadaAccessDoorName',
'Set-VerkadaAccessDoorScheduleOverride',
'Set-VerkadaAccessUserBleUnlock', 'Set-VerkadaAccessUserEmail',
'Set-VerkadaAccessUserEmployementDetail',
Expand Down Expand Up @@ -141,17 +142,17 @@ AliasesToExport = 'a-VrkdaAcGrp', 'Add-VrkdaAcGrp', 'a-VrkdaAcUsrCrd',
'Remove-VrkdaAcUsrRmtUnlk', 'rm-VrkdaAcUsrRmtUnlk',
'Remove-VrkdaCamArchv', 'rm-VrkdaCamArchv', 'Remove-VrkdaCmdUsr',
'rm-VrkdaCmdUsr', 'Remove-VerkadaLPoI', 'sd-VrkdaPssInv',
'Send-VrkdaPssInv', 's-VrkdAcDrSchOvrd', 'Set-VrkdAcDrSchOvrd',
'Set-VrkdaAcUsrBtUnlk', 'st-VrkdaAcUsrBtUnlk', 'Set-VrkdaAcUsrEndDt',
'st-VrkdaAcUsrEndDt', 'Set-VrkdaAcUsrEntryCo', 'st-VrkdaAcUsrEntryCo',
'Set-VrkdaAcUsrGrp', 'st-VrkdaAcUsrGrp', 's-VrkdaAcUsrPrflPic',
'Set-VrkdaAcUsrPrflPic', 'Set-VrkdaAcUsrRmtUnlk',
'st-VrkdaAcUsrRmtUnlk', 'Set-VrkdaAcUsrStrtDt', 'st-VrkdaAcUsrStrtDt',
's-VrkdAlrmBr31Setgs', 's-VrkdAlrmDrSenSetgs',
'Set-VrkdAlrmDrSenSetgs', 's-VrkdAlrmBr33Setgs',
's-VrkdAlrmPancSetgs', 'Set-VrkdAlrmPancSetgs', 'Set-VrkdaCmdUsr',
'st-VrkdaCmdUsr', 'Set-VerkadaLPoI', 't-VrkdaAcPrflPicUrl',
'uk-VrkdAcDoor', 'Unlock-VrkdAcDoor'
'Send-VrkdaPssInv', 'Set-VrkdaAcDrNm', 'st-VrkdaAcDrNm',
's-VrkdAcDrSchOvrd', 'Set-VrkdAcDrSchOvrd', 'Set-VrkdaAcUsrBtUnlk',
'st-VrkdaAcUsrBtUnlk', 'Set-VrkdaAcUsrEndDt', 'st-VrkdaAcUsrEndDt',
'Set-VrkdaAcUsrEntryCo', 'st-VrkdaAcUsrEntryCo', 'Set-VrkdaAcUsrGrp',
'st-VrkdaAcUsrGrp', 's-VrkdaAcUsrPrflPic', 'Set-VrkdaAcUsrPrflPic',
'Set-VrkdaAcUsrRmtUnlk', 'st-VrkdaAcUsrRmtUnlk',
'Set-VrkdaAcUsrStrtDt', 'st-VrkdaAcUsrStrtDt', 's-VrkdAlrmBr31Setgs',
's-VrkdAlrmDrSenSetgs', 'Set-VrkdAlrmDrSenSetgs',
's-VrkdAlrmBr33Setgs', 's-VrkdAlrmPancSetgs', 'Set-VrkdAlrmPancSetgs',
'Set-VrkdaCmdUsr', 'st-VrkdaCmdUsr', 'Set-VerkadaLPoI',
't-VrkdaAcPrflPicUrl', 'uk-VrkdAcDoor', 'Unlock-VrkdAcDoor'

# DSC resources to export from this module
# DscResourcesToExport = @()
Expand Down

0 comments on commit e947c3d

Please sign in to comment.