Functions/Invitations/New-RAUserInvitation.ps1
function New-RAUserInvitation { [CmdletBinding( SupportsShouldProcess, ConfirmImpact = 'Medium' )] [OutputType([string])] param ( [Parameter( Mandatory, HelpMessage = 'Enter a hashtable of users to invite. Name and emailaddress are required fields' )] [HashTable[]]$usersToInvite, [Parameter( HelpMessage = 'Set an initial status for the users' )] [ValidateSet("Deactivated")] $initialStatus = "Deactivated", [Parameter( HelpMessage = 'Set an expirationtime for the invitation' )] $invitationExpirationTime = 0 ) begin { } process { $InvitationBody = @{ "usersToInvite" = $usersToInvite "initialStatus" = $initialStatus "invitationExpirationTime" = $invitationExpirationTime } $url = "https://$($Script:ApiURL)/v2-edge/invitations/user-invitations" $restCall = @{ 'Method' = 'Post' 'Uri' = $url 'Body' = ($InvitationBody | ConvertTo-Json -Depth 3) 'WebSession' = $Script:WebSession 'ContentType' = $Script:ContentType } if ($PSCmdlet.ShouldProcess('Remote Access User Invitation', 'Creating a new invitation')) { $result = Invoke-RestMethod @restCall } } end { Write-Output -InputObject $result } } |