public/New-VSATenantRoleType.ps1
function New-VSATenantRoleType { <# .Synopsis Adds a roletype. .DESCRIPTION Creates a new roletype. Takes either persistent or non-persistent connection information. .PARAMETER VSAConnection Specifies existing non-persistent VSAConnection. .PARAMETER URISuffix Specifies URI suffix if it differs from the default. .PARAMETER Name Specifies the Role Name. .PARAMETER Description Specifies the Role Description. .PARAMETER AdminGroupType Specifies Id of Admin Group Type. .PARAMETER HasUserData Specifies if Has User Data. .EXAMPLE New-VSATenantRoleType -Name 'A New Role' .EXAMPLE New-VSATenantRoleType -Name 'A New Role' -VSAConnection $connection .INPUTS Accepts piped non-persistent VSAConnection .OUTPUTS True if creation was successful. #> [CmdletBinding()] param ( [parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] [ValidateNotNull()] [VSAConnection] $VSAConnection, [parameter(DontShow, Mandatory=$false, ValueFromPipelineByPropertyName=$true)] [ValidateNotNullOrEmpty()] [string] $URISuffix = 'api/v1.0/tenantmanagement/roletypes', [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] [ValidateNotNullOrEmpty()] [string] $Name, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] [ValidateScript({ if( (-not [string]::IsNullOrEmpty($_)) -and ($_ -notmatch "^\d+$") ) { throw "Non-numeric value" } return $true })] [string] $Status, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] [ValidateNotNullOrEmpty()] [string] $Description, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] [ValidateScript({ if( (-not [string]::IsNullOrEmpty($_)) -and ($_ -notmatch "^\d+$") ) { throw "Non-numeric Id" } return $true })] [string] $AdminGroupType, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] [ValidateSet("Y", "N")] [string] $HasUserData ) [hashtable] $AuxParameters = @{} if($VSAConnection) {$AuxParameters.Add('VSAConnection', $VSAConnection)} [int] $Zzvalsid = try {(Get-VSATenantRoletypesFunclists @AuxParameters | Select-Object -ExpandProperty Zzvalsid | Measure-Object -Maximum | Select-Object -ExpandProperty Maximum) + 1} catch {throw $_} [string] $Zzvals = "zzvals$Zzvalsid" $BodyHT = [ordered] @{ Name = $Name Zzvalsid = $Zzvalsid Zzvals = $Zzvals } if ( -not [string]::IsNullOrEmpty($Status)) {$BodyHT.Add('Status', $Status) } if ( -not [string]::IsNullOrEmpty($Description)) {$BodyHT.Add('Description', $Description) } if ( -not [string]::IsNullOrEmpty($AdminGroupType)) {$BodyHT.Add('AdminGroupType', $AdminGroupType) } if ( -not [string]::IsNullOrEmpty($HasUserData)) {$BodyHT.Add('HasUserData', $HasUserData) } [string]$Body = $BodyHT| ConvertTo-Json [hashtable]$Params =@{ URISuffix = $URISuffix Method = 'POST' Body = $Body } if($VSAConnection) {$Params.Add('VSAConnection', $VSAConnection)} return Invoke-VSARestMethod @Params } New-Alias -Name Add-VSATenantRoleType -Value New-VSATenantRoleType Export-ModuleMember -Function New-VSATenantRoleType -Alias Add-VSATenantRoleType |