AVIREST.psm1

using namespace System.Collections
using namespace System.Collections.Generic
using namespace System.Management.Automation
using namespace System.Management.Automation.Language

Class DynamicParameterConfig {
    [string]$Name
    [type]$Type
    [bool]$Mandatory

    DynamicParameterConfig ($Name, $Type, $Mandatory) {
        $this.Name = $Name
        $this.Type = $Type
        $this.Mandatory = $Mandatory
    }
}
# Private
Function Invoke-AVIRestParameters {
    Param(
        [Parameter(Mandatory = $false)]
        $ContentType = 'application/json',
        [Parameter(Mandatory = $false)]
        $TimeOutSec = 180,
        [Parameter(Mandatory = $false)]
        $NoProxy = $true,
        [Parameter(Mandatory = $false)]
        $StatusCodeVariable = 'statusCode',
        [Parameter(Mandatory = $false)]
        $SkipHttpErrorCheck = $true,
        [Parameter(Mandatory = $false)]
        $SkipHeaderValidation = $true,
        [Parameter(Mandatory = $false)]
        $SkipCertificateCheck = $true,
        [Parameter(Mandatory = $false)]
        $HttpVersion = '2.0'
    )
    @{
        ContentType = $ContentType
        TimeoutSec = $TimeoutSec
        NoProxy = $NoProxy
        StatusCodeVariable = $StatusCodeVariable
        SkipHttpErrorCheck = $SkipHttpErrorCheck
        SkipHeaderValidation = $SkipHeaderValidation
        SkipCertificateCheck = $SkipCertificateCheck
        HttpVersion = $HttpVersion
        ResponseHeadersVariable = 'responseHeader'
    }
}
Function Get-AVIRestToken {
    [CmdletBinding()]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0)]
        [ValidateNotNullOrEmpty()]
        [string]$Server,
        [Parameter(Mandatory=$true)]
        [ValidateNotNullOrEmpty()]
        [hashtable]$Body,
        [Parameter(Mandatory=$false)]
        [string]$APIRev
    )
    Process {
        $endpoint = '/login'
        $uriRequest = [System.UriBuilder]::new("https",$Server,443,$endpoint)
        $loginJSON = $Body | ConvertTo-Json -Compress
        $loginSplat = @{
            Method = 'POST'
            URI = $uriRequest.URI
            Body = $loginJSON
            SessionVariable = 'session'
        }
        switch ($AVIStdParams.Keys) {  # need for reconnect
            'URI' {$AVIStdParams.Remove('URI')}
            'Body' {$AVIStdParams.Remove('Body')}
        }
        Write-Verbose "$($uriRequest.URI)"
        $global:AVIReply = $null
        $global:AVIReply = Invoke-RestMethod @loginSplat @AVIStdParams
        if ($statusCode -eq 200) {
            $global:AVIServer = $Server
            $global:AVIRev = $APIRev
            $setCookieList = $responseHeader.'Set-Cookie'
            $cookie = $setCookieList[0]
            foreach ($cookie in $setCookieList){
                $splitCookie = $cookie -split '=|; ',5
                $key = ${splitCookie}?[0]
                switch ($key) {
                    'csrftoken' {
                        $session.Headers.'X-CSRFToken' = ${splitCookie}?[1]
                    }
                    default {
                        $session.Headers.$key = ${splitCookie}?[1]
                    }
                }
                $expkey = '{0}-{1}' -f $key,${splitCookie}?[2]
                $session.Headers.$expkey = ${splitCookie}?[3]
            }
            $session.Headers.'x-avi-version' = $global:AVIReply.version.Version
            $session.Headers.Referer = 'https://' + $global:AVIServer
            $AVISessionParam.WebSession = $session
        }
        else {
            Write-Warning "HTTP status [$statuscode]"
        }
        Write-Verbose "$AVIServer"
        $global:AVIReply
    }
}
Function Invoke-AVIRest {
    [CmdletBinding()]
    Param (
        [Parameter(Mandatory=$true)]
        [ValidateSet('GET','PUT','PATCH','POST','DELETE')]
        $Method,
        [Parameter(Mandatory=$true)]
        [ValidateNotNullOrEmpty()]
        [string]$EndPoint,
        [Parameter(Mandatory=$false)]
        [ValidateNotNullOrEmpty()]
        [ValidateScript({Test-JSON $_})]
        [string]$Body,
        [Parameter(Mandatory=$false)]
        [ValidateNotNullOrEmpty()]
        [hashtable]$Query,
        [Parameter(Mandatory=$false)]
        [ValidateNotNullOrEmpty()]
        [string]$APIRev,
        [Parameter(Mandatory=$false)]
        [ValidateNotNullOrEmpty()]
        [string]$OutputType
    )
    $ErrorActionPreference = 'Stop'
    Try {
        # Check connection
        if ($null -eq $AVISessionParam.WebSession -or $null -eq $AVIServer) {
            Return 'Not connected to AVI API'
        }
        $global:AVIStdParams = Invoke-AVIRestParameters

        # Check expiration
        if ((Get-Date).AddMinutes(+5) -ge [datetime]$AVISessionParam.WebSession.Headers.'sessionid-expires') {
            $AVISessionParam.WebSession = Update-AVIRestToken
        }

        $allResults = [List[PSObject]]::New()
        if ($Method -eq 'GET') {
            $queryParam = $query ? $query.clone() : @{}
            if ($null -ne $query.page_size -and $query.page_size -le 200) {
                $queryParam.page_size = $query.page_size}
            else {
                $queryParam.page_size = 200
                $queryParam.page = 1
                $useTotal = $true
            }
        }
        :pagination do {
            $uriRequest = [System.UriBuilder]::new("https",$AVIServer,443,$endpoint)
            if ($Method -eq 'GET' -and $null -eq $global:AVIReply.next) {
                $queryString = [System.Web.HttpUtility]::ParseQueryString([String]::Empty)
                foreach ($key in $queryParam.Keys) {$queryString.Add($key, $queryParam.$key)}
                $uriRequest.Query = $queryString.ToString()
            }
            $AVIStdParams.URI = if ($null -ne $global:AVIReply.next) {$global:AVIReply.next}
            else {$uriRequest.Uri}
            Write-Verbose "Calling [$method] on URI: $($AVIStdParams.URI.OriginalString)"
            If ($null -ne $body) {$AVIStdParams.Body = $body}
            else {
                if ($AVIStdParams.ContainsKey('Body')) {$AVIStdParams.Remove('Body')}
            }

            $global:AVIReply,$statusCode = $null
            $global:AVIReply = Invoke-RestMethod -Method $Method @AVIStdParams @AVISessionParam
            $global:AVIResponseHeader = $responseHeader
            switch -Regex ($statusCode) {
                '20[0-2]' {
                    if ($global:AVIReply.GetType().Name -eq 'String' -and [string]::IsNullOrEmpty($global:AVIReply)) {
                        break pagination
                    }
                    if ($null -ne $global:AVIReply.results) {
                        $global:AVIReply.results | Foreach {$allResults.Add($_)}
                    }
                    else {
                        $global:AVIReply | Foreach {$allResults.Add($_)}
                    }
                    if ($null -eq $global:AVIReply.next -or $global:AVIReply.count -eq 0) {break pagination} # some don't have any
                    # Pagination
                    # $queryParam.skip = $queryParam.skip + $queryParam.limit
                    $paginationComplete = $useTotal ? $global:AVIReply.count : $allResults.count
                    # continue pagination
                }
                204 {
                    $global:AVIReply
                    break pagination
                }
                Default {
                    [PSCustomObject]@{
                        HTTP_Response = [System.Net.HttpStatusCode]$statusCode
                        API_ErrorMesg = $global:AVIReply
                        HTTP_StatusCode = $statusCode
                    }
                    break pagination
                }
            }
        }
        until ($allResults.count -eq $paginationComplete)
        if ($null -ne $PSBoundParameters.OutputType) {
            $allResults | Foreach {$_.PSObject.TypeNames.Insert(0,$PSBoundParameters.OutputType)}
        }
        $allResults | Foreach {$_}
    }
    Catch {
        $PSCmdlet.ThrowTerminatingError($PSItem)
    }
}
Function Add-AVIRestParams ($splat, $Parameters, $ParameterSetName) {
    switch -Wildcard ($ParameterSetName) {
        # RESERVERED Parameterset Names - Should be filter by default to support paging (if needed)
        'Body' {
            $splat.Body = @{}
            switch -Regex ($Parameters.Keys) {
                'Ids' {$splat.Body.Add('ids',@($Parameters.Ids))}
                'Name' {$splat.Body.Add('names',@($Parameters.Name))}
                'Type' {$splat.Body.Add('types',@($Parameters.Type))}
            }
            $splat.Body =  $splat.Body | ConvertTo-JSON -Compress -Depth 3
            Return
        }
        'Uuid' {
            $queryParams = 'JoinResource|Fields|First|Skip|Created'
            if ($Parameters.Keys -match $queryParams) {
                $splat.Query  = @{}
                switch -Regex ($Parameters.Keys) {
                    'JoinResource' {$splat.Query.Add('join_subresources',$Parameters.JoinResource)}
                    'Fields' {$splat.Query.Add('fields',$Parameters.Fields)}
                    'First' {
                        $splat.Query.Add('page',1)
                        $splat.Query.Add('page_size',$Parameters.First)
                    }
                    'Skip' {$splat.Query.Add('skip',$Parameters.Skip)}
                }
            }
            break
        } 
        'Query' {
            $splat.Query  = $Parameters.Query
            break
        }
        'Filter*' {
            $queryParams = 'Uuid|Name|Fields|First|Skip|Created'
            if ($Parameters.Keys -match $queryParams) {
                $splat.Query  = @{}
                switch -Regex ($Parameters.Keys) {
                    # 'Uuid' {$splat.Query.Add('idFilter',$Parameters.Id)}
                    'Name' {$splat.Query.Add('name',$Parameters.Name)}
                    'Fields' {$splat.Query.Add('fields',$Parameters.Type)}
                    'First' {
                        $splat.Query.Add('page',1)
                        $splat.Query.Add('page_size',$Parameters.First)
                    }
                    'Skip' {$splat.Query.Add('skip',$Parameters.Skip)}
                    # 'CreatedAfter' {$splat.Query.Add('createdAfterFilter',$Parameters.CreatedAfter.ToString('r'))} # http datetime format
                    # 'CreatedBefore' {$splat.Query.Add('createdBeforeFilter',$Parameters.CreatedBefore.ToString('r'))} # http datetime format
                }
            }
            break
        }
    }
}
Function New-RuntimeDefinedParameter {
    Param (
        [Parameter(Mandatory=$true)]
        [string[]]$ParameterSetName,
        [Parameter(Mandatory=$true,
            HelpMessage = 'Provide a hashtable where key is the dynamic parameter and value is the type')]
        [DynamicParameterConfig]$DynamicParameterConfig,
        [ValidateNotNullorEmpty()]
        [Parameter(Mandatory=$false)]
        [pscustomobject]$StringArgumentCompleter
    )
    $attributeCollectionMandatory = [ObjectModel.Collection[System.Attribute]]::new()
    Foreach ($paramset in $ParameterSetName) {
        $attributeCollectionMandatory.Add(
            [ParameterAttribute]@{
                ParameterSetName = $paramset
                Mandatory = $ParamConfig.Mandatory
            }
        )
        Switch ($PSBoundParameters.Keys) {
            StringArgumentCompleter {
                $attributeCollectionMandatory.Add([ArgumentCompletionsAttribute]::new($StringArgumentCompleter))
            }
        }
    }
    [RuntimeDefinedParameter]::new(
        $ParamConfig.Name, $ParamConfig.Type, $attributeCollectionMandatory
    )
}
Function Out-RuntimeDefinedParameterDict {
    Param (
        [Parameter(Mandatory=$true,ValueFromPipeline = $true)]
        [RuntimeDefinedParameter[]]$RuntimeDef
    )
    Begin {
        $paramDictionary = [RuntimeDefinedParameterDictionary]::new()
    }
    Process {
        $RuntimeDef | Foreach {$paramDictionary.Add($_.Name, $_)}
    }
    End {
        return $paramDictionary
    }
}
Function Get-AVIFunctionTemplate ($method,$template,$jsonData) {
    $title = $jsonData.info.title
    $apiName = Get-ApiPathName $method.ApiPath
    $apiPath = $method.ApiPath -replace '{uuid}','${uuid}'
    $template -replace '\{0\}',$apiName -replace '\{1\}',$apiPath -replace '\{3\}',$apiVersion -replace '\{4\}',$title
}
Function Get-ApiPathName ($ApiPath) {
    $pathSegments = $apiPath -split '^/|/|{uuid}|-|/$' | Where {-not [string]::IsNullOrEmpty($_)}
    $segmentList = foreach ($segment in $pathSegments) {
        $segment.Substring(0,1).ToUpper() +  $segment.Substring(1)
    }
    $segmentList -join ''
}
Function New-AVISwaggerJsonObj {
    Param(
        [switch]$MinRequired,
        [hashtable]$Definitions,
        [string]$Path,
        [switch]$Nested
    )
    $PropertyDef = $Definitions.$Path.properties
    $RequiredPropertyDef =  $Definitions.$Path.required
    $propertyList = [ordered]@{}
    if ($PSBoundParameters.minRequired.isPresent -and -not $PSBoundParameters.Nested.isPresent) {
        foreach ($key in $PropertyDef.Keys) {
            if ($RequiredPropertyDef -contains $key) {
                $propertyList.Add($key,$PropertyDef.$key)
            }
        }
    }
    else {$propertyList = $PropertyDef}

    $obj = [ordered]@{}
    foreach ($key in $propertyList.Keys | Sort) {
        $value = $propertyList.$key
        if ($value.readOnly -eq $true) {continue}
        if ($null -ne $value.type) {
            switch ($value.type) {
                string {
                    [string]$obj.$key = $value.default ? $value.default : ''
                }
                boolean {
                    [bool]$obj.$key = $value.default ? $value.default : $null
                }
                integer {
                    [int]$obj.$key = $value.default ? $value.default : $null
                }
                array {
                    $obj.$key = [List[object]]::New()
                    if ($null -ne $value.items) {
                        $ref,$nestedObj = $null
                        $ref = $value.items.'$ref' -replace [regex]::Escape('#/definitions/')
                        $nestedObj = New-AVISwaggerJsonObj -Definitions $Definitions -Path $ref -Nested
                        $obj.$key.Add($nestedObj)
                    }
                }
                default {
                    
                }
            }
        }
        else {
            $obj.$key = @{}
            $ref,$nestedObj = $null
            $ref = $value.'$ref' -replace [regex]::Escape('#/definitions/')
            # $refPropertyDef = $Definitions.$ref.properties
            # if ($PSBoundParameters.minRequired.isPresent) {
            # $nestedObj = New-AVISwaggerJsonObj -Definitions $Definitions -Path $ref -MinRequired -Nested
            # }
            # else {
            # $nestedObj = New-AVISwaggerJsonObj -Definitions $Definitions -Path $ref -Nested
            # }
            $nestedObj = New-AVISwaggerJsonObj -Definitions $Definitions -Path $ref -Nested
            $obj.$key = $nestedObj
        }
    }
    if ($PSBoundParameters.Nested.isPresent) {
        [pscustomobject]$obj
    }
    else {
        [pscustomobject]$obj | ConvertTo-JSON -Depth 100
    }
}
Function New-AviRestFunctionExport ($method,$methodList,$templateFunction,$jsonData,$ExportList) {
    # $method = $methodList[-1]
    foreach ($methodObj in $methodList) {
        # New
        $resetFunctionTemplate = $templateFunction.psobject.Copy()
        $functionTemplate = Get-AVIFunctionTemplate $methodObj $resetFunctionTemplate $jsonData
        $functionTemplate
        $apiName = Get-ApiPathName $method.ApiPath
        $exportName = "$method-AVIRest$apiName"
        $ExportList.Add($exportName)
    }
}
Function New-AviRestFunctionParamExport ($methodList,$templateFunction,$jsonData,$ExportList) {
    # $method = $methodList[-1]
    foreach ($method in $methodList) {
        # New Object
        $apiName = Get-ApiPathName $method.ApiPath
        $endpoint = $method.ApiPath -split '/',-2 | Select -Last 1
        $endpoint = $endpoint -replace '-'
        $definitionList = $jsonData.definitions
        $endpointKey = $null
        $endpointKey = Switch ($definitionList.keys) {
            {$_ -match $endpoint} {$_}
        }
        if ($null -ne $endpointKey) {
            $fullObj = New-AVISwaggerJsonObj -Definitions $definitionList -Path $endpointKey
            $minObj = New-AVISwaggerJsonObj -Definitions $definitionList -Path $endpointKey -MinRequired
            $resetTemplateFunction = $templateFunction.psobject.Copy()
            $objectFunction = $resetTemplateFunction -replace '\{0\}',$apiName -replace '\{1\}',$minObj -replace '\{2\}',$fullObj -replace '\{3\}',$apiVersion -replace '\{4\}',$title
            $exportName = "New-AVIRest{0}Object" -f $apiName
            $ExportList.Add($exportName)
            $objectFunction
        }
    }
}

# Public
Function Connect-AVIRest {
    [CmdletBinding(DefaultParameterSetName = 'Username')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0)]
        [Parameter(ParameterSetName = 'Username')]
        [Parameter(ParameterSetName = 'Credential')]
        [ValidateNotNullOrEmpty()]
        [string]$Server,
        [Parameter(
            Mandatory=$true,
            ParameterSetName = 'Username')]
        [ValidateNotNullOrEmpty()]
        [string]$Username,
        [Parameter(
            Mandatory=$true,
            ParameterSetName = 'Username')]
        [ValidateNotNullOrEmpty()]
        [Securestring]$Password,
        [Parameter(
            Mandatory=$true,
            Position=1,
            ParameterSetName = 'Credential')]
        [ValidateNotNullOrEmpty()]
        [PSCredential]$Credential
    )
    # DynamicParam {
    # $RuntimeDefList = [List[RuntimeDefinedParameter]]::New()
    # $paramConfig = [DynamicParameterConfig]::New('APIRev', [string[]], $true)
    # $runtimeParamConfig = @{
    # ParameterSetName = 'Username','Credential'
    # DynamicParameterConfig = $paramConfig
    # StringArgumentCompleter = $global:AVIapiRevsionList
    # }
    # $RuntimeDefList.Add((New-RuntimeDefinedParameter @runtimeParamConfig))
    # $RuntimeDefList | Out-RuntimeDefinedParameterDict
    # }
    Process {
        $global:AVIStdParams = Invoke-AVIRestParameters
        $global:AVISessionParam = [hashtable]::Synchronized(@{
            WebSession = $null
        })
        Switch ($PSCmdlet.ParameterSetName) {
            'Credential' {
                $Username = $Credential.UserName
                [string]$pswd = $Credential.GetNetworkCredential().Password
            }
            'Username' {
                [string]$pswd = $Password | ConvertFrom-SecureString $Password -AsPlainText
            }
        }
        $Body = @{
            'username' = $Username # case sensitive property !!!!!!!!!
            'password' = $pswd # case sensitive property !!!!!!!!!!!!
        }
        $global:AVILbServerInfo = Get-AVIRestToken -Server $Server -Body $Body -APIRev $APIRev
        $global:AVILbServerInfo
    }
}
Function Disconnect-AVIRest {
    $endpoint = "/logout"
    $method = 'POST'
    Invoke-AVIRest -Method $method -Endpoint $endpoint -EA SilentlyContinue
    $global:AVISessionParam.WebSession = $null
    $global:AVIServer = $null
}
Function Get-AVIRestRef {
    [CmdletBinding(
    DefaultParameterSetName = 'Ref',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Position=0,
            Mandatory=$true,
            ParameterSetName = 'Ref',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [pscustomobject]$AviLbObject,
        [Switch]$RefOnly
    )
    $refList = $AviLbObject | Get-Member -MemberType NoteProperty | Where Name -match '_ref(s)*$' | Select -ExpandProperty Name
    If ($null -eq $refList) {return $Object}
    # $refProperty = $refList[0]
    $propertyList = [List[string]]::New($refList.count)
    :refList foreach ($refProperty in $refList) {
        $refUrl = $AviLbObject.$refProperty
        $splat = @{
            Method = 'GET'
            Endpoint = ($refUrl -split '(/api)' | Select -Skip 1) -join ''
        }
        $refReply = $null
        $refReply = Invoke-AVIRest @splat
        if ($null -eq $refReply -or $null -ne $refReply.API_ErrorMesg) {
            continue refList
        }
        $propertyName = $null
        $propertyName = $refProperty -replace '_ref'
        $propertyList.Add($propertyName)
        $AviLbObject | Add-Member -MemberType NoteProperty -Name $propertyName -Value $refReply -Force
    }
    if ($PSBoundParameters.RefOnly.isPresent) {
        # $joinProperty = $propertyList -join ','
        $AviLbObject | Select $propertyList | Foreach {$_.PSObject.TypeNames.Insert(0,'AVIRestRef')}
    }
    else {
        $AviLbObject | Foreach {$_.PSObject.TypeNames.Insert(0,'AVIRestRef')}
    }
}
Function Get-AVIRestRefObject {
    [CmdletBinding(
    DefaultParameterSetName = 'Ref',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestRef')]$Ref,
        [Switch]$RefOnly
    )
    $refList = $AviLbObject | Get-Member -MemberType NoteProperty | Where Name -match '_ref(s)*$' | Select -ExpandProperty Name
    If ($null -eq $refList) {return $Object}
    # $refProperty = $refList[0]
    $propertyList = [List[string]]::New($refList.count)
    :refList foreach ($refProperty in $refList) {
        $refUrl = $AviLbObject.$refProperty
        $splat = @{
            Method = 'GET'
            Endpoint = ($refUrl -split '(/api)' | Select -Skip 1) -join ''
        }
        $refReply = $null
        $refReply = Invoke-AVIRest @splat
        if ($null -eq $refReply -or $null -ne $refReply.API_ErrorMesg) {
            continue refList
        }
        $propertyName = $null
        $propertyName = $refProperty -replace '_ref'
        $propertyList.Add($propertyName)
        $AviLbObject | Add-Member -MemberType NoteProperty -Name $propertyName -Value $refReply -Force
    }
    if ($PSBoundParameters.RefOnly.isPresent) {
        # $joinProperty = $propertyList -join ','
        $AviLbObject | Select $propertyList
    }
    else {
        $AviLbObject
    }
}
Function Copy-AVIRestObject {
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    Param(
        [Parameter(
            Position = 0,
            Mandatory=$true,
            ValueFromPipeline=$false,
            ParameterSetName = 'Default')]
        [ValidateNotNullOrEmpty()]
        $InputObject
    )
    DynamicParam {
        $RuntimeDefList = [List[RuntimeDefinedParameter]]::New()
        $paramConfig = [DynamicParameterConfig]::New('Excludes', [string[]], $false)
        [string[]]$completionList = $InputObject | Get-Member -MemberType NoteProperty | Select-Object -ExpandProperty Name -EA SilentlyContinue
        $runtimeParamConfig = @{
            ParameterSetName = 'Default'
            DynamicParameterConfig = $paramConfig
            StringArgumentCompleter = $completionList ? $completionList : ''
        }
        $RuntimeDefList.Add((New-RuntimeDefinedParameter @runtimeParamConfig))
        $RuntimeDefList | Out-RuntimeDefinedParameterDict
    }
    Begin {
    }
    Process {
        $defaultExcludes = 'uuid','url','_last_modified'
        [string[]]$excludeProperty = $defaultExcludes + $Excludes
        $psTypeName = $InputObject.{pstypenames}?[0]
        $result = $InputObject | Select-Object * -ExcludeProperty $excludeProperty -EA SilentlyContinue
        If ($null -ne $InputObject.Name) {
            $result.name = $InputObject.Name + '-Cloned'
        }
        If ($null -ne $psTypeName) {
            $result.PSObject.TypeNames.Insert(0,$psTypeName)
        }
        $result
    }
}

Function Get-AVIRestActiongroupconfig {
<#
    .SYNOPSIS
        Configure Avi ActionGroupConfig Object API
 
    .EXAMPLE
        Get-AviRestActiongroupconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'a',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/actiongroupconfig$Uuid" : '/api/actiongroupconfig'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestActiongroupconfig
    }
}
Function Set-AVIRestActiongroupconfig {
<#
    .SYNOPSIS
        Configure Avi ActionGroupConfig Object API
 
    .EXAMPLE
        $object = Get-AviRestActiongroupconfig
        $object.name = 'New name'
        Set-AviRestActiongroupconfig $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestActiongroupconfig')]$Actiongroupconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Actiongroupconfig.uuid
        $global:body = ConvertTo-JSON $Actiongroupconfig -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/actiongroupconfig/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Actiongroupconfig.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestActiongroupconfig
        }
    }
}
Function New-AVIRestActiongroupconfig {
<#
    .SYNOPSIS
        Configure Avi ActionGroupConfig Object API
 
    .EXAMPLE
        New-AviRestActiongroupconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestActiongroupconfig')]$Actiongroupconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/actiongroupconfig"
            Body = ConvertTo-JSON $Actiongroupconfig -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Actiongroupconfig.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestActiongroupconfig
        }
    }
}
Function New-AVIRestActiongroupconfigObject {
<#
    .SYNOPSIS
        Configure Avi ActionGroupConfig Object API
 
    .EXAMPLE
        New-AviRestActiongroupconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestActiongroupconfig')
        $result
    }
}
Function Remove-AVIRestActiongroupconfig {
<#
    .SYNOPSIS
        Configure Avi ActionGroupConfig Object API
 
    .EXAMPLE
        Get-AviRestActiongroupconfig | Remove-AviRestActiongroupconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Actiongroupconfig')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Actiongroupconfig',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestActiongroupconfig')]$Actiongroupconfig,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Actiongroupconfig') {
            $uuid = $Actiongroupconfig.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/actiongroupconfig/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Actiongroupconfig.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestAlbservicesconfig {
<#
    .SYNOPSIS
        Configure Avi ALBServicesConfig Object API
 
    .EXAMPLE
        Get-AviRestAlbservicesconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'a',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/albservicesconfig$Uuid" : '/api/albservicesconfig'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestAlbservicesconfig
    }
}
Function Set-AVIRestAlbservicesconfig {
<#
    .SYNOPSIS
        Configure Avi ALBServicesConfig Object API
 
    .EXAMPLE
        $object = Get-AviRestAlbservicesconfig
        $object.name = 'New name'
        Set-AviRestAlbservicesconfig $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlbservicesconfig')]$Albservicesconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Albservicesconfig.uuid
        $global:body = ConvertTo-JSON $Albservicesconfig -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/albservicesconfig/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Albservicesconfig.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlbservicesconfig
        }
    }
}
Function New-AVIRestAlbservicesconfig {
<#
    .SYNOPSIS
        Configure Avi ALBServicesConfig Object API
 
    .EXAMPLE
        New-AviRestAlbservicesconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlbservicesconfig')]$Albservicesconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/albservicesconfig"
            Body = ConvertTo-JSON $Albservicesconfig -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Albservicesconfig.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlbservicesconfig
        }
    }
}
Function New-AVIRestAlbservicesconfigObject {
<#
    .SYNOPSIS
        Configure Avi ALBServicesConfig Object API
 
    .EXAMPLE
        New-AviRestAlbservicesconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAlbservicesconfig')
        $result
    }
}
Function Remove-AVIRestAlbservicesconfig {
<#
    .SYNOPSIS
        Configure Avi ALBServicesConfig Object API
 
    .EXAMPLE
        Get-AviRestAlbservicesconfig | Remove-AviRestAlbservicesconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Albservicesconfig')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Albservicesconfig',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlbservicesconfig')]$Albservicesconfig,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Albservicesconfig') {
            $uuid = $Albservicesconfig.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/albservicesconfig/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Albservicesconfig.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestAlbservicesfileupload {
<#
    .SYNOPSIS
        Configure Avi ALBServicesFileUpload Object API
 
    .EXAMPLE
        Get-AviRestAlbservicesfileupload
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'a',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/albservicesfileupload$Uuid" : '/api/albservicesfileupload'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestAlbservicesfileupload
    }
}
Function Set-AVIRestAlbservicesfileupload {
<#
    .SYNOPSIS
        Configure Avi ALBServicesFileUpload Object API
 
    .EXAMPLE
        $object = Get-AviRestAlbservicesfileupload
        $object.name = 'New name'
        Set-AviRestAlbservicesfileupload $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlbservicesfileupload')]$Albservicesfileupload
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Albservicesfileupload.uuid
        $global:body = ConvertTo-JSON $Albservicesfileupload -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/albservicesfileupload/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Albservicesfileupload.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlbservicesfileupload
        }
    }
}
Function New-AVIRestAlbservicesfileupload {
<#
    .SYNOPSIS
        Configure Avi ALBServicesFileUpload Object API
 
    .EXAMPLE
        New-AviRestAlbservicesfileupload
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlbservicesfileupload')]$Albservicesfileupload
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/albservicesfileupload"
            Body = ConvertTo-JSON $Albservicesfileupload -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Albservicesfileupload.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlbservicesfileupload
        }
    }
}
Function New-AVIRestAlbservicesfileuploadObject {
<#
    .SYNOPSIS
        Configure Avi ALBServicesFileUpload Object API
 
    .EXAMPLE
        New-AviRestAlbservicesfileupload
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAlbservicesfileupload')
        $result
    }
}
Function Remove-AVIRestAlbservicesfileupload {
<#
    .SYNOPSIS
        Configure Avi ALBServicesFileUpload Object API
 
    .EXAMPLE
        Get-AviRestAlbservicesfileupload | Remove-AviRestAlbservicesfileupload
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Albservicesfileupload')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Albservicesfileupload',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlbservicesfileupload')]$Albservicesfileupload,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Albservicesfileupload') {
            $uuid = $Albservicesfileupload.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/albservicesfileupload/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Albservicesfileupload.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestAlbservicesjob {
<#
    .SYNOPSIS
        Configure Avi ALBServicesJob Object API
 
    .EXAMPLE
        Get-AviRestAlbservicesjob
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'a',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/albservicesjob$Uuid" : '/api/albservicesjob'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestAlbservicesjob
    }
}
Function Set-AVIRestAlbservicesjob {
<#
    .SYNOPSIS
        Configure Avi ALBServicesJob Object API
 
    .EXAMPLE
        $object = Get-AviRestAlbservicesjob
        $object.name = 'New name'
        Set-AviRestAlbservicesjob $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlbservicesjob')]$Albservicesjob
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Albservicesjob.uuid
        $global:body = ConvertTo-JSON $Albservicesjob -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/albservicesjob/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Albservicesjob.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlbservicesjob
        }
    }
}
Function New-AVIRestAlbservicesjob {
<#
    .SYNOPSIS
        Configure Avi ALBServicesJob Object API
 
    .EXAMPLE
        New-AviRestAlbservicesjob
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlbservicesjob')]$Albservicesjob
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/albservicesjob"
            Body = ConvertTo-JSON $Albservicesjob -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Albservicesjob.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlbservicesjob
        }
    }
}
Function New-AVIRestAlbservicesjobObject {
<#
    .SYNOPSIS
        Configure Avi ALBServicesJob Object API
 
    .EXAMPLE
        New-AviRestAlbservicesjob
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAlbservicesjob')
        $result
    }
}
Function Remove-AVIRestAlbservicesjob {
<#
    .SYNOPSIS
        Configure Avi ALBServicesJob Object API
 
    .EXAMPLE
        Get-AviRestAlbservicesjob | Remove-AviRestAlbservicesjob
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Albservicesjob')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Albservicesjob',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlbservicesjob')]$Albservicesjob,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Albservicesjob') {
            $uuid = $Albservicesjob.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/albservicesjob/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Albservicesjob.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestAlert {
<#
    .SYNOPSIS
        Configure Avi Alert Object API
 
    .EXAMPLE
        Get-AviRestAlert
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = '/debugvirtualservice/{uuid},/upgradestatusinfo/{uuid},/virtualservice/{uuid},/albservicesfileupload/{uuid}',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/alert$Uuid" : '/api/alert'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestAlert
    }
}
Function Set-AVIRestAlert {
<#
    .SYNOPSIS
        Configure Avi Alert Object API
 
    .EXAMPLE
        $object = Get-AviRestAlert
        $object.name = 'New name'
        Set-AviRestAlert $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlert')]$Alert
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Alert.uuid
        $global:body = ConvertTo-JSON $Alert -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/alert/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Alert.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlert
        }
    }
}
Function Set-AVIRestDebugvirtualservice {
<#
    .SYNOPSIS
        Configure Avi Alert Object API
 
    .EXAMPLE
        $object = Get-AviRestDebugvirtualservice
        $object.name = 'New name'
        Set-AviRestDebugvirtualservice $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDebugvirtualservice')]$Debugvirtualservice
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Debugvirtualservice.uuid
        $global:body = ConvertTo-JSON $Debugvirtualservice -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/debugvirtualservice/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Debugvirtualservice.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestDebugvirtualservice
        }
    }
}
Function Set-AVIRestUpgradestatusinfo {
<#
    .SYNOPSIS
        Configure Avi Alert Object API
 
    .EXAMPLE
        $object = Get-AviRestUpgradestatusinfo
        $object.name = 'New name'
        Set-AviRestUpgradestatusinfo $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUpgradestatusinfo')]$Upgradestatusinfo
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Upgradestatusinfo.uuid
        $global:body = ConvertTo-JSON $Upgradestatusinfo -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/upgradestatusinfo/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Upgradestatusinfo.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestUpgradestatusinfo
        }
    }
}
Function Set-AVIRestVirtualservice {
<#
    .SYNOPSIS
        Configure Avi Alert Object API
 
    .EXAMPLE
        $object = Get-AviRestVirtualservice
        $object.name = 'New name'
        Set-AviRestVirtualservice $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVirtualservice')]$Virtualservice
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Virtualservice.uuid
        $global:body = ConvertTo-JSON $Virtualservice -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/virtualservice/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Virtualservice.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVirtualservice
        }
    }
}
Function Set-AVIRestAlbservicesfileupload {
<#
    .SYNOPSIS
        Configure Avi Alert Object API
 
    .EXAMPLE
        $object = Get-AviRestAlbservicesfileupload
        $object.name = 'New name'
        Set-AviRestAlbservicesfileupload $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlbservicesfileupload')]$Albservicesfileupload
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Albservicesfileupload.uuid
        $global:body = ConvertTo-JSON $Albservicesfileupload -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/albservicesfileupload/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Albservicesfileupload.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlbservicesfileupload
        }
    }
}
Function New-AVIRestAlert {
<#
    .SYNOPSIS
        Configure Avi Alert Object API
 
    .EXAMPLE
        New-AviRestAlert
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlert')]$Alert
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/alert"
            Body = ConvertTo-JSON $Alert -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Alert.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlert
        }
    }
}
Function New-AVIRestDebugvirtualservice {
<#
    .SYNOPSIS
        Configure Avi Alert Object API
 
    .EXAMPLE
        New-AviRestDebugvirtualservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDebugvirtualservice')]$Debugvirtualservice
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/debugvirtualservice"
            Body = ConvertTo-JSON $Debugvirtualservice -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Debugvirtualservice.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestDebugvirtualservice
        }
    }
}
Function New-AVIRestUpgradestatusinfo {
<#
    .SYNOPSIS
        Configure Avi Alert Object API
 
    .EXAMPLE
        New-AviRestUpgradestatusinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUpgradestatusinfo')]$Upgradestatusinfo
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/upgradestatusinfo"
            Body = ConvertTo-JSON $Upgradestatusinfo -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Upgradestatusinfo.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestUpgradestatusinfo
        }
    }
}
Function New-AVIRestVirtualservice {
<#
    .SYNOPSIS
        Configure Avi Alert Object API
 
    .EXAMPLE
        New-AviRestVirtualservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVirtualservice')]$Virtualservice
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/virtualservice"
            Body = ConvertTo-JSON $Virtualservice -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Virtualservice.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVirtualservice
        }
    }
}
Function New-AVIRestAlbservicesfileupload {
<#
    .SYNOPSIS
        Configure Avi Alert Object API
 
    .EXAMPLE
        New-AviRestAlbservicesfileupload
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlbservicesfileupload')]$Albservicesfileupload
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/albservicesfileupload"
            Body = ConvertTo-JSON $Albservicesfileupload -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Albservicesfileupload.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlbservicesfileupload
        }
    }
}
Function New-AVIRestAlertObject {
<#
    .SYNOPSIS
        Configure Avi Alert Object API
 
    .EXAMPLE
        New-AviRestAlert
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAlert')
        $result
    }
}
Function New-AVIRestDebugvirtualserviceObject {
<#
    .SYNOPSIS
        Configure Avi Alert Object API
 
    .EXAMPLE
        New-AviRestDebugvirtualservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestDebugvirtualservice')
        $result
    }
}
Function New-AVIRestUpgradestatusinfoObject {
<#
    .SYNOPSIS
        Configure Avi Alert Object API
 
    .EXAMPLE
        New-AviRestUpgradestatusinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestUpgradestatusinfo')
        $result
    }
}
Function New-AVIRestVirtualserviceObject {
<#
    .SYNOPSIS
        Configure Avi Alert Object API
 
    .EXAMPLE
        New-AviRestVirtualservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVirtualservice')
        $result
    }
}
Function New-AVIRestAlbservicesfileuploadObject {
<#
    .SYNOPSIS
        Configure Avi Alert Object API
 
    .EXAMPLE
        New-AviRestAlbservicesfileupload
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAlbservicesfileupload')
        $result
    }
}
Function Remove-AVIRestAlert {
<#
    .SYNOPSIS
        Configure Avi Alert Object API
 
    .EXAMPLE
        Get-AviRestAlert | Remove-AviRestAlert
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Alert')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Alert',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlert')]$Alert,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Alert') {
            $uuid = $Alert.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/alert/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Alert.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestDebugvirtualservice {
<#
    .SYNOPSIS
        Configure Avi Alert Object API
 
    .EXAMPLE
        Get-AviRestDebugvirtualservice | Remove-AviRestDebugvirtualservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Debugvirtualservice')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Debugvirtualservice',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDebugvirtualservice')]$Debugvirtualservice,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Debugvirtualservice') {
            $uuid = $Debugvirtualservice.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/debugvirtualservice/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Debugvirtualservice.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestUpgradestatusinfo {
<#
    .SYNOPSIS
        Configure Avi Alert Object API
 
    .EXAMPLE
        Get-AviRestUpgradestatusinfo | Remove-AviRestUpgradestatusinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Upgradestatusinfo')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Upgradestatusinfo',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUpgradestatusinfo')]$Upgradestatusinfo,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Upgradestatusinfo') {
            $uuid = $Upgradestatusinfo.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/upgradestatusinfo/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Upgradestatusinfo.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestVirtualservice {
<#
    .SYNOPSIS
        Configure Avi Alert Object API
 
    .EXAMPLE
        Get-AviRestVirtualservice | Remove-AviRestVirtualservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Virtualservice')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Virtualservice',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVirtualservice')]$Virtualservice,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Virtualservice') {
            $uuid = $Virtualservice.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/virtualservice/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Virtualservice.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestAlbservicesfileupload {
<#
    .SYNOPSIS
        Configure Avi Alert Object API
 
    .EXAMPLE
        Get-AviRestAlbservicesfileupload | Remove-AviRestAlbservicesfileupload
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Albservicesfileupload')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Albservicesfileupload',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlbservicesfileupload')]$Albservicesfileupload,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Albservicesfileupload') {
            $uuid = $Albservicesfileupload.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/albservicesfileupload/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Albservicesfileupload.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestAlertconfig {
<#
    .SYNOPSIS
        Configure Avi AlertConfig Object API
 
    .EXAMPLE
        Get-AviRestAlertconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'a',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/alertconfig$Uuid" : '/api/alertconfig'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestAlertconfig
    }
}
Function Set-AVIRestAlertconfig {
<#
    .SYNOPSIS
        Configure Avi AlertConfig Object API
 
    .EXAMPLE
        $object = Get-AviRestAlertconfig
        $object.name = 'New name'
        Set-AviRestAlertconfig $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertconfig')]$Alertconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Alertconfig.uuid
        $global:body = ConvertTo-JSON $Alertconfig -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/alertconfig/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Alertconfig.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlertconfig
        }
    }
}
Function New-AVIRestAlertconfig {
<#
    .SYNOPSIS
        Configure Avi AlertConfig Object API
 
    .EXAMPLE
        New-AviRestAlertconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertconfig')]$Alertconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/alertconfig"
            Body = ConvertTo-JSON $Alertconfig -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Alertconfig.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlertconfig
        }
    }
}
Function New-AVIRestAlertconfigObject {
<#
    .SYNOPSIS
        Configure Avi AlertConfig Object API
 
    .EXAMPLE
        New-AviRestAlertconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAlertconfig')
        $result
    }
}
Function Remove-AVIRestAlertconfig {
<#
    .SYNOPSIS
        Configure Avi AlertConfig Object API
 
    .EXAMPLE
        Get-AviRestAlertconfig | Remove-AviRestAlertconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Alertconfig')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Alertconfig',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertconfig')]$Alertconfig,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Alertconfig') {
            $uuid = $Alertconfig.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/alertconfig/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Alertconfig.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestAlertemailconfig {
<#
    .SYNOPSIS
        Configure Avi AlertEmailConfig Object API
 
    .EXAMPLE
        Get-AviRestAlertemailconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'a',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/alertemailconfig$Uuid" : '/api/alertemailconfig'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestAlertemailconfig
    }
}
Function Set-AVIRestAlertemailconfig {
<#
    .SYNOPSIS
        Configure Avi AlertEmailConfig Object API
 
    .EXAMPLE
        $object = Get-AviRestAlertemailconfig
        $object.name = 'New name'
        Set-AviRestAlertemailconfig $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertemailconfig')]$Alertemailconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Alertemailconfig.uuid
        $global:body = ConvertTo-JSON $Alertemailconfig -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/alertemailconfig/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Alertemailconfig.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlertemailconfig
        }
    }
}
Function New-AVIRestAlertemailconfig {
<#
    .SYNOPSIS
        Configure Avi AlertEmailConfig Object API
 
    .EXAMPLE
        New-AviRestAlertemailconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertemailconfig')]$Alertemailconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/alertemailconfig"
            Body = ConvertTo-JSON $Alertemailconfig -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Alertemailconfig.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlertemailconfig
        }
    }
}
Function New-AVIRestAlertemailconfigObject {
<#
    .SYNOPSIS
        Configure Avi AlertEmailConfig Object API
 
    .EXAMPLE
        New-AviRestAlertemailconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAlertemailconfig')
        $result
    }
}
Function Invoke-AVIRestAlertemailconfigTestemail {
<#
    .SYNOPSIS
        Configure Avi AlertEmailConfig Object API
 
    .EXAMPLE
        Invoke-AviRestAlertemailconfigTestemail
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertemailconfigTestemail')]$AlertemailconfigTestemail
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $AlertemailconfigTestemail.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/alertemailconfig/${uuid}/testemail"
            Body = ConvertTo-JSON $AlertemailconfigTestemail -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($AlertemailconfigTestemail.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlertemailconfigTestemail
        }
    }
}
Function New-AVIRestAlertemailconfigTestemailObject {
<#
    .SYNOPSIS
        Configure Avi AlertEmailConfig Object API
 
    .EXAMPLE
        New-AviRestAlertemailconfigTestemail
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{
  "subject": "",
  "text": ""
}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{
  "subject": "",
  "text": "",
  "uuid": ""
}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAlertemailconfigTestemail')
        $result
    }
}
Function Remove-AVIRestAlertemailconfig {
<#
    .SYNOPSIS
        Configure Avi AlertEmailConfig Object API
 
    .EXAMPLE
        Get-AviRestAlertemailconfig | Remove-AviRestAlertemailconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Alertemailconfig')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Alertemailconfig',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertemailconfig')]$Alertemailconfig,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Alertemailconfig') {
            $uuid = $Alertemailconfig.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/alertemailconfig/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Alertemailconfig.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestAlertobjectlist {
<#
    .SYNOPSIS
        Configure Avi AlertObjectList Object API
 
    .EXAMPLE
        Get-AviRestAlertobjectlist
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'a',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/alertobjectlist$Uuid" : '/api/alertobjectlist'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestAlertobjectlist
    }
}
Function Set-AVIRestAlertobjectlist {
<#
    .SYNOPSIS
        Configure Avi AlertObjectList Object API
 
    .EXAMPLE
        $object = Get-AviRestAlertobjectlist
        $object.name = 'New name'
        Set-AviRestAlertobjectlist $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertobjectlist')]$Alertobjectlist
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Alertobjectlist.uuid
        $global:body = ConvertTo-JSON $Alertobjectlist -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/alertobjectlist/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Alertobjectlist.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlertobjectlist
        }
    }
}
Function New-AVIRestAlertobjectlist {
<#
    .SYNOPSIS
        Configure Avi AlertObjectList Object API
 
    .EXAMPLE
        New-AviRestAlertobjectlist
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertobjectlist')]$Alertobjectlist
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/alertobjectlist"
            Body = ConvertTo-JSON $Alertobjectlist -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Alertobjectlist.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlertobjectlist
        }
    }
}
Function New-AVIRestAlertobjectlistObject {
<#
    .SYNOPSIS
        Configure Avi AlertObjectList Object API
 
    .EXAMPLE
        New-AviRestAlertobjectlist
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAlertobjectlist')
        $result
    }
}
Function Remove-AVIRestAlertobjectlist {
<#
    .SYNOPSIS
        Configure Avi AlertObjectList Object API
 
    .EXAMPLE
        Get-AviRestAlertobjectlist | Remove-AviRestAlertobjectlist
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Alertobjectlist')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Alertobjectlist',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertobjectlist')]$Alertobjectlist,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Alertobjectlist') {
            $uuid = $Alertobjectlist.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/alertobjectlist/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Alertobjectlist.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestAlertscriptconfig {
<#
    .SYNOPSIS
        Configure Avi AlertScriptConfig Object API
 
    .EXAMPLE
        Get-AviRestAlertscriptconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'a',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/alertscriptconfig$Uuid" : '/api/alertscriptconfig'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestAlertscriptconfig
    }
}
Function Set-AVIRestAlertscriptconfig {
<#
    .SYNOPSIS
        Configure Avi AlertScriptConfig Object API
 
    .EXAMPLE
        $object = Get-AviRestAlertscriptconfig
        $object.name = 'New name'
        Set-AviRestAlertscriptconfig $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertscriptconfig')]$Alertscriptconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Alertscriptconfig.uuid
        $global:body = ConvertTo-JSON $Alertscriptconfig -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/alertscriptconfig/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Alertscriptconfig.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlertscriptconfig
        }
    }
}
Function New-AVIRestAlertscriptconfig {
<#
    .SYNOPSIS
        Configure Avi AlertScriptConfig Object API
 
    .EXAMPLE
        New-AviRestAlertscriptconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertscriptconfig')]$Alertscriptconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/alertscriptconfig"
            Body = ConvertTo-JSON $Alertscriptconfig -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Alertscriptconfig.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlertscriptconfig
        }
    }
}
Function New-AVIRestAlertscriptconfigObject {
<#
    .SYNOPSIS
        Configure Avi AlertScriptConfig Object API
 
    .EXAMPLE
        New-AviRestAlertscriptconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAlertscriptconfig')
        $result
    }
}
Function Remove-AVIRestAlertscriptconfig {
<#
    .SYNOPSIS
        Configure Avi AlertScriptConfig Object API
 
    .EXAMPLE
        Get-AviRestAlertscriptconfig | Remove-AviRestAlertscriptconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Alertscriptconfig')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Alertscriptconfig',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertscriptconfig')]$Alertscriptconfig,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Alertscriptconfig') {
            $uuid = $Alertscriptconfig.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/alertscriptconfig/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Alertscriptconfig.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestAlertsyslogconfig {
<#
    .SYNOPSIS
        Configure Avi AlertSyslogConfig Object API
 
    .EXAMPLE
        Get-AviRestAlertsyslogconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'a',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/alertsyslogconfig$Uuid" : '/api/alertsyslogconfig'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestAlertsyslogconfig
    }
}
Function Set-AVIRestAlertsyslogconfig {
<#
    .SYNOPSIS
        Configure Avi AlertSyslogConfig Object API
 
    .EXAMPLE
        $object = Get-AviRestAlertsyslogconfig
        $object.name = 'New name'
        Set-AviRestAlertsyslogconfig $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertsyslogconfig')]$Alertsyslogconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Alertsyslogconfig.uuid
        $global:body = ConvertTo-JSON $Alertsyslogconfig -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/alertsyslogconfig/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Alertsyslogconfig.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlertsyslogconfig
        }
    }
}
Function New-AVIRestAlertsyslogconfig {
<#
    .SYNOPSIS
        Configure Avi AlertSyslogConfig Object API
 
    .EXAMPLE
        New-AviRestAlertsyslogconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertsyslogconfig')]$Alertsyslogconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/alertsyslogconfig"
            Body = ConvertTo-JSON $Alertsyslogconfig -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Alertsyslogconfig.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlertsyslogconfig
        }
    }
}
Function New-AVIRestAlertsyslogconfigObject {
<#
    .SYNOPSIS
        Configure Avi AlertSyslogConfig Object API
 
    .EXAMPLE
        New-AviRestAlertsyslogconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAlertsyslogconfig')
        $result
    }
}
Function Invoke-AVIRestAlertsyslogconfigTestsyslog {
<#
    .SYNOPSIS
        Configure Avi AlertSyslogConfig Object API
 
    .EXAMPLE
        Invoke-AviRestAlertsyslogconfigTestsyslog
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertsyslogconfigTestsyslog')]$AlertsyslogconfigTestsyslog
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $AlertsyslogconfigTestsyslog.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/alertsyslogconfig/${uuid}/testsyslog"
            Body = ConvertTo-JSON $AlertsyslogconfigTestsyslog -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($AlertsyslogconfigTestsyslog.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlertsyslogconfigTestsyslog
        }
    }
}
Function New-AVIRestAlertsyslogconfigTestsyslogObject {
<#
    .SYNOPSIS
        Configure Avi AlertSyslogConfig Object API
 
    .EXAMPLE
        New-AviRestAlertsyslogconfigTestsyslog
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{
  "text": ""
}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{
  "text": "",
  "uuid": ""
}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAlertsyslogconfigTestsyslog')
        $result
    }
}
Function Remove-AVIRestAlertsyslogconfig {
<#
    .SYNOPSIS
        Configure Avi AlertSyslogConfig Object API
 
    .EXAMPLE
        Get-AviRestAlertsyslogconfig | Remove-AviRestAlertsyslogconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Alertsyslogconfig')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Alertsyslogconfig',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertsyslogconfig')]$Alertsyslogconfig,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Alertsyslogconfig') {
            $uuid = $Alertsyslogconfig.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/alertsyslogconfig/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Alertsyslogconfig.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestAnalyticsprofile {
<#
    .SYNOPSIS
        Configure Avi AnalyticsProfile Object API
 
    .EXAMPLE
        Get-AviRestAnalyticsprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'runtime/internal',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/analyticsprofile$Uuid" : '/api/analyticsprofile'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestAnalyticsprofile
    }
}
Function Set-AVIRestAnalyticsprofile {
<#
    .SYNOPSIS
        Configure Avi AnalyticsProfile Object API
 
    .EXAMPLE
        $object = Get-AviRestAnalyticsprofile
        $object.name = 'New name'
        Set-AviRestAnalyticsprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAnalyticsprofile')]$Analyticsprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Analyticsprofile.uuid
        $global:body = ConvertTo-JSON $Analyticsprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/analyticsprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Analyticsprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestAnalyticsprofile
        }
    }
}
Function New-AVIRestAnalyticsprofile {
<#
    .SYNOPSIS
        Configure Avi AnalyticsProfile Object API
 
    .EXAMPLE
        New-AviRestAnalyticsprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAnalyticsprofile')]$Analyticsprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/analyticsprofile"
            Body = ConvertTo-JSON $Analyticsprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Analyticsprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAnalyticsprofile
        }
    }
}
Function New-AVIRestAnalyticsprofileObject {
<#
    .SYNOPSIS
        Configure Avi AnalyticsProfile Object API
 
    .EXAMPLE
        New-AviRestAnalyticsprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAnalyticsprofile')
        $result
    }
}
Function Remove-AVIRestAnalyticsprofile {
<#
    .SYNOPSIS
        Configure Avi AnalyticsProfile Object API
 
    .EXAMPLE
        Get-AviRestAnalyticsprofile | Remove-AviRestAnalyticsprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Analyticsprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Analyticsprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAnalyticsprofile')]$Analyticsprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Analyticsprofile') {
            $uuid = $Analyticsprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/analyticsprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Analyticsprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestAnalyticsAnomalyPool {
<#
    .SYNOPSIS
        Configure Avi Object API
 
    .EXAMPLE
        Get-AviRestAnalyticsAnomalyPool
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = '/analytics/anomaly/serviceengine/{uuid},/analytics/anomaly/virtualservice/{uuid}',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/analytics/anomaly/pool/$Uuid" : '/api/analytics/anomaly/pool/'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestAnalyticsAnomalyPool
    }
}
Function Get-AVIRestApiclifsruntime {
<#
    .SYNOPSIS
        Configure Avi APICLifsRuntime Object API
 
    .EXAMPLE
        Get-AviRestApiclifsruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'a',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '21.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/apiclifsruntime$Uuid" : '/api/apiclifsruntime'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestApiclifsruntime
    }
}
Function Set-AVIRestApiclifsruntime {
<#
    .SYNOPSIS
        Configure Avi APICLifsRuntime Object API
 
    .EXAMPLE
        $object = Get-AviRestApiclifsruntime
        $object.name = 'New name'
        Set-AviRestApiclifsruntime $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestApiclifsruntime')]$Apiclifsruntime
    )
    Begin {
        $swaggerVersion = '21.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Apiclifsruntime.uuid
        $global:body = ConvertTo-JSON $Apiclifsruntime -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/apiclifsruntime/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Apiclifsruntime.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestApiclifsruntime
        }
    }
}
Function New-AVIRestApiclifsruntime {
<#
    .SYNOPSIS
        Configure Avi APICLifsRuntime Object API
 
    .EXAMPLE
        New-AviRestApiclifsruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestApiclifsruntime')]$Apiclifsruntime
    )
    Begin {
        $swaggerVersion = '21.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/apiclifsruntime"
            Body = ConvertTo-JSON $Apiclifsruntime -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Apiclifsruntime.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestApiclifsruntime
        }
    }
}
Function New-AVIRestApiclifsruntimeObject {
<#
    .SYNOPSIS
        Configure Avi APICLifsRuntime Object API
 
    .EXAMPLE
        New-AviRestApiclifsruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '21.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestApiclifsruntime')
        $result
    }
}
Function Remove-AVIRestApiclifsruntime {
<#
    .SYNOPSIS
        Configure Avi APICLifsRuntime Object API
 
    .EXAMPLE
        Get-AviRestApiclifsruntime | Remove-AviRestApiclifsruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Apiclifsruntime')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Apiclifsruntime',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestApiclifsruntime')]$Apiclifsruntime,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '21.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Apiclifsruntime') {
            $uuid = $Apiclifsruntime.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/apiclifsruntime/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Apiclifsruntime.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestApplication {
<#
    .SYNOPSIS
        Configure Avi Application Object API
 
    .EXAMPLE
        Get-AviRestApplication
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'a',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/application$Uuid" : '/api/application'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestApplication
    }
}
Function Set-AVIRestApplication {
<#
    .SYNOPSIS
        Configure Avi Application Object API
 
    .EXAMPLE
        $object = Get-AviRestApplication
        $object.name = 'New name'
        Set-AviRestApplication $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestApplication')]$Application
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Application.uuid
        $global:body = ConvertTo-JSON $Application -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/application/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Application.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestApplication
        }
    }
}
Function New-AVIRestApplication {
<#
    .SYNOPSIS
        Configure Avi Application Object API
 
    .EXAMPLE
        New-AviRestApplication
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestApplication')]$Application
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/application"
            Body = ConvertTo-JSON $Application -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Application.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestApplication
        }
    }
}
Function New-AVIRestApplicationObject {
<#
    .SYNOPSIS
        Configure Avi Application Object API
 
    .EXAMPLE
        New-AviRestApplication
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestApplication')
        $result
    }
}
Function Remove-AVIRestApplication {
<#
    .SYNOPSIS
        Configure Avi Application Object API
 
    .EXAMPLE
        Get-AviRestApplication | Remove-AviRestApplication
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Application')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Application',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestApplication')]$Application,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Application') {
            $uuid = $Application.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/application/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Application.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestApplicationpersistenceprofile {
<#
    .SYNOPSIS
        Configure Avi ApplicationPersistenceProfile Object API
 
    .EXAMPLE
        Get-AviRestApplicationpersistenceprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'federated_info',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/applicationpersistenceprofile$Uuid" : '/api/applicationpersistenceprofile'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestApplicationpersistenceprofile
    }
}
Function Set-AVIRestApplicationpersistenceprofile {
<#
    .SYNOPSIS
        Configure Avi ApplicationPersistenceProfile Object API
 
    .EXAMPLE
        $object = Get-AviRestApplicationpersistenceprofile
        $object.name = 'New name'
        Set-AviRestApplicationpersistenceprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestApplicationpersistenceprofile')]$Applicationpersistenceprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Applicationpersistenceprofile.uuid
        $global:body = ConvertTo-JSON $Applicationpersistenceprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/applicationpersistenceprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Applicationpersistenceprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestApplicationpersistenceprofile
        }
    }
}
Function New-AVIRestApplicationpersistenceprofile {
<#
    .SYNOPSIS
        Configure Avi ApplicationPersistenceProfile Object API
 
    .EXAMPLE
        New-AviRestApplicationpersistenceprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestApplicationpersistenceprofile')]$Applicationpersistenceprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/applicationpersistenceprofile"
            Body = ConvertTo-JSON $Applicationpersistenceprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Applicationpersistenceprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestApplicationpersistenceprofile
        }
    }
}
Function New-AVIRestApplicationpersistenceprofileObject {
<#
    .SYNOPSIS
        Configure Avi ApplicationPersistenceProfile Object API
 
    .EXAMPLE
        New-AviRestApplicationpersistenceprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestApplicationpersistenceprofile')
        $result
    }
}
Function Remove-AVIRestApplicationpersistenceprofile {
<#
    .SYNOPSIS
        Configure Avi ApplicationPersistenceProfile Object API
 
    .EXAMPLE
        Get-AviRestApplicationpersistenceprofile | Remove-AviRestApplicationpersistenceprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Applicationpersistenceprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Applicationpersistenceprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestApplicationpersistenceprofile')]$Applicationpersistenceprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Applicationpersistenceprofile') {
            $uuid = $Applicationpersistenceprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/applicationpersistenceprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Applicationpersistenceprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestApplicationprofile {
<#
    .SYNOPSIS
        Configure Avi ApplicationProfile Object API
 
    .EXAMPLE
        Get-AviRestApplicationprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'runtime/internal',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/applicationprofile$Uuid" : '/api/applicationprofile'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestApplicationprofile
    }
}
Function Set-AVIRestApplicationprofile {
<#
    .SYNOPSIS
        Configure Avi ApplicationProfile Object API
 
    .EXAMPLE
        $object = Get-AviRestApplicationprofile
        $object.name = 'New name'
        Set-AviRestApplicationprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestApplicationprofile')]$Applicationprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Applicationprofile.uuid
        $global:body = ConvertTo-JSON $Applicationprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/applicationprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Applicationprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestApplicationprofile
        }
    }
}
Function New-AVIRestApplicationprofile {
<#
    .SYNOPSIS
        Configure Avi ApplicationProfile Object API
 
    .EXAMPLE
        New-AviRestApplicationprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestApplicationprofile')]$Applicationprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/applicationprofile"
            Body = ConvertTo-JSON $Applicationprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Applicationprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestApplicationprofile
        }
    }
}
Function New-AVIRestApplicationprofileObject {
<#
    .SYNOPSIS
        Configure Avi ApplicationProfile Object API
 
    .EXAMPLE
        New-AviRestApplicationprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestApplicationprofile')
        $result
    }
}
Function Remove-AVIRestApplicationprofile {
<#
    .SYNOPSIS
        Configure Avi ApplicationProfile Object API
 
    .EXAMPLE
        Get-AviRestApplicationprofile | Remove-AviRestApplicationprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Applicationprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Applicationprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestApplicationprofile')]$Applicationprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Applicationprofile') {
            $uuid = $Applicationprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/applicationprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Applicationprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestAuthmappingprofile {
<#
    .SYNOPSIS
        Configure Avi AuthMappingProfile Object API
 
    .EXAMPLE
        Get-AviRestAuthmappingprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'a',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/authmappingprofile$Uuid" : '/api/authmappingprofile'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestAuthmappingprofile
    }
}
Function Set-AVIRestAuthmappingprofile {
<#
    .SYNOPSIS
        Configure Avi AuthMappingProfile Object API
 
    .EXAMPLE
        $object = Get-AviRestAuthmappingprofile
        $object.name = 'New name'
        Set-AviRestAuthmappingprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAuthmappingprofile')]$Authmappingprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Authmappingprofile.uuid
        $global:body = ConvertTo-JSON $Authmappingprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/authmappingprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Authmappingprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestAuthmappingprofile
        }
    }
}
Function New-AVIRestAuthmappingprofile {
<#
    .SYNOPSIS
        Configure Avi AuthMappingProfile Object API
 
    .EXAMPLE
        New-AviRestAuthmappingprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAuthmappingprofile')]$Authmappingprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/authmappingprofile"
            Body = ConvertTo-JSON $Authmappingprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Authmappingprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAuthmappingprofile
        }
    }
}
Function New-AVIRestAuthmappingprofileObject {
<#
    .SYNOPSIS
        Configure Avi AuthMappingProfile Object API
 
    .EXAMPLE
        New-AviRestAuthmappingprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAuthmappingprofile')
        $result
    }
}
Function Remove-AVIRestAuthmappingprofile {
<#
    .SYNOPSIS
        Configure Avi AuthMappingProfile Object API
 
    .EXAMPLE
        Get-AviRestAuthmappingprofile | Remove-AviRestAuthmappingprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Authmappingprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Authmappingprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAuthmappingprofile')]$Authmappingprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Authmappingprofile') {
            $uuid = $Authmappingprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/authmappingprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Authmappingprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestAuthprofile {
<#
    .SYNOPSIS
        Configure Avi AuthProfile Object API
 
    .EXAMPLE
        Get-AviRestAuthprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'a',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/authprofile$Uuid" : '/api/authprofile'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestAuthprofile
    }
}
Function Set-AVIRestAuthprofile {
<#
    .SYNOPSIS
        Configure Avi AuthProfile Object API
 
    .EXAMPLE
        $object = Get-AviRestAuthprofile
        $object.name = 'New name'
        Set-AviRestAuthprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAuthprofile')]$Authprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Authprofile.uuid
        $global:body = ConvertTo-JSON $Authprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/authprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Authprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestAuthprofile
        }
    }
}
Function New-AVIRestAuthprofile {
<#
    .SYNOPSIS
        Configure Avi AuthProfile Object API
 
    .EXAMPLE
        New-AviRestAuthprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAuthprofile')]$Authprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/authprofile"
            Body = ConvertTo-JSON $Authprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Authprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAuthprofile
        }
    }
}
Function New-AVIRestAuthprofileObject {
<#
    .SYNOPSIS
        Configure Avi AuthProfile Object API
 
    .EXAMPLE
        New-AviRestAuthprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAuthprofile')
        $result
    }
}
Function Remove-AVIRestAuthprofile {
<#
    .SYNOPSIS
        Configure Avi AuthProfile Object API
 
    .EXAMPLE
        Get-AviRestAuthprofile | Remove-AviRestAuthprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Authprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Authprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAuthprofile')]$Authprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Authprofile') {
            $uuid = $Authprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/authprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Authprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestAutoscalelaunchconfig {
<#
    .SYNOPSIS
        Configure Avi AutoScaleLaunchConfig Object API
 
    .EXAMPLE
        Get-AviRestAutoscalelaunchconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'a',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/autoscalelaunchconfig$Uuid" : '/api/autoscalelaunchconfig'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestAutoscalelaunchconfig
    }
}
Function Set-AVIRestAutoscalelaunchconfig {
<#
    .SYNOPSIS
        Configure Avi AutoScaleLaunchConfig Object API
 
    .EXAMPLE
        $object = Get-AviRestAutoscalelaunchconfig
        $object.name = 'New name'
        Set-AviRestAutoscalelaunchconfig $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAutoscalelaunchconfig')]$Autoscalelaunchconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Autoscalelaunchconfig.uuid
        $global:body = ConvertTo-JSON $Autoscalelaunchconfig -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/autoscalelaunchconfig/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Autoscalelaunchconfig.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestAutoscalelaunchconfig
        }
    }
}
Function New-AVIRestAutoscalelaunchconfig {
<#
    .SYNOPSIS
        Configure Avi AutoScaleLaunchConfig Object API
 
    .EXAMPLE
        New-AviRestAutoscalelaunchconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAutoscalelaunchconfig')]$Autoscalelaunchconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/autoscalelaunchconfig"
            Body = ConvertTo-JSON $Autoscalelaunchconfig -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Autoscalelaunchconfig.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAutoscalelaunchconfig
        }
    }
}
Function New-AVIRestAutoscalelaunchconfigObject {
<#
    .SYNOPSIS
        Configure Avi AutoScaleLaunchConfig Object API
 
    .EXAMPLE
        New-AviRestAutoscalelaunchconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAutoscalelaunchconfig')
        $result
    }
}
Function Remove-AVIRestAutoscalelaunchconfig {
<#
    .SYNOPSIS
        Configure Avi AutoScaleLaunchConfig Object API
 
    .EXAMPLE
        Get-AviRestAutoscalelaunchconfig | Remove-AviRestAutoscalelaunchconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Autoscalelaunchconfig')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Autoscalelaunchconfig',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAutoscalelaunchconfig')]$Autoscalelaunchconfig,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Autoscalelaunchconfig') {
            $uuid = $Autoscalelaunchconfig.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/autoscalelaunchconfig/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Autoscalelaunchconfig.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestAvailabilityzone {
<#
    .SYNOPSIS
        Configure Avi AvailabilityZone Object API
 
    .EXAMPLE
        Get-AviRestAvailabilityzone
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'a',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/availabilityzone$Uuid" : '/api/availabilityzone'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestAvailabilityzone
    }
}
Function Set-AVIRestAvailabilityzone {
<#
    .SYNOPSIS
        Configure Avi AvailabilityZone Object API
 
    .EXAMPLE
        $object = Get-AviRestAvailabilityzone
        $object.name = 'New name'
        Set-AviRestAvailabilityzone $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAvailabilityzone')]$Availabilityzone
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Availabilityzone.uuid
        $global:body = ConvertTo-JSON $Availabilityzone -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/availabilityzone/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Availabilityzone.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestAvailabilityzone
        }
    }
}
Function New-AVIRestAvailabilityzone {
<#
    .SYNOPSIS
        Configure Avi AvailabilityZone Object API
 
    .EXAMPLE
        New-AviRestAvailabilityzone
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAvailabilityzone')]$Availabilityzone
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/availabilityzone"
            Body = ConvertTo-JSON $Availabilityzone -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Availabilityzone.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAvailabilityzone
        }
    }
}
Function New-AVIRestAvailabilityzoneObject {
<#
    .SYNOPSIS
        Configure Avi AvailabilityZone Object API
 
    .EXAMPLE
        New-AviRestAvailabilityzone
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAvailabilityzone')
        $result
    }
}
Function Remove-AVIRestAvailabilityzone {
<#
    .SYNOPSIS
        Configure Avi AvailabilityZone Object API
 
    .EXAMPLE
        Get-AviRestAvailabilityzone | Remove-AviRestAvailabilityzone
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Availabilityzone')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Availabilityzone',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAvailabilityzone')]$Availabilityzone,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Availabilityzone') {
            $uuid = $Availabilityzone.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/availabilityzone/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Availabilityzone.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestNetworksecuritypolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestNetworksecuritypolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = '/fileobject/{uuid},/role/{uuid},/tenant/{uuid},/useractivity/{uuid},/useraccountprofile/{uuid},/clusterclouddetails/{uuid},/applicationprofile/{uuid},/applicationprofile/{uuid}/runtime/internal,/poolgroup/{uuid},/poolgroup/{uuid}/runtime/detail,/sslprofile/{uuid},/sslprofile/{uuid}/federated_info,/sslkeyandcertificate/{uuid},/sslkeyandcertificate/{uuid}/federated_info,/pkiprofile/{uuid},/pkiprofile/{uuid}/federated_info,/certificatemanagementprofile/{uuid},/vrfcontext/{uuid},/webapput/{uuid},/icapprofile/{uuid},/labelgroup/{uuid},/trafficcloneprofile/{uuid},/geodb/{uuid},/geodb/{uuid}/runtime/internal,/jobs/{uuid},/testsedatastorelevel1/{uuid},/testsedatastorelevel2/{uuid},/testsedatastorelevel3/{uuid},/analyticsprofile/{uuid},/analyticsprofile/{uuid}/runtime/internal,/albservicesfileupload/{uuid},/securechannelmapping/{uuid},/securechannelavailablelocalips/{uuid},/securechanneltoken/{uuid},/microservice/{uuid},/microservice/{uuid}/runtime/internal,/microservice/{uuid}/runtime/detail,/customipamdnsprofile/{uuid},/jwtserverprofile/{uuid},/jwtserverprofile/{uuid}/federated_info,/authprofile/{uuid},/authmappingprofile/{uuid},/wafpolicypsmgroup/{uuid},/botdetectionpolicy/{uuid},/botmapping/{uuid},/botconfigconsolidator/{uuid},/botipreputationtypemapping/{uuid},/dynamicdnsrecord/{uuid},/vsgs/{uuid},/serverautoscalepolicy/{uuid},/autoscalelaunchconfig/{uuid},/controllerproperties/{uuid},/networkservice/{uuid},/licensing/status/{uuid},/albservicesconfig/{uuid},/pool-inventory/{uuid},/poolgroup-inventory/{uuid},/vsvip-inventory/{uuid},/virtualservice-inventory/{uuid},/serviceengine-inventory/{uuid},/serviceenginegroup-inventory/{uuid},/upgradestatussummary/{uuid},/serviceenginegroup/{uuid},/serviceenginegroup/{uuid}/runtime,/serviceenginegroup/{uuid}/placement/summary,/serviceenginegroup/{uuid}/placement/detail,/serviceenginegroup/{uuid}/placement/ineligible,/network-inventory/{uuid},/networkruntime/{uuid},/vimgrnwruntime/{uuid},/cloud-inventory/{uuid},/gslb-inventory/{uuid},/gslbservice-inventory/{uuid},/wafpolicypsmgroup-inventory/{uuid},/federationcheckpoint-inventory/{uuid},/federationcheckpoint/{uuid},/federationcheckpoint/{uuid}/pendingobjects,/ipreputationdb/{uuid},/ipreputationdb/{uuid}/runtime/internal,/network/{uuid},/ipaddrgroup/{uuid},/stringgroup/{uuid},/microservicegroup/{uuid},/microservicegroup/{uuid}/runtime/detail,/wafcrs/{uuid},/systemconfiguration/{uuid},/controllersite/{uuid},/cloudconnectoruser/{uuid},/seproperties/{uuid},/csrfpolicy/{uuid},/memorybalancernotifier/{uuid},/vcenterserver/{uuid},/availabilityzone/{uuid},/nsxtsegmentruntime/{uuid},/statediffoperation/{uuid},/applicationpersistenceprofile/{uuid},/applicationpersistenceprofile/{uuid}/federated_info,/scvsstateinfo/{uuid},/scpoolserverstateinfo/{uuid},/albservicesjob/{uuid},/image/{uuid},/cloud/{uuid},/cloud/{uuid}/internals,/cloud/{uuid}/status,/cloud/{uuid}/health,/cloud/{uuid}/hosts,/cloud/{uuid}/autoscalegroup,/cloud/{uuid}/autoscalegroupservers,/cloud/{uuid}/placement/summary,/cloud/{uuid}/placement/ineligible,/cloudruntime/{uuid},/l4policyset/{uuid},/healthmonitor/{uuid},/healthmonitor/{uuid}/federated_info,/upgradestatusinfo/{uuid},/cloudproperties/{uuid},/vsdatascriptset/{uuid},/controllerportalregistration/{uuid},/user/{uuid},/networkprofile/{uuid},/networkprofile/{uuid}/runtime/internal,/dnspolicy/{uuid},/hardwaresecuritymodulegroup/{uuid},/logcontroller/{uuid},/protocolparser/{uuid},/scheduler/{uuid},/backupconfiguration/{uuid},/vimgrsevmruntime/{uuid},/vimgrvmruntime/{uuid},/vimgrhostruntime/{uuid},/vimgrclusterruntime/{uuid},/vimgrvcenterdatacenters/{uuid},/vimgrvcenternetworks/{uuid},/serviceengine/{uuid},/serviceengine/{uuid}/runtime,/serviceengine/{uuid}/runtime/detail,/serviceengine/{uuid}/internal,/serviceengine/{uuid}/ipstat,/serviceengine/{uuid}/arpstat,/serviceengine/{uuid}/icmpstat,/serviceengine/{uuid}/mbufstats,/serviceengine/{uuid}/mallocstats,/serviceengine/{uuid}/shmallocstats,/serviceengine/{uuid}/seassertstats/dp,/serviceengine/{uuid}/seassertstats/ag,/serviceengine/{uuid}/sevshbstats,/serviceengine/{uuid}/sevssplacement,/serviceengine/{uuid}/cpu,/serviceengine/{uuid}/cpu/detail,/serviceengine/{uuid}/meminfo,/serviceengine/{uuid}/interface,/serviceengine/{uuid}/bgp,/serviceengine/{uuid}/bgp/debug,/serviceengine/{uuid}/bgp/advertised_routes,/serviceengine/{uuid}/bgp/peer_status,/serviceengine/{uuid}/bgp/peer_info,/serviceengine/{uuid}/bgp/running_config,/serviceengine/{uuid}/bgp/peer_state,/serviceengine/{uuid}/bfd/running_config,/serviceengine/{uuid}/bfd/session_status,/serviceengine/{uuid}/interfacesummary,/serviceengine/{uuid}/interface/lacp,/serviceengine/{uuid}/lldp,/serviceengine/{uuid}/route,/serviceengine/{uuid}/ip6route,/serviceengine/{uuid}/arptable,/serviceengine/{uuid}/httpstats,/serviceengine/{uuid}/seruminsertionstats,/serviceengine/{uuid}/selogstats,/serviceengine/{uuid}/seauthstats,/serviceengine/{uuid}/vnicdb,/serviceengine/{uuid}/vnicdbhistory,/serviceengine/{uuid}/graphdb,/serviceengine/{uuid}/seagent,/serviceengine/{uuid}/resourcemap,/serviceengine/{uuid}/consistenthash,/serviceengine/{uuid}/appmap,/serviceengine/{uuid}/shardclientevents,/serviceengine/{uuid}/rteringstat,/serviceengine/{uuid}/sehmprobedisable,/serviceengine/{uuid}/flowtablestat,/serviceengine/{uuid}/flowtable,/serviceengine/{uuid}/vshash,/serviceengine/{uuid}/flowtable_remote,/serviceengine/{uuid}/tcp-flows,/serviceengine/{uuid}/sctp-flows,/serviceengine/{uuid}/tcp-flows/detail,/serviceengine/{uuid}/sctp-flows/detail,/serviceengine/{uuid}/metrics,/serviceengine/{uuid}/metrics/detail,/serviceengine/{uuid}/metrics/debug,/serviceengine/{uuid}/metrics/debug/summary,/serviceengine/{uuid}/dosstat,/serviceengine/{uuid}/memdist,/serviceengine/{uuid}/placement,/serviceengine/{uuid}/reservedvs,/serviceengine/{uuid}/microservice,/serviceengine/{uuid}/ndtable,/serviceengine/{uuid}/ip6stat,/serviceengine/{uuid}/icmp6stat,/serviceengine/{uuid}/natstat,/serviceengine/{uuid}/nat-flows,/serviceengine/{uuid}/network-service,/serviceengine/{uuid}/natpolicystats,/serviceengine/{uuid}/ratelimiting/rl/internal,/serviceengine/{uuid}/ratelimiting/msf/internal,/serviceengine/{uuid}/routestat,/serviceengine/{uuid}/route-flows,/serviceengine/{uuid}/objsync,/serviceengine/{uuid}/resolverdb,/serviceengine/{uuid}/resolverdbsummary,/serviceengine/{uuid}/botuacacheruntime,/serviceengine/{uuid}/botuacachestatsruntime,/serviceengine/{uuid}/placement/summary,/serviceengine/{uuid}/placement/detail,/serviceengine/{uuid}/adaptiveevents,/wafpolicy/{uuid},/wafapplicationsignatureprovider/{uuid},/ssopolicy/{uuid},/natpolicy/{uuid},/siteversion/{uuid},/webhook/{uuid},/pool/{uuid},/pool/{uuid}/runtime,/pool/{uuid}/runtime/server,/pool/{uuid}/runtime/detail,/pool/{uuid}/runtime/server/detail,/pool/{uuid}/runtime/internal,/pool/{uuid}/objsync,/pool/{uuid}/runtime/server/internal,/pool/{uuid}/runtime/debug,/pool/{uuid}/hmon,/pool/{uuid}/runtime/server/hmonstat,/pool/{uuid}/algo,/pool/{uuid}/persistence,/pool/{uuid}/connpool,/pool/{uuid}/httpcache,/pool/{uuid}/httpcachestats,/pool/{uuid}/httpcachestats/detail,/pool/{uuid}/vs,/pool/{uuid}/runtime/vs/service/server/map/kv,/pool/{uuid}/runtime/vs/service/server/map/table,/backup/{uuid},/securitymanagerdata/{uuid},/virtualservice/{uuid},/vsvip/{uuid},/ipamdnsproviderprofile/{uuid},/wafprofile/{uuid},/licensing/ledger/details/{uuid},/pingaccessagent/{uuid},/application/{uuid},/debugserviceengine/{uuid},/debugserviceengine/{uuid}/faultruntime,/debugvirtualservice/{uuid},/poolgroupdeploymentpolicy/{uuid},/httppolicyset/{uuid},/securitypolicy/{uuid},/snmptrapprofile/{uuid},/systemlimits/{uuid},/prioritylabels/{uuid},/gslb/{uuid},/gslb/{uuid}/runtime,/gslb/{uuid}/runtime/detail,/gslb/{uuid}/runtime/internal,/gslbservice/{uuid},/gslbservice/{uuid}/runtime,/gslbgeodbprofile/{uuid},/gslbgeodbprofile/{uuid}/runtime,/debugcontroller/{uuid},/errorpageprofile/{uuid},/errorpagebody/{uuid},/alertsyslogconfig/{uuid},/alertemailconfig/{uuid},/alertscriptconfig/{uuid},/alertconfig/{uuid},/actiongroupconfig/{uuid},/alertobjectlist/{uuid},/alert/{uuid},/inventoryfaultconfig/{uuid},/tenantsystemconfiguration/{uuid}',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/networksecuritypolicy$Uuid" : '/api/networksecuritypolicy'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestNetworksecuritypolicy
    }
}
Function Set-AVIRestNetworksecuritypolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestNetworksecuritypolicy
        $object.name = 'New name'
        Set-AviRestNetworksecuritypolicy $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworksecuritypolicy')]$Networksecuritypolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Networksecuritypolicy.uuid
        $global:body = ConvertTo-JSON $Networksecuritypolicy -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/networksecuritypolicy/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Networksecuritypolicy.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestNetworksecuritypolicy
        }
    }
}
Function Set-AVIRestFileobject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestFileobject
        $object.name = 'New name'
        Set-AviRestFileobject $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestFileobject')]$Fileobject
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Fileobject.uuid
        $global:body = ConvertTo-JSON $Fileobject -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/fileobject/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Fileobject.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestFileobject
        }
    }
}
Function Set-AVIRestRole {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestRole
        $object.name = 'New name'
        Set-AviRestRole $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestRole')]$Role
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Role.uuid
        $global:body = ConvertTo-JSON $Role -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/role/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Role.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestRole
        }
    }
}
Function Set-AVIRestTenant {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestTenant
        $object.name = 'New name'
        Set-AviRestTenant $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTenant')]$Tenant
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Tenant.uuid
        $global:body = ConvertTo-JSON $Tenant -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/tenant/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Tenant.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestTenant
        }
    }
}
Function Set-AVIRestUseractivity {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestUseractivity
        $object.name = 'New name'
        Set-AviRestUseractivity $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUseractivity')]$Useractivity
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Useractivity.uuid
        $global:body = ConvertTo-JSON $Useractivity -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/useractivity/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Useractivity.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestUseractivity
        }
    }
}
Function Set-AVIRestUseraccountprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestUseraccountprofile
        $object.name = 'New name'
        Set-AviRestUseraccountprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUseraccountprofile')]$Useraccountprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Useraccountprofile.uuid
        $global:body = ConvertTo-JSON $Useraccountprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/useraccountprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Useraccountprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestUseraccountprofile
        }
    }
}
Function Set-AVIRestClusterclouddetails {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestClusterclouddetails
        $object.name = 'New name'
        Set-AviRestClusterclouddetails $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestClusterclouddetails')]$Clusterclouddetails
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Clusterclouddetails.uuid
        $global:body = ConvertTo-JSON $Clusterclouddetails -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/clusterclouddetails/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Clusterclouddetails.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestClusterclouddetails
        }
    }
}
Function Set-AVIRestApplicationprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestApplicationprofile
        $object.name = 'New name'
        Set-AviRestApplicationprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestApplicationprofile')]$Applicationprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Applicationprofile.uuid
        $global:body = ConvertTo-JSON $Applicationprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/applicationprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Applicationprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestApplicationprofile
        }
    }
}
Function Set-AVIRestPoolgroup {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestPoolgroup
        $object.name = 'New name'
        Set-AviRestPoolgroup $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolgroup')]$Poolgroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Poolgroup.uuid
        $global:body = ConvertTo-JSON $Poolgroup -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/poolgroup/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Poolgroup.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolgroup
        }
    }
}
Function Set-AVIRestSslprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestSslprofile
        $object.name = 'New name'
        Set-AviRestSslprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSslprofile')]$Sslprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Sslprofile.uuid
        $global:body = ConvertTo-JSON $Sslprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/sslprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Sslprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestSslprofile
        }
    }
}
Function Set-AVIRestSslkeyandcertificate {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestSslkeyandcertificate
        $object.name = 'New name'
        Set-AviRestSslkeyandcertificate $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSslkeyandcertificate')]$Sslkeyandcertificate
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Sslkeyandcertificate.uuid
        $global:body = ConvertTo-JSON $Sslkeyandcertificate -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/sslkeyandcertificate/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Sslkeyandcertificate.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestSslkeyandcertificate
        }
    }
}
Function Set-AVIRestPkiprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestPkiprofile
        $object.name = 'New name'
        Set-AviRestPkiprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPkiprofile')]$Pkiprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Pkiprofile.uuid
        $global:body = ConvertTo-JSON $Pkiprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/pkiprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Pkiprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestPkiprofile
        }
    }
}
Function Set-AVIRestCertificatemanagementprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestCertificatemanagementprofile
        $object.name = 'New name'
        Set-AviRestCertificatemanagementprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCertificatemanagementprofile')]$Certificatemanagementprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Certificatemanagementprofile.uuid
        $global:body = ConvertTo-JSON $Certificatemanagementprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/certificatemanagementprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Certificatemanagementprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestCertificatemanagementprofile
        }
    }
}
Function Set-AVIRestVrfcontext {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestVrfcontext
        $object.name = 'New name'
        Set-AviRestVrfcontext $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVrfcontext')]$Vrfcontext
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Vrfcontext.uuid
        $global:body = ConvertTo-JSON $Vrfcontext -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/vrfcontext/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Vrfcontext.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVrfcontext
        }
    }
}
Function Set-AVIRestWebapput {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestWebapput
        $object.name = 'New name'
        Set-AviRestWebapput $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWebapput')]$Webapput
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Webapput.uuid
        $global:body = ConvertTo-JSON $Webapput -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/webapput/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Webapput.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestWebapput
        }
    }
}
Function Set-AVIRestIcapprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestIcapprofile
        $object.name = 'New name'
        Set-AviRestIcapprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestIcapprofile')]$Icapprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Icapprofile.uuid
        $global:body = ConvertTo-JSON $Icapprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/icapprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Icapprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestIcapprofile
        }
    }
}
Function Set-AVIRestLabelgroup {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestLabelgroup
        $object.name = 'New name'
        Set-AviRestLabelgroup $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestLabelgroup')]$Labelgroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Labelgroup.uuid
        $global:body = ConvertTo-JSON $Labelgroup -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/labelgroup/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Labelgroup.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestLabelgroup
        }
    }
}
Function Set-AVIRestTrafficcloneprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestTrafficcloneprofile
        $object.name = 'New name'
        Set-AviRestTrafficcloneprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTrafficcloneprofile')]$Trafficcloneprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Trafficcloneprofile.uuid
        $global:body = ConvertTo-JSON $Trafficcloneprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/trafficcloneprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Trafficcloneprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestTrafficcloneprofile
        }
    }
}
Function Set-AVIRestGeodb {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestGeodb
        $object.name = 'New name'
        Set-AviRestGeodb $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGeodb')]$Geodb
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Geodb.uuid
        $global:body = ConvertTo-JSON $Geodb -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/geodb/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Geodb.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestGeodb
        }
    }
}
Function Set-AVIRestJobs {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestJobs
        $object.name = 'New name'
        Set-AviRestJobs $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestJobs')]$Jobs
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Jobs.uuid
        $global:body = ConvertTo-JSON $Jobs -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/jobs/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Jobs.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestJobs
        }
    }
}
Function Set-AVIRestTestsedatastorelevel1 {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestTestsedatastorelevel1
        $object.name = 'New name'
        Set-AviRestTestsedatastorelevel1 $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTestsedatastorelevel1')]$Testsedatastorelevel1
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Testsedatastorelevel1.uuid
        $global:body = ConvertTo-JSON $Testsedatastorelevel1 -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/testsedatastorelevel1/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Testsedatastorelevel1.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestTestsedatastorelevel1
        }
    }
}
Function Set-AVIRestTestsedatastorelevel2 {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestTestsedatastorelevel2
        $object.name = 'New name'
        Set-AviRestTestsedatastorelevel2 $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTestsedatastorelevel2')]$Testsedatastorelevel2
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Testsedatastorelevel2.uuid
        $global:body = ConvertTo-JSON $Testsedatastorelevel2 -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/testsedatastorelevel2/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Testsedatastorelevel2.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestTestsedatastorelevel2
        }
    }
}
Function Set-AVIRestTestsedatastorelevel3 {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestTestsedatastorelevel3
        $object.name = 'New name'
        Set-AviRestTestsedatastorelevel3 $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTestsedatastorelevel3')]$Testsedatastorelevel3
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Testsedatastorelevel3.uuid
        $global:body = ConvertTo-JSON $Testsedatastorelevel3 -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/testsedatastorelevel3/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Testsedatastorelevel3.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestTestsedatastorelevel3
        }
    }
}
Function Set-AVIRestAnalyticsprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestAnalyticsprofile
        $object.name = 'New name'
        Set-AviRestAnalyticsprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAnalyticsprofile')]$Analyticsprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Analyticsprofile.uuid
        $global:body = ConvertTo-JSON $Analyticsprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/analyticsprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Analyticsprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestAnalyticsprofile
        }
    }
}
Function Set-AVIRestAlbservicesfileupload {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestAlbservicesfileupload
        $object.name = 'New name'
        Set-AviRestAlbservicesfileupload $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlbservicesfileupload')]$Albservicesfileupload
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Albservicesfileupload.uuid
        $global:body = ConvertTo-JSON $Albservicesfileupload -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/albservicesfileupload/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Albservicesfileupload.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlbservicesfileupload
        }
    }
}
Function Set-AVIRestSecurechannelmapping {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestSecurechannelmapping
        $object.name = 'New name'
        Set-AviRestSecurechannelmapping $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSecurechannelmapping')]$Securechannelmapping
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Securechannelmapping.uuid
        $global:body = ConvertTo-JSON $Securechannelmapping -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/securechannelmapping/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Securechannelmapping.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestSecurechannelmapping
        }
    }
}
Function Set-AVIRestSecurechannelavailablelocalips {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestSecurechannelavailablelocalips
        $object.name = 'New name'
        Set-AviRestSecurechannelavailablelocalips $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSecurechannelavailablelocalips')]$Securechannelavailablelocalips
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Securechannelavailablelocalips.uuid
        $global:body = ConvertTo-JSON $Securechannelavailablelocalips -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/securechannelavailablelocalips/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Securechannelavailablelocalips.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestSecurechannelavailablelocalips
        }
    }
}
Function Set-AVIRestSecurechanneltoken {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestSecurechanneltoken
        $object.name = 'New name'
        Set-AviRestSecurechanneltoken $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSecurechanneltoken')]$Securechanneltoken
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Securechanneltoken.uuid
        $global:body = ConvertTo-JSON $Securechanneltoken -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/securechanneltoken/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Securechanneltoken.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestSecurechanneltoken
        }
    }
}
Function Set-AVIRestMicroservice {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestMicroservice
        $object.name = 'New name'
        Set-AviRestMicroservice $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestMicroservice')]$Microservice
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Microservice.uuid
        $global:body = ConvertTo-JSON $Microservice -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/microservice/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Microservice.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestMicroservice
        }
    }
}
Function Set-AVIRestCustomipamdnsprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestCustomipamdnsprofile
        $object.name = 'New name'
        Set-AviRestCustomipamdnsprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCustomipamdnsprofile')]$Customipamdnsprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Customipamdnsprofile.uuid
        $global:body = ConvertTo-JSON $Customipamdnsprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/customipamdnsprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Customipamdnsprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestCustomipamdnsprofile
        }
    }
}
Function Set-AVIRestJwtserverprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestJwtserverprofile
        $object.name = 'New name'
        Set-AviRestJwtserverprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestJwtserverprofile')]$Jwtserverprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Jwtserverprofile.uuid
        $global:body = ConvertTo-JSON $Jwtserverprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/jwtserverprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Jwtserverprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestJwtserverprofile
        }
    }
}
Function Set-AVIRestAuthprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestAuthprofile
        $object.name = 'New name'
        Set-AviRestAuthprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAuthprofile')]$Authprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Authprofile.uuid
        $global:body = ConvertTo-JSON $Authprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/authprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Authprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestAuthprofile
        }
    }
}
Function Set-AVIRestAuthmappingprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestAuthmappingprofile
        $object.name = 'New name'
        Set-AviRestAuthmappingprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAuthmappingprofile')]$Authmappingprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Authmappingprofile.uuid
        $global:body = ConvertTo-JSON $Authmappingprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/authmappingprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Authmappingprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestAuthmappingprofile
        }
    }
}
Function Set-AVIRestWafpolicypsmgroup {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestWafpolicypsmgroup
        $object.name = 'New name'
        Set-AviRestWafpolicypsmgroup $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafpolicypsmgroup')]$Wafpolicypsmgroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Wafpolicypsmgroup.uuid
        $global:body = ConvertTo-JSON $Wafpolicypsmgroup -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/wafpolicypsmgroup/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Wafpolicypsmgroup.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestWafpolicypsmgroup
        }
    }
}
Function Set-AVIRestBotdetectionpolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestBotdetectionpolicy
        $object.name = 'New name'
        Set-AviRestBotdetectionpolicy $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBotdetectionpolicy')]$Botdetectionpolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Botdetectionpolicy.uuid
        $global:body = ConvertTo-JSON $Botdetectionpolicy -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/botdetectionpolicy/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Botdetectionpolicy.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestBotdetectionpolicy
        }
    }
}
Function Set-AVIRestBotmapping {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestBotmapping
        $object.name = 'New name'
        Set-AviRestBotmapping $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBotmapping')]$Botmapping
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Botmapping.uuid
        $global:body = ConvertTo-JSON $Botmapping -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/botmapping/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Botmapping.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestBotmapping
        }
    }
}
Function Set-AVIRestBotconfigconsolidator {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestBotconfigconsolidator
        $object.name = 'New name'
        Set-AviRestBotconfigconsolidator $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBotconfigconsolidator')]$Botconfigconsolidator
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Botconfigconsolidator.uuid
        $global:body = ConvertTo-JSON $Botconfigconsolidator -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/botconfigconsolidator/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Botconfigconsolidator.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestBotconfigconsolidator
        }
    }
}
Function Set-AVIRestBotipreputationtypemapping {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestBotipreputationtypemapping
        $object.name = 'New name'
        Set-AviRestBotipreputationtypemapping $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBotipreputationtypemapping')]$Botipreputationtypemapping
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Botipreputationtypemapping.uuid
        $global:body = ConvertTo-JSON $Botipreputationtypemapping -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/botipreputationtypemapping/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Botipreputationtypemapping.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestBotipreputationtypemapping
        }
    }
}
Function Set-AVIRestDynamicdnsrecord {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestDynamicdnsrecord
        $object.name = 'New name'
        Set-AviRestDynamicdnsrecord $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDynamicdnsrecord')]$Dynamicdnsrecord
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Dynamicdnsrecord.uuid
        $global:body = ConvertTo-JSON $Dynamicdnsrecord -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/dynamicdnsrecord/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Dynamicdnsrecord.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestDynamicdnsrecord
        }
    }
}
Function Set-AVIRestVsgs {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestVsgs
        $object.name = 'New name'
        Set-AviRestVsgs $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVsgs')]$Vsgs
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Vsgs.uuid
        $global:body = ConvertTo-JSON $Vsgs -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/vsgs/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Vsgs.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVsgs
        }
    }
}
Function Set-AVIRestServerautoscalepolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestServerautoscalepolicy
        $object.name = 'New name'
        Set-AviRestServerautoscalepolicy $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServerautoscalepolicy')]$Serverautoscalepolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Serverautoscalepolicy.uuid
        $global:body = ConvertTo-JSON $Serverautoscalepolicy -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/serverautoscalepolicy/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Serverautoscalepolicy.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestServerautoscalepolicy
        }
    }
}
Function Set-AVIRestAutoscalelaunchconfig {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestAutoscalelaunchconfig
        $object.name = 'New name'
        Set-AviRestAutoscalelaunchconfig $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAutoscalelaunchconfig')]$Autoscalelaunchconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Autoscalelaunchconfig.uuid
        $global:body = ConvertTo-JSON $Autoscalelaunchconfig -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/autoscalelaunchconfig/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Autoscalelaunchconfig.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestAutoscalelaunchconfig
        }
    }
}
Function Set-AVIRestControllerproperties {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestControllerproperties
        $object.name = 'New name'
        Set-AviRestControllerproperties $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestControllerproperties')]$Controllerproperties
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Controllerproperties.uuid
        $global:body = ConvertTo-JSON $Controllerproperties -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/controllerproperties/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Controllerproperties.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestControllerproperties
        }
    }
}
Function Set-AVIRestNetworkservice {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestNetworkservice
        $object.name = 'New name'
        Set-AviRestNetworkservice $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworkservice')]$Networkservice
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Networkservice.uuid
        $global:body = ConvertTo-JSON $Networkservice -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/networkservice/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Networkservice.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestNetworkservice
        }
    }
}
Function Set-AVIRestLicensingStatus {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestLicensingStatus
        $object.name = 'New name'
        Set-AviRestLicensingStatus $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestLicensingStatus')]$LicensingStatus
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $LicensingStatus.uuid
        $global:body = ConvertTo-JSON $LicensingStatus -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/licensing/status/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($LicensingStatus.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestLicensingStatus
        }
    }
}
Function Set-AVIRestAlbservicesconfig {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestAlbservicesconfig
        $object.name = 'New name'
        Set-AviRestAlbservicesconfig $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlbservicesconfig')]$Albservicesconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Albservicesconfig.uuid
        $global:body = ConvertTo-JSON $Albservicesconfig -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/albservicesconfig/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Albservicesconfig.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlbservicesconfig
        }
    }
}
Function Set-AVIRestPoolInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestPoolInventory
        $object.name = 'New name'
        Set-AviRestPoolInventory $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolInventory')]$PoolInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $PoolInventory.uuid
        $global:body = ConvertTo-JSON $PoolInventory -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/pool-inventory/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($PoolInventory.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolInventory
        }
    }
}
Function Set-AVIRestPoolgroupInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestPoolgroupInventory
        $object.name = 'New name'
        Set-AviRestPoolgroupInventory $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolgroupInventory')]$PoolgroupInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $PoolgroupInventory.uuid
        $global:body = ConvertTo-JSON $PoolgroupInventory -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/poolgroup-inventory/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($PoolgroupInventory.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolgroupInventory
        }
    }
}
Function Set-AVIRestVsvipInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestVsvipInventory
        $object.name = 'New name'
        Set-AviRestVsvipInventory $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVsvipInventory')]$VsvipInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $VsvipInventory.uuid
        $global:body = ConvertTo-JSON $VsvipInventory -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/vsvip-inventory/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($VsvipInventory.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVsvipInventory
        }
    }
}
Function Set-AVIRestVirtualserviceInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestVirtualserviceInventory
        $object.name = 'New name'
        Set-AviRestVirtualserviceInventory $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVirtualserviceInventory')]$VirtualserviceInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $VirtualserviceInventory.uuid
        $global:body = ConvertTo-JSON $VirtualserviceInventory -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/virtualservice-inventory/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($VirtualserviceInventory.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVirtualserviceInventory
        }
    }
}
Function Set-AVIRestServiceengineInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestServiceengineInventory
        $object.name = 'New name'
        Set-AviRestServiceengineInventory $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengineInventory')]$ServiceengineInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $ServiceengineInventory.uuid
        $global:body = ConvertTo-JSON $ServiceengineInventory -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/serviceengine-inventory/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($ServiceengineInventory.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengineInventory
        }
    }
}
Function Set-AVIRestServiceenginegroupInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestServiceenginegroupInventory
        $object.name = 'New name'
        Set-AviRestServiceenginegroupInventory $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceenginegroupInventory')]$ServiceenginegroupInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $ServiceenginegroupInventory.uuid
        $global:body = ConvertTo-JSON $ServiceenginegroupInventory -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/serviceenginegroup-inventory/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($ServiceenginegroupInventory.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceenginegroupInventory
        }
    }
}
Function Set-AVIRestUpgradestatussummary {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestUpgradestatussummary
        $object.name = 'New name'
        Set-AviRestUpgradestatussummary $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUpgradestatussummary')]$Upgradestatussummary
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Upgradestatussummary.uuid
        $global:body = ConvertTo-JSON $Upgradestatussummary -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/upgradestatussummary/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Upgradestatussummary.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestUpgradestatussummary
        }
    }
}
Function Set-AVIRestServiceenginegroup {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestServiceenginegroup
        $object.name = 'New name'
        Set-AviRestServiceenginegroup $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceenginegroup')]$Serviceenginegroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Serviceenginegroup.uuid
        $global:body = ConvertTo-JSON $Serviceenginegroup -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/serviceenginegroup/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Serviceenginegroup.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceenginegroup
        }
    }
}
Function Set-AVIRestNetworkInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestNetworkInventory
        $object.name = 'New name'
        Set-AviRestNetworkInventory $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworkInventory')]$NetworkInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $NetworkInventory.uuid
        $global:body = ConvertTo-JSON $NetworkInventory -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/network-inventory/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($NetworkInventory.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestNetworkInventory
        }
    }
}
Function Set-AVIRestNetworkruntime {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestNetworkruntime
        $object.name = 'New name'
        Set-AviRestNetworkruntime $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworkruntime')]$Networkruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Networkruntime.uuid
        $global:body = ConvertTo-JSON $Networkruntime -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/networkruntime/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Networkruntime.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestNetworkruntime
        }
    }
}
Function Set-AVIRestVimgrnwruntime {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestVimgrnwruntime
        $object.name = 'New name'
        Set-AviRestVimgrnwruntime $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrnwruntime')]$Vimgrnwruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Vimgrnwruntime.uuid
        $global:body = ConvertTo-JSON $Vimgrnwruntime -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/vimgrnwruntime/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrnwruntime.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrnwruntime
        }
    }
}
Function Set-AVIRestCloudInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestCloudInventory
        $object.name = 'New name'
        Set-AviRestCloudInventory $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloudInventory')]$CloudInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $CloudInventory.uuid
        $global:body = ConvertTo-JSON $CloudInventory -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/cloud-inventory/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($CloudInventory.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestCloudInventory
        }
    }
}
Function Set-AVIRestGslbInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestGslbInventory
        $object.name = 'New name'
        Set-AviRestGslbInventory $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGslbInventory')]$GslbInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $GslbInventory.uuid
        $global:body = ConvertTo-JSON $GslbInventory -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/gslb-inventory/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($GslbInventory.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestGslbInventory
        }
    }
}
Function Set-AVIRestGslbserviceInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestGslbserviceInventory
        $object.name = 'New name'
        Set-AviRestGslbserviceInventory $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGslbserviceInventory')]$GslbserviceInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $GslbserviceInventory.uuid
        $global:body = ConvertTo-JSON $GslbserviceInventory -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/gslbservice-inventory/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($GslbserviceInventory.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestGslbserviceInventory
        }
    }
}
Function Set-AVIRestWafpolicypsmgroupInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestWafpolicypsmgroupInventory
        $object.name = 'New name'
        Set-AviRestWafpolicypsmgroupInventory $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafpolicypsmgroupInventory')]$WafpolicypsmgroupInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $WafpolicypsmgroupInventory.uuid
        $global:body = ConvertTo-JSON $WafpolicypsmgroupInventory -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/wafpolicypsmgroup-inventory/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($WafpolicypsmgroupInventory.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestWafpolicypsmgroupInventory
        }
    }
}
Function Set-AVIRestFederationcheckpointInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestFederationcheckpointInventory
        $object.name = 'New name'
        Set-AviRestFederationcheckpointInventory $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestFederationcheckpointInventory')]$FederationcheckpointInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $FederationcheckpointInventory.uuid
        $global:body = ConvertTo-JSON $FederationcheckpointInventory -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/federationcheckpoint-inventory/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($FederationcheckpointInventory.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestFederationcheckpointInventory
        }
    }
}
Function Set-AVIRestFederationcheckpoint {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestFederationcheckpoint
        $object.name = 'New name'
        Set-AviRestFederationcheckpoint $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestFederationcheckpoint')]$Federationcheckpoint
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Federationcheckpoint.uuid
        $global:body = ConvertTo-JSON $Federationcheckpoint -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/federationcheckpoint/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Federationcheckpoint.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestFederationcheckpoint
        }
    }
}
Function Set-AVIRestIpreputationdb {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestIpreputationdb
        $object.name = 'New name'
        Set-AviRestIpreputationdb $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestIpreputationdb')]$Ipreputationdb
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Ipreputationdb.uuid
        $global:body = ConvertTo-JSON $Ipreputationdb -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/ipreputationdb/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Ipreputationdb.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestIpreputationdb
        }
    }
}
Function Set-AVIRestNetwork {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestNetwork
        $object.name = 'New name'
        Set-AviRestNetwork $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetwork')]$Network
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Network.uuid
        $global:body = ConvertTo-JSON $Network -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/network/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Network.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestNetwork
        }
    }
}
Function Set-AVIRestIpaddrgroup {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestIpaddrgroup
        $object.name = 'New name'
        Set-AviRestIpaddrgroup $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestIpaddrgroup')]$Ipaddrgroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Ipaddrgroup.uuid
        $global:body = ConvertTo-JSON $Ipaddrgroup -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/ipaddrgroup/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Ipaddrgroup.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestIpaddrgroup
        }
    }
}
Function Set-AVIRestStringgroup {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestStringgroup
        $object.name = 'New name'
        Set-AviRestStringgroup $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestStringgroup')]$Stringgroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Stringgroup.uuid
        $global:body = ConvertTo-JSON $Stringgroup -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/stringgroup/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Stringgroup.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestStringgroup
        }
    }
}
Function Set-AVIRestMicroservicegroup {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestMicroservicegroup
        $object.name = 'New name'
        Set-AviRestMicroservicegroup $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestMicroservicegroup')]$Microservicegroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Microservicegroup.uuid
        $global:body = ConvertTo-JSON $Microservicegroup -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/microservicegroup/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Microservicegroup.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestMicroservicegroup
        }
    }
}
Function Set-AVIRestWafcrs {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestWafcrs
        $object.name = 'New name'
        Set-AviRestWafcrs $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafcrs')]$Wafcrs
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Wafcrs.uuid
        $global:body = ConvertTo-JSON $Wafcrs -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/wafcrs/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Wafcrs.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestWafcrs
        }
    }
}
Function Set-AVIRestSystemconfiguration {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestSystemconfiguration
        $object.name = 'New name'
        Set-AviRestSystemconfiguration $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSystemconfiguration')]$Systemconfiguration
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Systemconfiguration.uuid
        $global:body = ConvertTo-JSON $Systemconfiguration -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/systemconfiguration/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Systemconfiguration.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestSystemconfiguration
        }
    }
}
Function Set-AVIRestControllersite {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestControllersite
        $object.name = 'New name'
        Set-AviRestControllersite $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestControllersite')]$Controllersite
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Controllersite.uuid
        $global:body = ConvertTo-JSON $Controllersite -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/controllersite/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Controllersite.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestControllersite
        }
    }
}
Function Set-AVIRestCloudconnectoruser {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestCloudconnectoruser
        $object.name = 'New name'
        Set-AviRestCloudconnectoruser $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloudconnectoruser')]$Cloudconnectoruser
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Cloudconnectoruser.uuid
        $global:body = ConvertTo-JSON $Cloudconnectoruser -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/cloudconnectoruser/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Cloudconnectoruser.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestCloudconnectoruser
        }
    }
}
Function Set-AVIRestSeproperties {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestSeproperties
        $object.name = 'New name'
        Set-AviRestSeproperties $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSeproperties')]$Seproperties
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Seproperties.uuid
        $global:body = ConvertTo-JSON $Seproperties -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/seproperties/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Seproperties.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestSeproperties
        }
    }
}
Function Set-AVIRestCsrfpolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestCsrfpolicy
        $object.name = 'New name'
        Set-AviRestCsrfpolicy $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCsrfpolicy')]$Csrfpolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Csrfpolicy.uuid
        $global:body = ConvertTo-JSON $Csrfpolicy -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/csrfpolicy/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Csrfpolicy.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestCsrfpolicy
        }
    }
}
Function Set-AVIRestMemorybalancernotifier {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestMemorybalancernotifier
        $object.name = 'New name'
        Set-AviRestMemorybalancernotifier $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestMemorybalancernotifier')]$Memorybalancernotifier
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Memorybalancernotifier.uuid
        $global:body = ConvertTo-JSON $Memorybalancernotifier -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/memorybalancernotifier/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Memorybalancernotifier.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestMemorybalancernotifier
        }
    }
}
Function Set-AVIRestVcenterserver {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestVcenterserver
        $object.name = 'New name'
        Set-AviRestVcenterserver $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVcenterserver')]$Vcenterserver
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Vcenterserver.uuid
        $global:body = ConvertTo-JSON $Vcenterserver -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/vcenterserver/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Vcenterserver.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVcenterserver
        }
    }
}
Function Set-AVIRestAvailabilityzone {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestAvailabilityzone
        $object.name = 'New name'
        Set-AviRestAvailabilityzone $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAvailabilityzone')]$Availabilityzone
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Availabilityzone.uuid
        $global:body = ConvertTo-JSON $Availabilityzone -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/availabilityzone/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Availabilityzone.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestAvailabilityzone
        }
    }
}
Function Set-AVIRestNsxtsegmentruntime {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestNsxtsegmentruntime
        $object.name = 'New name'
        Set-AviRestNsxtsegmentruntime $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNsxtsegmentruntime')]$Nsxtsegmentruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Nsxtsegmentruntime.uuid
        $global:body = ConvertTo-JSON $Nsxtsegmentruntime -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/nsxtsegmentruntime/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Nsxtsegmentruntime.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestNsxtsegmentruntime
        }
    }
}
Function Set-AVIRestStatediffoperation {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestStatediffoperation
        $object.name = 'New name'
        Set-AviRestStatediffoperation $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestStatediffoperation')]$Statediffoperation
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Statediffoperation.uuid
        $global:body = ConvertTo-JSON $Statediffoperation -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/statediffoperation/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Statediffoperation.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestStatediffoperation
        }
    }
}
Function Set-AVIRestApplicationpersistenceprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestApplicationpersistenceprofile
        $object.name = 'New name'
        Set-AviRestApplicationpersistenceprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestApplicationpersistenceprofile')]$Applicationpersistenceprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Applicationpersistenceprofile.uuid
        $global:body = ConvertTo-JSON $Applicationpersistenceprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/applicationpersistenceprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Applicationpersistenceprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestApplicationpersistenceprofile
        }
    }
}
Function Set-AVIRestScvsstateinfo {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestScvsstateinfo
        $object.name = 'New name'
        Set-AviRestScvsstateinfo $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestScvsstateinfo')]$Scvsstateinfo
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Scvsstateinfo.uuid
        $global:body = ConvertTo-JSON $Scvsstateinfo -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/scvsstateinfo/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Scvsstateinfo.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestScvsstateinfo
        }
    }
}
Function Set-AVIRestScpoolserverstateinfo {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestScpoolserverstateinfo
        $object.name = 'New name'
        Set-AviRestScpoolserverstateinfo $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestScpoolserverstateinfo')]$Scpoolserverstateinfo
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Scpoolserverstateinfo.uuid
        $global:body = ConvertTo-JSON $Scpoolserverstateinfo -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/scpoolserverstateinfo/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Scpoolserverstateinfo.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestScpoolserverstateinfo
        }
    }
}
Function Set-AVIRestAlbservicesjob {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestAlbservicesjob
        $object.name = 'New name'
        Set-AviRestAlbservicesjob $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlbservicesjob')]$Albservicesjob
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Albservicesjob.uuid
        $global:body = ConvertTo-JSON $Albservicesjob -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/albservicesjob/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Albservicesjob.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlbservicesjob
        }
    }
}
Function Set-AVIRestImage {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestImage
        $object.name = 'New name'
        Set-AviRestImage $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestImage')]$Image
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Image.uuid
        $global:body = ConvertTo-JSON $Image -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/image/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Image.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestImage
        }
    }
}
Function Set-AVIRestCloud {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestCloud
        $object.name = 'New name'
        Set-AviRestCloud $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloud')]$Cloud
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Cloud.uuid
        $global:body = ConvertTo-JSON $Cloud -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/cloud/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Cloud.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestCloud
        }
    }
}
Function Set-AVIRestCloudGc {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestCloudGc
        $object.name = 'New name'
        Set-AviRestCloudGc $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloudGc')]$CloudGc
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $CloudGc.uuid
        $global:body = ConvertTo-JSON $CloudGc -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/cloud/${uuid}/gc/"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($CloudGc.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestCloudGc
        }
    }
}
Function Set-AVIRestCloudruntime {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestCloudruntime
        $object.name = 'New name'
        Set-AviRestCloudruntime $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloudruntime')]$Cloudruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Cloudruntime.uuid
        $global:body = ConvertTo-JSON $Cloudruntime -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/cloudruntime/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Cloudruntime.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestCloudruntime
        }
    }
}
Function Set-AVIRestL4policyset {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestL4policyset
        $object.name = 'New name'
        Set-AviRestL4policyset $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestL4policyset')]$L4policyset
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $L4policyset.uuid
        $global:body = ConvertTo-JSON $L4policyset -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/l4policyset/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($L4policyset.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestL4policyset
        }
    }
}
Function Set-AVIRestHealthmonitor {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestHealthmonitor
        $object.name = 'New name'
        Set-AviRestHealthmonitor $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestHealthmonitor')]$Healthmonitor
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Healthmonitor.uuid
        $global:body = ConvertTo-JSON $Healthmonitor -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/healthmonitor/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Healthmonitor.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestHealthmonitor
        }
    }
}
Function Set-AVIRestUpgradestatusinfo {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestUpgradestatusinfo
        $object.name = 'New name'
        Set-AviRestUpgradestatusinfo $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUpgradestatusinfo')]$Upgradestatusinfo
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Upgradestatusinfo.uuid
        $global:body = ConvertTo-JSON $Upgradestatusinfo -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/upgradestatusinfo/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Upgradestatusinfo.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestUpgradestatusinfo
        }
    }
}
Function Set-AVIRestCloudproperties {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestCloudproperties
        $object.name = 'New name'
        Set-AviRestCloudproperties $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloudproperties')]$Cloudproperties
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Cloudproperties.uuid
        $global:body = ConvertTo-JSON $Cloudproperties -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/cloudproperties/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Cloudproperties.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestCloudproperties
        }
    }
}
Function Set-AVIRestVsdatascriptset {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestVsdatascriptset
        $object.name = 'New name'
        Set-AviRestVsdatascriptset $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVsdatascriptset')]$Vsdatascriptset
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Vsdatascriptset.uuid
        $global:body = ConvertTo-JSON $Vsdatascriptset -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/vsdatascriptset/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Vsdatascriptset.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVsdatascriptset
        }
    }
}
Function Set-AVIRestControllerportalregistration {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestControllerportalregistration
        $object.name = 'New name'
        Set-AviRestControllerportalregistration $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestControllerportalregistration')]$Controllerportalregistration
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Controllerportalregistration.uuid
        $global:body = ConvertTo-JSON $Controllerportalregistration -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/controllerportalregistration/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Controllerportalregistration.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestControllerportalregistration
        }
    }
}
Function Set-AVIRestUser {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestUser
        $object.name = 'New name'
        Set-AviRestUser $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUser')]$User
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $User.uuid
        $global:body = ConvertTo-JSON $User -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/user/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($User.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestUser
        }
    }
}
Function Set-AVIRestNetworkprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestNetworkprofile
        $object.name = 'New name'
        Set-AviRestNetworkprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworkprofile')]$Networkprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Networkprofile.uuid
        $global:body = ConvertTo-JSON $Networkprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/networkprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Networkprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestNetworkprofile
        }
    }
}
Function Set-AVIRestDnspolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestDnspolicy
        $object.name = 'New name'
        Set-AviRestDnspolicy $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDnspolicy')]$Dnspolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Dnspolicy.uuid
        $global:body = ConvertTo-JSON $Dnspolicy -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/dnspolicy/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Dnspolicy.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestDnspolicy
        }
    }
}
Function Set-AVIRestHardwaresecuritymodulegroup {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestHardwaresecuritymodulegroup
        $object.name = 'New name'
        Set-AviRestHardwaresecuritymodulegroup $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestHardwaresecuritymodulegroup')]$Hardwaresecuritymodulegroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Hardwaresecuritymodulegroup.uuid
        $global:body = ConvertTo-JSON $Hardwaresecuritymodulegroup -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/hardwaresecuritymodulegroup/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Hardwaresecuritymodulegroup.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestHardwaresecuritymodulegroup
        }
    }
}
Function Set-AVIRestLogcontroller {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestLogcontroller
        $object.name = 'New name'
        Set-AviRestLogcontroller $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestLogcontroller')]$Logcontroller
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Logcontroller.uuid
        $global:body = ConvertTo-JSON $Logcontroller -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/logcontroller/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Logcontroller.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestLogcontroller
        }
    }
}
Function Set-AVIRestProtocolparser {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestProtocolparser
        $object.name = 'New name'
        Set-AviRestProtocolparser $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestProtocolparser')]$Protocolparser
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Protocolparser.uuid
        $global:body = ConvertTo-JSON $Protocolparser -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/protocolparser/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Protocolparser.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestProtocolparser
        }
    }
}
Function Set-AVIRestScheduler {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestScheduler
        $object.name = 'New name'
        Set-AviRestScheduler $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestScheduler')]$Scheduler
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Scheduler.uuid
        $global:body = ConvertTo-JSON $Scheduler -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/scheduler/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Scheduler.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestScheduler
        }
    }
}
Function Set-AVIRestBackupconfiguration {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestBackupconfiguration
        $object.name = 'New name'
        Set-AviRestBackupconfiguration $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBackupconfiguration')]$Backupconfiguration
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Backupconfiguration.uuid
        $global:body = ConvertTo-JSON $Backupconfiguration -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/backupconfiguration/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Backupconfiguration.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestBackupconfiguration
        }
    }
}
Function Set-AVIRestVimgrsevmruntime {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestVimgrsevmruntime
        $object.name = 'New name'
        Set-AviRestVimgrsevmruntime $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrsevmruntime')]$Vimgrsevmruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Vimgrsevmruntime.uuid
        $global:body = ConvertTo-JSON $Vimgrsevmruntime -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/vimgrsevmruntime/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrsevmruntime.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrsevmruntime
        }
    }
}
Function Set-AVIRestVimgrvmruntime {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestVimgrvmruntime
        $object.name = 'New name'
        Set-AviRestVimgrvmruntime $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvmruntime')]$Vimgrvmruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Vimgrvmruntime.uuid
        $global:body = ConvertTo-JSON $Vimgrvmruntime -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/vimgrvmruntime/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrvmruntime.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvmruntime
        }
    }
}
Function Set-AVIRestVimgrhostruntime {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestVimgrhostruntime
        $object.name = 'New name'
        Set-AviRestVimgrhostruntime $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrhostruntime')]$Vimgrhostruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Vimgrhostruntime.uuid
        $global:body = ConvertTo-JSON $Vimgrhostruntime -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/vimgrhostruntime/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrhostruntime.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrhostruntime
        }
    }
}
Function Set-AVIRestVimgrclusterruntime {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestVimgrclusterruntime
        $object.name = 'New name'
        Set-AviRestVimgrclusterruntime $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrclusterruntime')]$Vimgrclusterruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Vimgrclusterruntime.uuid
        $global:body = ConvertTo-JSON $Vimgrclusterruntime -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/vimgrclusterruntime/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrclusterruntime.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrclusterruntime
        }
    }
}
Function Set-AVIRestVimgrvcenterdatacenters {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestVimgrvcenterdatacenters
        $object.name = 'New name'
        Set-AviRestVimgrvcenterdatacenters $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenterdatacenters')]$Vimgrvcenterdatacenters
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Vimgrvcenterdatacenters.uuid
        $global:body = ConvertTo-JSON $Vimgrvcenterdatacenters -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/vimgrvcenterdatacenters/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrvcenterdatacenters.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenterdatacenters
        }
    }
}
Function Set-AVIRestVimgrvcenternetworks {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestVimgrvcenternetworks
        $object.name = 'New name'
        Set-AviRestVimgrvcenternetworks $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenternetworks')]$Vimgrvcenternetworks
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Vimgrvcenternetworks.uuid
        $global:body = ConvertTo-JSON $Vimgrvcenternetworks -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/vimgrvcenternetworks/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrvcenternetworks.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenternetworks
        }
    }
}
Function Set-AVIRestServiceengine {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestServiceengine
        $object.name = 'New name'
        Set-AviRestServiceengine $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengine')]$Serviceengine
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Serviceengine.uuid
        $global:body = ConvertTo-JSON $Serviceengine -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/serviceengine/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Serviceengine.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengine
        }
    }
}
Function Set-AVIRestWafpolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestWafpolicy
        $object.name = 'New name'
        Set-AviRestWafpolicy $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafpolicy')]$Wafpolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Wafpolicy.uuid
        $global:body = ConvertTo-JSON $Wafpolicy -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/wafpolicy/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Wafpolicy.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestWafpolicy
        }
    }
}
Function Set-AVIRestWafpolicyUpdateCrsRules {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestWafpolicyUpdateCrsRules
        $object.name = 'New name'
        Set-AviRestWafpolicyUpdateCrsRules $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafpolicyUpdateCrsRules')]$WafpolicyUpdateCrsRules
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $WafpolicyUpdateCrsRules.uuid
        $global:body = ConvertTo-JSON $WafpolicyUpdateCrsRules -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/wafpolicy/${uuid}/update-crs-rules"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($WafpolicyUpdateCrsRules.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestWafpolicyUpdateCrsRules
        }
    }
}
Function Set-AVIRestWafapplicationsignatureprovider {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestWafapplicationsignatureprovider
        $object.name = 'New name'
        Set-AviRestWafapplicationsignatureprovider $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafapplicationsignatureprovider')]$Wafapplicationsignatureprovider
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Wafapplicationsignatureprovider.uuid
        $global:body = ConvertTo-JSON $Wafapplicationsignatureprovider -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/wafapplicationsignatureprovider/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Wafapplicationsignatureprovider.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestWafapplicationsignatureprovider
        }
    }
}
Function Set-AVIRestSsopolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestSsopolicy
        $object.name = 'New name'
        Set-AviRestSsopolicy $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSsopolicy')]$Ssopolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Ssopolicy.uuid
        $global:body = ConvertTo-JSON $Ssopolicy -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/ssopolicy/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Ssopolicy.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestSsopolicy
        }
    }
}
Function Set-AVIRestNatpolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestNatpolicy
        $object.name = 'New name'
        Set-AviRestNatpolicy $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNatpolicy')]$Natpolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Natpolicy.uuid
        $global:body = ConvertTo-JSON $Natpolicy -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/natpolicy/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Natpolicy.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestNatpolicy
        }
    }
}
Function Set-AVIRestSiteversion {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestSiteversion
        $object.name = 'New name'
        Set-AviRestSiteversion $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSiteversion')]$Siteversion
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Siteversion.uuid
        $global:body = ConvertTo-JSON $Siteversion -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/siteversion/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Siteversion.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestSiteversion
        }
    }
}
Function Set-AVIRestWebhook {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestWebhook
        $object.name = 'New name'
        Set-AviRestWebhook $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWebhook')]$Webhook
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Webhook.uuid
        $global:body = ConvertTo-JSON $Webhook -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/webhook/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Webhook.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestWebhook
        }
    }
}
Function Set-AVIRestPool {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestPool
        $object.name = 'New name'
        Set-AviRestPool $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPool')]$Pool
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Pool.uuid
        $global:body = ConvertTo-JSON $Pool -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/pool/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Pool.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestPool
        }
    }
}
Function Set-AVIRestBackup {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestBackup
        $object.name = 'New name'
        Set-AviRestBackup $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBackup')]$Backup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Backup.uuid
        $global:body = ConvertTo-JSON $Backup -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/backup/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Backup.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestBackup
        }
    }
}
Function Set-AVIRestSecuritymanagerdata {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestSecuritymanagerdata
        $object.name = 'New name'
        Set-AviRestSecuritymanagerdata $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSecuritymanagerdata')]$Securitymanagerdata
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Securitymanagerdata.uuid
        $global:body = ConvertTo-JSON $Securitymanagerdata -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/securitymanagerdata/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Securitymanagerdata.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestSecuritymanagerdata
        }
    }
}
Function Set-AVIRestVirtualservice {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestVirtualservice
        $object.name = 'New name'
        Set-AviRestVirtualservice $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVirtualservice')]$Virtualservice
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Virtualservice.uuid
        $global:body = ConvertTo-JSON $Virtualservice -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/virtualservice/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Virtualservice.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVirtualservice
        }
    }
}
Function Set-AVIRestVsvip {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestVsvip
        $object.name = 'New name'
        Set-AviRestVsvip $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVsvip')]$Vsvip
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Vsvip.uuid
        $global:body = ConvertTo-JSON $Vsvip -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/vsvip/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Vsvip.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVsvip
        }
    }
}
Function Set-AVIRestIpamdnsproviderprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestIpamdnsproviderprofile
        $object.name = 'New name'
        Set-AviRestIpamdnsproviderprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestIpamdnsproviderprofile')]$Ipamdnsproviderprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Ipamdnsproviderprofile.uuid
        $global:body = ConvertTo-JSON $Ipamdnsproviderprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/ipamdnsproviderprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Ipamdnsproviderprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestIpamdnsproviderprofile
        }
    }
}
Function Set-AVIRestWafprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestWafprofile
        $object.name = 'New name'
        Set-AviRestWafprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafprofile')]$Wafprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Wafprofile.uuid
        $global:body = ConvertTo-JSON $Wafprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/wafprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Wafprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestWafprofile
        }
    }
}
Function Set-AVIRestLicensingLedgerDetails {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestLicensingLedgerDetails
        $object.name = 'New name'
        Set-AviRestLicensingLedgerDetails $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestLicensingLedgerDetails')]$LicensingLedgerDetails
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $LicensingLedgerDetails.uuid
        $global:body = ConvertTo-JSON $LicensingLedgerDetails -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/licensing/ledger/details/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($LicensingLedgerDetails.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestLicensingLedgerDetails
        }
    }
}
Function Set-AVIRestPingaccessagent {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestPingaccessagent
        $object.name = 'New name'
        Set-AviRestPingaccessagent $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPingaccessagent')]$Pingaccessagent
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Pingaccessagent.uuid
        $global:body = ConvertTo-JSON $Pingaccessagent -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/pingaccessagent/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Pingaccessagent.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestPingaccessagent
        }
    }
}
Function Set-AVIRestApplication {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestApplication
        $object.name = 'New name'
        Set-AviRestApplication $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestApplication')]$Application
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Application.uuid
        $global:body = ConvertTo-JSON $Application -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/application/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Application.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestApplication
        }
    }
}
Function Set-AVIRestDebugserviceengine {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestDebugserviceengine
        $object.name = 'New name'
        Set-AviRestDebugserviceengine $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDebugserviceengine')]$Debugserviceengine
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Debugserviceengine.uuid
        $global:body = ConvertTo-JSON $Debugserviceengine -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/debugserviceengine/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Debugserviceengine.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestDebugserviceengine
        }
    }
}
Function Set-AVIRestDebugvirtualservice {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestDebugvirtualservice
        $object.name = 'New name'
        Set-AviRestDebugvirtualservice $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDebugvirtualservice')]$Debugvirtualservice
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Debugvirtualservice.uuid
        $global:body = ConvertTo-JSON $Debugvirtualservice -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/debugvirtualservice/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Debugvirtualservice.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestDebugvirtualservice
        }
    }
}
Function Set-AVIRestPoolgroupdeploymentpolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestPoolgroupdeploymentpolicy
        $object.name = 'New name'
        Set-AviRestPoolgroupdeploymentpolicy $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolgroupdeploymentpolicy')]$Poolgroupdeploymentpolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Poolgroupdeploymentpolicy.uuid
        $global:body = ConvertTo-JSON $Poolgroupdeploymentpolicy -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/poolgroupdeploymentpolicy/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Poolgroupdeploymentpolicy.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolgroupdeploymentpolicy
        }
    }
}
Function Set-AVIRestHttppolicyset {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestHttppolicyset
        $object.name = 'New name'
        Set-AviRestHttppolicyset $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestHttppolicyset')]$Httppolicyset
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Httppolicyset.uuid
        $global:body = ConvertTo-JSON $Httppolicyset -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/httppolicyset/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Httppolicyset.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestHttppolicyset
        }
    }
}
Function Set-AVIRestSecuritypolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestSecuritypolicy
        $object.name = 'New name'
        Set-AviRestSecuritypolicy $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSecuritypolicy')]$Securitypolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Securitypolicy.uuid
        $global:body = ConvertTo-JSON $Securitypolicy -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/securitypolicy/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Securitypolicy.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestSecuritypolicy
        }
    }
}
Function Set-AVIRestSnmptrapprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestSnmptrapprofile
        $object.name = 'New name'
        Set-AviRestSnmptrapprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSnmptrapprofile')]$Snmptrapprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Snmptrapprofile.uuid
        $global:body = ConvertTo-JSON $Snmptrapprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/snmptrapprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Snmptrapprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestSnmptrapprofile
        }
    }
}
Function Set-AVIRestSystemlimits {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestSystemlimits
        $object.name = 'New name'
        Set-AviRestSystemlimits $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSystemlimits')]$Systemlimits
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Systemlimits.uuid
        $global:body = ConvertTo-JSON $Systemlimits -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/systemlimits/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Systemlimits.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestSystemlimits
        }
    }
}
Function Set-AVIRestPrioritylabels {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestPrioritylabels
        $object.name = 'New name'
        Set-AviRestPrioritylabels $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPrioritylabels')]$Prioritylabels
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Prioritylabels.uuid
        $global:body = ConvertTo-JSON $Prioritylabels -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/prioritylabels/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Prioritylabels.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestPrioritylabels
        }
    }
}
Function Set-AVIRestGslb {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestGslb
        $object.name = 'New name'
        Set-AviRestGslb $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGslb')]$Gslb
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Gslb.uuid
        $global:body = ConvertTo-JSON $Gslb -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/gslb/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Gslb.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestGslb
        }
    }
}
Function Set-AVIRestGslbservice {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestGslbservice
        $object.name = 'New name'
        Set-AviRestGslbservice $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGslbservice')]$Gslbservice
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Gslbservice.uuid
        $global:body = ConvertTo-JSON $Gslbservice -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/gslbservice/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Gslbservice.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestGslbservice
        }
    }
}
Function Set-AVIRestGslbgeodbprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestGslbgeodbprofile
        $object.name = 'New name'
        Set-AviRestGslbgeodbprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGslbgeodbprofile')]$Gslbgeodbprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Gslbgeodbprofile.uuid
        $global:body = ConvertTo-JSON $Gslbgeodbprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/gslbgeodbprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Gslbgeodbprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestGslbgeodbprofile
        }
    }
}
Function Set-AVIRestDebugcontroller {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestDebugcontroller
        $object.name = 'New name'
        Set-AviRestDebugcontroller $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDebugcontroller')]$Debugcontroller
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Debugcontroller.uuid
        $global:body = ConvertTo-JSON $Debugcontroller -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/debugcontroller/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Debugcontroller.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestDebugcontroller
        }
    }
}
Function Set-AVIRestErrorpageprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestErrorpageprofile
        $object.name = 'New name'
        Set-AviRestErrorpageprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestErrorpageprofile')]$Errorpageprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Errorpageprofile.uuid
        $global:body = ConvertTo-JSON $Errorpageprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/errorpageprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Errorpageprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestErrorpageprofile
        }
    }
}
Function Set-AVIRestErrorpagebody {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestErrorpagebody
        $object.name = 'New name'
        Set-AviRestErrorpagebody $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestErrorpagebody')]$Errorpagebody
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Errorpagebody.uuid
        $global:body = ConvertTo-JSON $Errorpagebody -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/errorpagebody/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Errorpagebody.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestErrorpagebody
        }
    }
}
Function Set-AVIRestAlertsyslogconfig {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestAlertsyslogconfig
        $object.name = 'New name'
        Set-AviRestAlertsyslogconfig $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertsyslogconfig')]$Alertsyslogconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Alertsyslogconfig.uuid
        $global:body = ConvertTo-JSON $Alertsyslogconfig -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/alertsyslogconfig/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Alertsyslogconfig.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlertsyslogconfig
        }
    }
}
Function Set-AVIRestAlertemailconfig {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestAlertemailconfig
        $object.name = 'New name'
        Set-AviRestAlertemailconfig $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertemailconfig')]$Alertemailconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Alertemailconfig.uuid
        $global:body = ConvertTo-JSON $Alertemailconfig -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/alertemailconfig/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Alertemailconfig.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlertemailconfig
        }
    }
}
Function Set-AVIRestAlertscriptconfig {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestAlertscriptconfig
        $object.name = 'New name'
        Set-AviRestAlertscriptconfig $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertscriptconfig')]$Alertscriptconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Alertscriptconfig.uuid
        $global:body = ConvertTo-JSON $Alertscriptconfig -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/alertscriptconfig/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Alertscriptconfig.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlertscriptconfig
        }
    }
}
Function Set-AVIRestAlertconfig {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestAlertconfig
        $object.name = 'New name'
        Set-AviRestAlertconfig $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertconfig')]$Alertconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Alertconfig.uuid
        $global:body = ConvertTo-JSON $Alertconfig -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/alertconfig/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Alertconfig.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlertconfig
        }
    }
}
Function Set-AVIRestActiongroupconfig {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestActiongroupconfig
        $object.name = 'New name'
        Set-AviRestActiongroupconfig $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestActiongroupconfig')]$Actiongroupconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Actiongroupconfig.uuid
        $global:body = ConvertTo-JSON $Actiongroupconfig -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/actiongroupconfig/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Actiongroupconfig.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestActiongroupconfig
        }
    }
}
Function Set-AVIRestAlertobjectlist {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestAlertobjectlist
        $object.name = 'New name'
        Set-AviRestAlertobjectlist $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertobjectlist')]$Alertobjectlist
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Alertobjectlist.uuid
        $global:body = ConvertTo-JSON $Alertobjectlist -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/alertobjectlist/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Alertobjectlist.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlertobjectlist
        }
    }
}
Function Set-AVIRestAlert {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestAlert
        $object.name = 'New name'
        Set-AviRestAlert $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlert')]$Alert
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Alert.uuid
        $global:body = ConvertTo-JSON $Alert -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/alert/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Alert.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlert
        }
    }
}
Function Set-AVIRestInventoryfaultconfig {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestInventoryfaultconfig
        $object.name = 'New name'
        Set-AviRestInventoryfaultconfig $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestInventoryfaultconfig')]$Inventoryfaultconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Inventoryfaultconfig.uuid
        $global:body = ConvertTo-JSON $Inventoryfaultconfig -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/inventoryfaultconfig/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Inventoryfaultconfig.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestInventoryfaultconfig
        }
    }
}
Function Set-AVIRestTenantsystemconfiguration {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        $object = Get-AviRestTenantsystemconfiguration
        $object.name = 'New name'
        Set-AviRestTenantsystemconfiguration $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTenantsystemconfiguration')]$Tenantsystemconfiguration
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Tenantsystemconfiguration.uuid
        $global:body = ConvertTo-JSON $Tenantsystemconfiguration -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/tenantsystemconfiguration/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Tenantsystemconfiguration.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestTenantsystemconfiguration
        }
    }
}
Function New-AVIRestNetworksecuritypolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestNetworksecuritypolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworksecuritypolicy')]$Networksecuritypolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/networksecuritypolicy"
            Body = ConvertTo-JSON $Networksecuritypolicy -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Networksecuritypolicy.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestNetworksecuritypolicy
        }
    }
}
Function New-AVIRestFileobject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestFileobject
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestFileobject')]$Fileobject
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/fileobject"
            Body = ConvertTo-JSON $Fileobject -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Fileobject.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestFileobject
        }
    }
}
Function New-AVIRestRole {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestRole
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestRole')]$Role
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/role"
            Body = ConvertTo-JSON $Role -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Role.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestRole
        }
    }
}
Function New-AVIRestTenant {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestTenant
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTenant')]$Tenant
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/tenant"
            Body = ConvertTo-JSON $Tenant -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Tenant.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestTenant
        }
    }
}
Function New-AVIRestUseractivity {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestUseractivity
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUseractivity')]$Useractivity
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/useractivity"
            Body = ConvertTo-JSON $Useractivity -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Useractivity.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestUseractivity
        }
    }
}
Function New-AVIRestUseraccountprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestUseraccountprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUseraccountprofile')]$Useraccountprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/useraccountprofile"
            Body = ConvertTo-JSON $Useraccountprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Useraccountprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestUseraccountprofile
        }
    }
}
Function New-AVIRestClusterclouddetails {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestClusterclouddetails
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestClusterclouddetails')]$Clusterclouddetails
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/clusterclouddetails"
            Body = ConvertTo-JSON $Clusterclouddetails -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Clusterclouddetails.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestClusterclouddetails
        }
    }
}
Function New-AVIRestApplicationprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestApplicationprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestApplicationprofile')]$Applicationprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/applicationprofile"
            Body = ConvertTo-JSON $Applicationprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Applicationprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestApplicationprofile
        }
    }
}
Function New-AVIRestPoolgroup {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestPoolgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolgroup')]$Poolgroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/poolgroup"
            Body = ConvertTo-JSON $Poolgroup -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Poolgroup.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolgroup
        }
    }
}
Function New-AVIRestPoolgroupClear {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestPoolgroupClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolgroupClear')]$PoolgroupClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/poolgroup/clear"
            Body = ConvertTo-JSON $PoolgroupClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($PoolgroupClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolgroupClear
        }
    }
}
Function New-AVIRestSslprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestSslprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSslprofile')]$Sslprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/sslprofile"
            Body = ConvertTo-JSON $Sslprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Sslprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestSslprofile
        }
    }
}
Function New-AVIRestSslkeyandcertificate {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestSslkeyandcertificate
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSslkeyandcertificate')]$Sslkeyandcertificate
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/sslkeyandcertificate"
            Body = ConvertTo-JSON $Sslkeyandcertificate -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Sslkeyandcertificate.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestSslkeyandcertificate
        }
    }
}
Function New-AVIRestPkiprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestPkiprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPkiprofile')]$Pkiprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/pkiprofile"
            Body = ConvertTo-JSON $Pkiprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Pkiprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPkiprofile
        }
    }
}
Function New-AVIRestCertificatemanagementprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestCertificatemanagementprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCertificatemanagementprofile')]$Certificatemanagementprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/certificatemanagementprofile"
            Body = ConvertTo-JSON $Certificatemanagementprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Certificatemanagementprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestCertificatemanagementprofile
        }
    }
}
Function New-AVIRestVrfcontext {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestVrfcontext
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVrfcontext')]$Vrfcontext
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vrfcontext"
            Body = ConvertTo-JSON $Vrfcontext -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Vrfcontext.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVrfcontext
        }
    }
}
Function New-AVIRestWebapput {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestWebapput
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWebapput')]$Webapput
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/webapput"
            Body = ConvertTo-JSON $Webapput -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Webapput.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestWebapput
        }
    }
}
Function New-AVIRestIcapprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestIcapprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestIcapprofile')]$Icapprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/icapprofile"
            Body = ConvertTo-JSON $Icapprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Icapprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestIcapprofile
        }
    }
}
Function New-AVIRestLabelgroup {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestLabelgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestLabelgroup')]$Labelgroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/labelgroup"
            Body = ConvertTo-JSON $Labelgroup -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Labelgroup.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestLabelgroup
        }
    }
}
Function New-AVIRestTrafficcloneprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestTrafficcloneprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTrafficcloneprofile')]$Trafficcloneprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/trafficcloneprofile"
            Body = ConvertTo-JSON $Trafficcloneprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Trafficcloneprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestTrafficcloneprofile
        }
    }
}
Function New-AVIRestGeodb {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestGeodb
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGeodb')]$Geodb
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/geodb"
            Body = ConvertTo-JSON $Geodb -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Geodb.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestGeodb
        }
    }
}
Function New-AVIRestJobs {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestJobs
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestJobs')]$Jobs
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/jobs"
            Body = ConvertTo-JSON $Jobs -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Jobs.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestJobs
        }
    }
}
Function New-AVIRestTestsedatastorelevel1 {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestTestsedatastorelevel1
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTestsedatastorelevel1')]$Testsedatastorelevel1
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/testsedatastorelevel1"
            Body = ConvertTo-JSON $Testsedatastorelevel1 -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Testsedatastorelevel1.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestTestsedatastorelevel1
        }
    }
}
Function New-AVIRestTestsedatastorelevel2 {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestTestsedatastorelevel2
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTestsedatastorelevel2')]$Testsedatastorelevel2
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/testsedatastorelevel2"
            Body = ConvertTo-JSON $Testsedatastorelevel2 -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Testsedatastorelevel2.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestTestsedatastorelevel2
        }
    }
}
Function New-AVIRestTestsedatastorelevel3 {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestTestsedatastorelevel3
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTestsedatastorelevel3')]$Testsedatastorelevel3
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/testsedatastorelevel3"
            Body = ConvertTo-JSON $Testsedatastorelevel3 -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Testsedatastorelevel3.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestTestsedatastorelevel3
        }
    }
}
Function New-AVIRestAnalyticsprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestAnalyticsprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAnalyticsprofile')]$Analyticsprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/analyticsprofile"
            Body = ConvertTo-JSON $Analyticsprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Analyticsprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAnalyticsprofile
        }
    }
}
Function New-AVIRestAlbservicesfileupload {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestAlbservicesfileupload
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlbservicesfileupload')]$Albservicesfileupload
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/albservicesfileupload"
            Body = ConvertTo-JSON $Albservicesfileupload -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Albservicesfileupload.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlbservicesfileupload
        }
    }
}
Function New-AVIRestSecurechannelmapping {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestSecurechannelmapping
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSecurechannelmapping')]$Securechannelmapping
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/securechannelmapping"
            Body = ConvertTo-JSON $Securechannelmapping -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Securechannelmapping.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestSecurechannelmapping
        }
    }
}
Function New-AVIRestSecurechannelavailablelocalips {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestSecurechannelavailablelocalips
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSecurechannelavailablelocalips')]$Securechannelavailablelocalips
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/securechannelavailablelocalips"
            Body = ConvertTo-JSON $Securechannelavailablelocalips -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Securechannelavailablelocalips.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestSecurechannelavailablelocalips
        }
    }
}
Function New-AVIRestSecurechanneltoken {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestSecurechanneltoken
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSecurechanneltoken')]$Securechanneltoken
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/securechanneltoken"
            Body = ConvertTo-JSON $Securechanneltoken -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Securechanneltoken.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestSecurechanneltoken
        }
    }
}
Function New-AVIRestMicroservice {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestMicroservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestMicroservice')]$Microservice
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/microservice"
            Body = ConvertTo-JSON $Microservice -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Microservice.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestMicroservice
        }
    }
}
Function New-AVIRestCustomipamdnsprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestCustomipamdnsprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCustomipamdnsprofile')]$Customipamdnsprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/customipamdnsprofile"
            Body = ConvertTo-JSON $Customipamdnsprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Customipamdnsprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestCustomipamdnsprofile
        }
    }
}
Function New-AVIRestJwtserverprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestJwtserverprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestJwtserverprofile')]$Jwtserverprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/jwtserverprofile"
            Body = ConvertTo-JSON $Jwtserverprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Jwtserverprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestJwtserverprofile
        }
    }
}
Function New-AVIRestAuthprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestAuthprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAuthprofile')]$Authprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/authprofile"
            Body = ConvertTo-JSON $Authprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Authprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAuthprofile
        }
    }
}
Function New-AVIRestAuthmappingprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestAuthmappingprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAuthmappingprofile')]$Authmappingprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/authmappingprofile"
            Body = ConvertTo-JSON $Authmappingprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Authmappingprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAuthmappingprofile
        }
    }
}
Function New-AVIRestWafpolicypsmgroup {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestWafpolicypsmgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafpolicypsmgroup')]$Wafpolicypsmgroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/wafpolicypsmgroup"
            Body = ConvertTo-JSON $Wafpolicypsmgroup -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Wafpolicypsmgroup.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestWafpolicypsmgroup
        }
    }
}
Function New-AVIRestBotdetectionpolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestBotdetectionpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBotdetectionpolicy')]$Botdetectionpolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/botdetectionpolicy"
            Body = ConvertTo-JSON $Botdetectionpolicy -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Botdetectionpolicy.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestBotdetectionpolicy
        }
    }
}
Function New-AVIRestBotmapping {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestBotmapping
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBotmapping')]$Botmapping
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/botmapping"
            Body = ConvertTo-JSON $Botmapping -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Botmapping.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestBotmapping
        }
    }
}
Function New-AVIRestBotconfigconsolidator {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestBotconfigconsolidator
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBotconfigconsolidator')]$Botconfigconsolidator
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/botconfigconsolidator"
            Body = ConvertTo-JSON $Botconfigconsolidator -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Botconfigconsolidator.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestBotconfigconsolidator
        }
    }
}
Function New-AVIRestBotipreputationtypemapping {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestBotipreputationtypemapping
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBotipreputationtypemapping')]$Botipreputationtypemapping
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/botipreputationtypemapping"
            Body = ConvertTo-JSON $Botipreputationtypemapping -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Botipreputationtypemapping.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestBotipreputationtypemapping
        }
    }
}
Function New-AVIRestDynamicdnsrecord {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestDynamicdnsrecord
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDynamicdnsrecord')]$Dynamicdnsrecord
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/dynamicdnsrecord"
            Body = ConvertTo-JSON $Dynamicdnsrecord -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Dynamicdnsrecord.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestDynamicdnsrecord
        }
    }
}
Function New-AVIRestVsgs {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestVsgs
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVsgs')]$Vsgs
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vsgs"
            Body = ConvertTo-JSON $Vsgs -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Vsgs.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVsgs
        }
    }
}
Function New-AVIRestServerautoscalepolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestServerautoscalepolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServerautoscalepolicy')]$Serverautoscalepolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serverautoscalepolicy"
            Body = ConvertTo-JSON $Serverautoscalepolicy -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Serverautoscalepolicy.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServerautoscalepolicy
        }
    }
}
Function New-AVIRestAutoscalelaunchconfig {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestAutoscalelaunchconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAutoscalelaunchconfig')]$Autoscalelaunchconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/autoscalelaunchconfig"
            Body = ConvertTo-JSON $Autoscalelaunchconfig -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Autoscalelaunchconfig.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAutoscalelaunchconfig
        }
    }
}
Function New-AVIRestControllerproperties {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestControllerproperties
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestControllerproperties')]$Controllerproperties
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/controllerproperties"
            Body = ConvertTo-JSON $Controllerproperties -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Controllerproperties.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestControllerproperties
        }
    }
}
Function New-AVIRestNetworkservice {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestNetworkservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworkservice')]$Networkservice
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/networkservice"
            Body = ConvertTo-JSON $Networkservice -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Networkservice.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestNetworkservice
        }
    }
}
Function New-AVIRestLicensingStatus {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestLicensingStatus
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestLicensingStatus')]$LicensingStatus
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/licensing/status"
            Body = ConvertTo-JSON $LicensingStatus -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($LicensingStatus.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestLicensingStatus
        }
    }
}
Function New-AVIRestAlbservicesconfig {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestAlbservicesconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlbservicesconfig')]$Albservicesconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/albservicesconfig"
            Body = ConvertTo-JSON $Albservicesconfig -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Albservicesconfig.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlbservicesconfig
        }
    }
}
Function New-AVIRestPoolInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestPoolInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolInventory')]$PoolInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/pool-inventory"
            Body = ConvertTo-JSON $PoolInventory -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($PoolInventory.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolInventory
        }
    }
}
Function New-AVIRestPoolgroupInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestPoolgroupInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolgroupInventory')]$PoolgroupInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/poolgroup-inventory"
            Body = ConvertTo-JSON $PoolgroupInventory -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($PoolgroupInventory.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolgroupInventory
        }
    }
}
Function New-AVIRestVsvipInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestVsvipInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVsvipInventory')]$VsvipInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vsvip-inventory"
            Body = ConvertTo-JSON $VsvipInventory -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VsvipInventory.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVsvipInventory
        }
    }
}
Function New-AVIRestVirtualserviceInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestVirtualserviceInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVirtualserviceInventory')]$VirtualserviceInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/virtualservice-inventory"
            Body = ConvertTo-JSON $VirtualserviceInventory -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VirtualserviceInventory.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVirtualserviceInventory
        }
    }
}
Function New-AVIRestServiceengineInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestServiceengineInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengineInventory')]$ServiceengineInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceengine-inventory"
            Body = ConvertTo-JSON $ServiceengineInventory -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceengineInventory.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengineInventory
        }
    }
}
Function New-AVIRestServiceenginegroupInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestServiceenginegroupInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceenginegroupInventory')]$ServiceenginegroupInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceenginegroup-inventory"
            Body = ConvertTo-JSON $ServiceenginegroupInventory -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceenginegroupInventory.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceenginegroupInventory
        }
    }
}
Function New-AVIRestUpgradestatussummary {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestUpgradestatussummary
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUpgradestatussummary')]$Upgradestatussummary
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/upgradestatussummary"
            Body = ConvertTo-JSON $Upgradestatussummary -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Upgradestatussummary.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestUpgradestatussummary
        }
    }
}
Function New-AVIRestServiceenginegroup {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestServiceenginegroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceenginegroup')]$Serviceenginegroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceenginegroup"
            Body = ConvertTo-JSON $Serviceenginegroup -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Serviceenginegroup.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceenginegroup
        }
    }
}
Function New-AVIRestServiceenginegroupClear {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestServiceenginegroupClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceenginegroupClear')]$ServiceenginegroupClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceenginegroup/clear"
            Body = ConvertTo-JSON $ServiceenginegroupClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceenginegroupClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceenginegroupClear
        }
    }
}
Function New-AVIRestNetworkInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestNetworkInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworkInventory')]$NetworkInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/network-inventory"
            Body = ConvertTo-JSON $NetworkInventory -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($NetworkInventory.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestNetworkInventory
        }
    }
}
Function New-AVIRestNetworkruntime {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestNetworkruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworkruntime')]$Networkruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/networkruntime"
            Body = ConvertTo-JSON $Networkruntime -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Networkruntime.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestNetworkruntime
        }
    }
}
Function New-AVIRestVimgrnwruntime {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestVimgrnwruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrnwruntime')]$Vimgrnwruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrnwruntime"
            Body = ConvertTo-JSON $Vimgrnwruntime -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrnwruntime.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrnwruntime
        }
    }
}
Function New-AVIRestCloudInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestCloudInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloudInventory')]$CloudInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/cloud-inventory"
            Body = ConvertTo-JSON $CloudInventory -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($CloudInventory.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestCloudInventory
        }
    }
}
Function New-AVIRestGslbInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestGslbInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGslbInventory')]$GslbInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/gslb-inventory"
            Body = ConvertTo-JSON $GslbInventory -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($GslbInventory.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestGslbInventory
        }
    }
}
Function New-AVIRestGslbserviceInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestGslbserviceInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGslbserviceInventory')]$GslbserviceInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/gslbservice-inventory"
            Body = ConvertTo-JSON $GslbserviceInventory -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($GslbserviceInventory.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestGslbserviceInventory
        }
    }
}
Function New-AVIRestWafpolicypsmgroupInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestWafpolicypsmgroupInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafpolicypsmgroupInventory')]$WafpolicypsmgroupInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/wafpolicypsmgroup-inventory"
            Body = ConvertTo-JSON $WafpolicypsmgroupInventory -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($WafpolicypsmgroupInventory.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestWafpolicypsmgroupInventory
        }
    }
}
Function New-AVIRestFederationcheckpointInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestFederationcheckpointInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestFederationcheckpointInventory')]$FederationcheckpointInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/federationcheckpoint-inventory"
            Body = ConvertTo-JSON $FederationcheckpointInventory -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($FederationcheckpointInventory.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestFederationcheckpointInventory
        }
    }
}
Function New-AVIRestFederationcheckpoint {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestFederationcheckpoint
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestFederationcheckpoint')]$Federationcheckpoint
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/federationcheckpoint"
            Body = ConvertTo-JSON $Federationcheckpoint -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Federationcheckpoint.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestFederationcheckpoint
        }
    }
}
Function New-AVIRestIpreputationdb {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestIpreputationdb
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestIpreputationdb')]$Ipreputationdb
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/ipreputationdb"
            Body = ConvertTo-JSON $Ipreputationdb -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Ipreputationdb.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestIpreputationdb
        }
    }
}
Function New-AVIRestNetwork {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestNetwork
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetwork')]$Network
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/network"
            Body = ConvertTo-JSON $Network -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Network.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestNetwork
        }
    }
}
Function New-AVIRestIpaddrgroup {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestIpaddrgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestIpaddrgroup')]$Ipaddrgroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/ipaddrgroup"
            Body = ConvertTo-JSON $Ipaddrgroup -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Ipaddrgroup.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestIpaddrgroup
        }
    }
}
Function New-AVIRestStringgroup {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestStringgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestStringgroup')]$Stringgroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/stringgroup"
            Body = ConvertTo-JSON $Stringgroup -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Stringgroup.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestStringgroup
        }
    }
}
Function New-AVIRestMicroservicegroup {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestMicroservicegroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestMicroservicegroup')]$Microservicegroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/microservicegroup"
            Body = ConvertTo-JSON $Microservicegroup -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Microservicegroup.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestMicroservicegroup
        }
    }
}
Function New-AVIRestWafcrs {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestWafcrs
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafcrs')]$Wafcrs
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/wafcrs"
            Body = ConvertTo-JSON $Wafcrs -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Wafcrs.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestWafcrs
        }
    }
}
Function New-AVIRestSystemconfiguration {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestSystemconfiguration
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSystemconfiguration')]$Systemconfiguration
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/systemconfiguration"
            Body = ConvertTo-JSON $Systemconfiguration -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Systemconfiguration.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestSystemconfiguration
        }
    }
}
Function New-AVIRestSystemconfigurationSystestemail {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestSystemconfigurationSystestemail
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSystemconfigurationSystestemail')]$SystemconfigurationSystestemail
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/systemconfiguration/systestemail"
            Body = ConvertTo-JSON $SystemconfigurationSystestemail -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($SystemconfigurationSystestemail.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestSystemconfigurationSystestemail
        }
    }
}
Function New-AVIRestControllersite {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestControllersite
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestControllersite')]$Controllersite
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/controllersite"
            Body = ConvertTo-JSON $Controllersite -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Controllersite.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestControllersite
        }
    }
}
Function New-AVIRestCloudconnectoruser {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestCloudconnectoruser
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloudconnectoruser')]$Cloudconnectoruser
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/cloudconnectoruser"
            Body = ConvertTo-JSON $Cloudconnectoruser -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Cloudconnectoruser.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestCloudconnectoruser
        }
    }
}
Function New-AVIRestSeproperties {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestSeproperties
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSeproperties')]$Seproperties
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/seproperties"
            Body = ConvertTo-JSON $Seproperties -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Seproperties.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestSeproperties
        }
    }
}
Function New-AVIRestCsrfpolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestCsrfpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCsrfpolicy')]$Csrfpolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/csrfpolicy"
            Body = ConvertTo-JSON $Csrfpolicy -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Csrfpolicy.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestCsrfpolicy
        }
    }
}
Function New-AVIRestMemorybalancernotifier {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestMemorybalancernotifier
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestMemorybalancernotifier')]$Memorybalancernotifier
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/memorybalancernotifier"
            Body = ConvertTo-JSON $Memorybalancernotifier -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Memorybalancernotifier.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestMemorybalancernotifier
        }
    }
}
Function New-AVIRestVcenterserver {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestVcenterserver
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVcenterserver')]$Vcenterserver
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vcenterserver"
            Body = ConvertTo-JSON $Vcenterserver -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Vcenterserver.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVcenterserver
        }
    }
}
Function New-AVIRestAvailabilityzone {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestAvailabilityzone
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAvailabilityzone')]$Availabilityzone
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/availabilityzone"
            Body = ConvertTo-JSON $Availabilityzone -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Availabilityzone.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAvailabilityzone
        }
    }
}
Function New-AVIRestNsxtsegmentruntime {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestNsxtsegmentruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNsxtsegmentruntime')]$Nsxtsegmentruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/nsxtsegmentruntime"
            Body = ConvertTo-JSON $Nsxtsegmentruntime -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Nsxtsegmentruntime.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestNsxtsegmentruntime
        }
    }
}
Function New-AVIRestStatediffoperation {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestStatediffoperation
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestStatediffoperation')]$Statediffoperation
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/statediffoperation"
            Body = ConvertTo-JSON $Statediffoperation -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Statediffoperation.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestStatediffoperation
        }
    }
}
Function New-AVIRestApplicationpersistenceprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestApplicationpersistenceprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestApplicationpersistenceprofile')]$Applicationpersistenceprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/applicationpersistenceprofile"
            Body = ConvertTo-JSON $Applicationpersistenceprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Applicationpersistenceprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestApplicationpersistenceprofile
        }
    }
}
Function New-AVIRestScvsstateinfo {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestScvsstateinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestScvsstateinfo')]$Scvsstateinfo
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/scvsstateinfo"
            Body = ConvertTo-JSON $Scvsstateinfo -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Scvsstateinfo.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestScvsstateinfo
        }
    }
}
Function New-AVIRestScpoolserverstateinfo {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestScpoolserverstateinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestScpoolserverstateinfo')]$Scpoolserverstateinfo
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/scpoolserverstateinfo"
            Body = ConvertTo-JSON $Scpoolserverstateinfo -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Scpoolserverstateinfo.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestScpoolserverstateinfo
        }
    }
}
Function New-AVIRestAlbservicesjob {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestAlbservicesjob
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlbservicesjob')]$Albservicesjob
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/albservicesjob"
            Body = ConvertTo-JSON $Albservicesjob -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Albservicesjob.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlbservicesjob
        }
    }
}
Function New-AVIRestImage {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestImage
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestImage')]$Image
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/image"
            Body = ConvertTo-JSON $Image -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Image.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestImage
        }
    }
}
Function New-AVIRestCloud {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestCloud
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloud')]$Cloud
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/cloud"
            Body = ConvertTo-JSON $Cloud -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Cloud.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestCloud
        }
    }
}
Function New-AVIRestCloudList {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestCloudList
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloudList')]$CloudList
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/cloud/list"
            Body = ConvertTo-JSON $CloudList -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($CloudList.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestCloudList
        }
    }
}
Function New-AVIRestCloudruntime {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestCloudruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloudruntime')]$Cloudruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/cloudruntime"
            Body = ConvertTo-JSON $Cloudruntime -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Cloudruntime.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestCloudruntime
        }
    }
}
Function New-AVIRestL4policyset {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestL4policyset
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestL4policyset')]$L4policyset
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/l4policyset"
            Body = ConvertTo-JSON $L4policyset -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($L4policyset.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestL4policyset
        }
    }
}
Function New-AVIRestHealthmonitor {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestHealthmonitor
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestHealthmonitor')]$Healthmonitor
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/healthmonitor"
            Body = ConvertTo-JSON $Healthmonitor -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Healthmonitor.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestHealthmonitor
        }
    }
}
Function New-AVIRestUpgradestatusinfo {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestUpgradestatusinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUpgradestatusinfo')]$Upgradestatusinfo
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/upgradestatusinfo"
            Body = ConvertTo-JSON $Upgradestatusinfo -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Upgradestatusinfo.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestUpgradestatusinfo
        }
    }
}
Function New-AVIRestCloudproperties {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestCloudproperties
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloudproperties')]$Cloudproperties
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/cloudproperties"
            Body = ConvertTo-JSON $Cloudproperties -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Cloudproperties.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestCloudproperties
        }
    }
}
Function New-AVIRestVsdatascriptset {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestVsdatascriptset
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVsdatascriptset')]$Vsdatascriptset
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vsdatascriptset"
            Body = ConvertTo-JSON $Vsdatascriptset -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Vsdatascriptset.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVsdatascriptset
        }
    }
}
Function New-AVIRestControllerportalregistration {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestControllerportalregistration
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestControllerportalregistration')]$Controllerportalregistration
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/controllerportalregistration"
            Body = ConvertTo-JSON $Controllerportalregistration -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Controllerportalregistration.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestControllerportalregistration
        }
    }
}
Function New-AVIRestUser {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestUser
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUser')]$User
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/user"
            Body = ConvertTo-JSON $User -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($User.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestUser
        }
    }
}
Function New-AVIRestNetworkprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestNetworkprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworkprofile')]$Networkprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/networkprofile"
            Body = ConvertTo-JSON $Networkprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Networkprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestNetworkprofile
        }
    }
}
Function New-AVIRestDnspolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestDnspolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDnspolicy')]$Dnspolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/dnspolicy"
            Body = ConvertTo-JSON $Dnspolicy -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Dnspolicy.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestDnspolicy
        }
    }
}
Function New-AVIRestHardwaresecuritymodulegroup {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestHardwaresecuritymodulegroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestHardwaresecuritymodulegroup')]$Hardwaresecuritymodulegroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/hardwaresecuritymodulegroup"
            Body = ConvertTo-JSON $Hardwaresecuritymodulegroup -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Hardwaresecuritymodulegroup.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestHardwaresecuritymodulegroup
        }
    }
}
Function New-AVIRestLogcontroller {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestLogcontroller
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestLogcontroller')]$Logcontroller
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/logcontroller"
            Body = ConvertTo-JSON $Logcontroller -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Logcontroller.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestLogcontroller
        }
    }
}
Function New-AVIRestProtocolparser {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestProtocolparser
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestProtocolparser')]$Protocolparser
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/protocolparser"
            Body = ConvertTo-JSON $Protocolparser -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Protocolparser.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestProtocolparser
        }
    }
}
Function New-AVIRestScheduler {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestScheduler
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestScheduler')]$Scheduler
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/scheduler"
            Body = ConvertTo-JSON $Scheduler -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Scheduler.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestScheduler
        }
    }
}
Function New-AVIRestBackupconfiguration {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestBackupconfiguration
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBackupconfiguration')]$Backupconfiguration
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/backupconfiguration"
            Body = ConvertTo-JSON $Backupconfiguration -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Backupconfiguration.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestBackupconfiguration
        }
    }
}
Function New-AVIRestVimgrsevmruntime {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestVimgrsevmruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrsevmruntime')]$Vimgrsevmruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrsevmruntime"
            Body = ConvertTo-JSON $Vimgrsevmruntime -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrsevmruntime.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrsevmruntime
        }
    }
}
Function New-AVIRestVimgrvmruntime {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestVimgrvmruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvmruntime')]$Vimgrvmruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrvmruntime"
            Body = ConvertTo-JSON $Vimgrvmruntime -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrvmruntime.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvmruntime
        }
    }
}
Function New-AVIRestVimgrhostruntime {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestVimgrhostruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrhostruntime')]$Vimgrhostruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrhostruntime"
            Body = ConvertTo-JSON $Vimgrhostruntime -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrhostruntime.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrhostruntime
        }
    }
}
Function New-AVIRestVimgrhostruntimeGetquarantinedhosts {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestVimgrhostruntimeGetquarantinedhosts
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrhostruntimeGetquarantinedhosts')]$VimgrhostruntimeGetquarantinedhosts
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrhostruntime/getquarantinedhosts"
            Body = ConvertTo-JSON $VimgrhostruntimeGetquarantinedhosts -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VimgrhostruntimeGetquarantinedhosts.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrhostruntimeGetquarantinedhosts
        }
    }
}
Function New-AVIRestVimgrclusterruntime {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestVimgrclusterruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrclusterruntime')]$Vimgrclusterruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrclusterruntime"
            Body = ConvertTo-JSON $Vimgrclusterruntime -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrclusterruntime.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrclusterruntime
        }
    }
}
Function New-AVIRestVimgrvcenterdatacenters {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestVimgrvcenterdatacenters
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenterdatacenters')]$Vimgrvcenterdatacenters
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrvcenterdatacenters"
            Body = ConvertTo-JSON $Vimgrvcenterdatacenters -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrvcenterdatacenters.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenterdatacenters
        }
    }
}
Function New-AVIRestVimgrvcenternetworks {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestVimgrvcenternetworks
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenternetworks')]$Vimgrvcenternetworks
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrvcenternetworks"
            Body = ConvertTo-JSON $Vimgrvcenternetworks -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrvcenternetworks.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenternetworks
        }
    }
}
Function New-AVIRestServiceengine {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestServiceengine
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengine')]$Serviceengine
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceengine"
            Body = ConvertTo-JSON $Serviceengine -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Serviceengine.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengine
        }
    }
}
Function New-AVIRestServiceengineClear {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestServiceengineClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengineClear')]$ServiceengineClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceengine/clear"
            Body = ConvertTo-JSON $ServiceengineClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceengineClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengineClear
        }
    }
}
Function New-AVIRestWafpolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestWafpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafpolicy')]$Wafpolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/wafpolicy"
            Body = ConvertTo-JSON $Wafpolicy -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Wafpolicy.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestWafpolicy
        }
    }
}
Function New-AVIRestWafapplicationsignatureprovider {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestWafapplicationsignatureprovider
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafapplicationsignatureprovider')]$Wafapplicationsignatureprovider
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/wafapplicationsignatureprovider"
            Body = ConvertTo-JSON $Wafapplicationsignatureprovider -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Wafapplicationsignatureprovider.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestWafapplicationsignatureprovider
        }
    }
}
Function New-AVIRestSsopolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestSsopolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSsopolicy')]$Ssopolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/ssopolicy"
            Body = ConvertTo-JSON $Ssopolicy -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Ssopolicy.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestSsopolicy
        }
    }
}
Function New-AVIRestNatpolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestNatpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNatpolicy')]$Natpolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/natpolicy"
            Body = ConvertTo-JSON $Natpolicy -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Natpolicy.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestNatpolicy
        }
    }
}
Function New-AVIRestSiteversion {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestSiteversion
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSiteversion')]$Siteversion
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/siteversion"
            Body = ConvertTo-JSON $Siteversion -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Siteversion.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestSiteversion
        }
    }
}
Function New-AVIRestWebhook {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestWebhook
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWebhook')]$Webhook
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/webhook"
            Body = ConvertTo-JSON $Webhook -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Webhook.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestWebhook
        }
    }
}
Function New-AVIRestPool {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestPool
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPool')]$Pool
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/pool"
            Body = ConvertTo-JSON $Pool -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Pool.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPool
        }
    }
}
Function New-AVIRestPoolClear {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestPoolClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolClear')]$PoolClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/pool/clear"
            Body = ConvertTo-JSON $PoolClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($PoolClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolClear
        }
    }
}
Function New-AVIRestBackup {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestBackup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBackup')]$Backup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/backup"
            Body = ConvertTo-JSON $Backup -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Backup.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestBackup
        }
    }
}
Function New-AVIRestSecuritymanagerdata {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestSecuritymanagerdata
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSecuritymanagerdata')]$Securitymanagerdata
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/securitymanagerdata"
            Body = ConvertTo-JSON $Securitymanagerdata -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Securitymanagerdata.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestSecuritymanagerdata
        }
    }
}
Function New-AVIRestVirtualservice {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestVirtualservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVirtualservice')]$Virtualservice
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/virtualservice"
            Body = ConvertTo-JSON $Virtualservice -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Virtualservice.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVirtualservice
        }
    }
}
Function New-AVIRestVsvip {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestVsvip
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVsvip')]$Vsvip
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vsvip"
            Body = ConvertTo-JSON $Vsvip -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Vsvip.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVsvip
        }
    }
}
Function New-AVIRestIpamdnsproviderprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestIpamdnsproviderprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestIpamdnsproviderprofile')]$Ipamdnsproviderprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/ipamdnsproviderprofile"
            Body = ConvertTo-JSON $Ipamdnsproviderprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Ipamdnsproviderprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestIpamdnsproviderprofile
        }
    }
}
Function New-AVIRestWafprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestWafprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafprofile')]$Wafprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/wafprofile"
            Body = ConvertTo-JSON $Wafprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Wafprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestWafprofile
        }
    }
}
Function New-AVIRestLicensingLedgerDetails {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestLicensingLedgerDetails
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestLicensingLedgerDetails')]$LicensingLedgerDetails
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/licensing/ledger/details"
            Body = ConvertTo-JSON $LicensingLedgerDetails -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($LicensingLedgerDetails.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestLicensingLedgerDetails
        }
    }
}
Function New-AVIRestPingaccessagent {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestPingaccessagent
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPingaccessagent')]$Pingaccessagent
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/pingaccessagent"
            Body = ConvertTo-JSON $Pingaccessagent -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Pingaccessagent.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPingaccessagent
        }
    }
}
Function New-AVIRestApplication {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestApplication
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestApplication')]$Application
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/application"
            Body = ConvertTo-JSON $Application -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Application.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestApplication
        }
    }
}
Function New-AVIRestDebugserviceengine {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestDebugserviceengine
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDebugserviceengine')]$Debugserviceengine
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/debugserviceengine"
            Body = ConvertTo-JSON $Debugserviceengine -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Debugserviceengine.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestDebugserviceengine
        }
    }
}
Function New-AVIRestDebugvirtualservice {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestDebugvirtualservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDebugvirtualservice')]$Debugvirtualservice
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/debugvirtualservice"
            Body = ConvertTo-JSON $Debugvirtualservice -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Debugvirtualservice.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestDebugvirtualservice
        }
    }
}
Function New-AVIRestPoolgroupdeploymentpolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestPoolgroupdeploymentpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolgroupdeploymentpolicy')]$Poolgroupdeploymentpolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/poolgroupdeploymentpolicy"
            Body = ConvertTo-JSON $Poolgroupdeploymentpolicy -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Poolgroupdeploymentpolicy.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolgroupdeploymentpolicy
        }
    }
}
Function New-AVIRestHttppolicyset {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestHttppolicyset
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestHttppolicyset')]$Httppolicyset
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/httppolicyset"
            Body = ConvertTo-JSON $Httppolicyset -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Httppolicyset.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestHttppolicyset
        }
    }
}
Function New-AVIRestSecuritypolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestSecuritypolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSecuritypolicy')]$Securitypolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/securitypolicy"
            Body = ConvertTo-JSON $Securitypolicy -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Securitypolicy.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestSecuritypolicy
        }
    }
}
Function New-AVIRestSnmptrapprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestSnmptrapprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSnmptrapprofile')]$Snmptrapprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/snmptrapprofile"
            Body = ConvertTo-JSON $Snmptrapprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Snmptrapprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestSnmptrapprofile
        }
    }
}
Function New-AVIRestSystemlimits {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestSystemlimits
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSystemlimits')]$Systemlimits
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/systemlimits"
            Body = ConvertTo-JSON $Systemlimits -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Systemlimits.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestSystemlimits
        }
    }
}
Function New-AVIRestPrioritylabels {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestPrioritylabels
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPrioritylabels')]$Prioritylabels
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/prioritylabels"
            Body = ConvertTo-JSON $Prioritylabels -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Prioritylabels.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPrioritylabels
        }
    }
}
Function New-AVIRestGslb {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestGslb
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGslb')]$Gslb
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/gslb"
            Body = ConvertTo-JSON $Gslb -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Gslb.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestGslb
        }
    }
}
Function New-AVIRestGslbservice {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestGslbservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGslbservice')]$Gslbservice
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/gslbservice"
            Body = ConvertTo-JSON $Gslbservice -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Gslbservice.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestGslbservice
        }
    }
}
Function New-AVIRestGslbgeodbprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestGslbgeodbprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGslbgeodbprofile')]$Gslbgeodbprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/gslbgeodbprofile"
            Body = ConvertTo-JSON $Gslbgeodbprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Gslbgeodbprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestGslbgeodbprofile
        }
    }
}
Function New-AVIRestDebugcontroller {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestDebugcontroller
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDebugcontroller')]$Debugcontroller
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/debugcontroller"
            Body = ConvertTo-JSON $Debugcontroller -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Debugcontroller.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestDebugcontroller
        }
    }
}
Function New-AVIRestErrorpageprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestErrorpageprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestErrorpageprofile')]$Errorpageprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/errorpageprofile"
            Body = ConvertTo-JSON $Errorpageprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Errorpageprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestErrorpageprofile
        }
    }
}
Function New-AVIRestErrorpagebody {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestErrorpagebody
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestErrorpagebody')]$Errorpagebody
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/errorpagebody"
            Body = ConvertTo-JSON $Errorpagebody -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Errorpagebody.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestErrorpagebody
        }
    }
}
Function New-AVIRestAlertsyslogconfig {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestAlertsyslogconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertsyslogconfig')]$Alertsyslogconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/alertsyslogconfig"
            Body = ConvertTo-JSON $Alertsyslogconfig -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Alertsyslogconfig.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlertsyslogconfig
        }
    }
}
Function New-AVIRestAlertemailconfig {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestAlertemailconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertemailconfig')]$Alertemailconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/alertemailconfig"
            Body = ConvertTo-JSON $Alertemailconfig -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Alertemailconfig.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlertemailconfig
        }
    }
}
Function New-AVIRestAlertscriptconfig {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestAlertscriptconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertscriptconfig')]$Alertscriptconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/alertscriptconfig"
            Body = ConvertTo-JSON $Alertscriptconfig -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Alertscriptconfig.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlertscriptconfig
        }
    }
}
Function New-AVIRestAlertconfig {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestAlertconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertconfig')]$Alertconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/alertconfig"
            Body = ConvertTo-JSON $Alertconfig -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Alertconfig.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlertconfig
        }
    }
}
Function New-AVIRestActiongroupconfig {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestActiongroupconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestActiongroupconfig')]$Actiongroupconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/actiongroupconfig"
            Body = ConvertTo-JSON $Actiongroupconfig -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Actiongroupconfig.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestActiongroupconfig
        }
    }
}
Function New-AVIRestAlertobjectlist {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestAlertobjectlist
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertobjectlist')]$Alertobjectlist
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/alertobjectlist"
            Body = ConvertTo-JSON $Alertobjectlist -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Alertobjectlist.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlertobjectlist
        }
    }
}
Function New-AVIRestAlert {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestAlert
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlert')]$Alert
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/alert"
            Body = ConvertTo-JSON $Alert -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Alert.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlert
        }
    }
}
Function New-AVIRestInventoryfaultconfig {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestInventoryfaultconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestInventoryfaultconfig')]$Inventoryfaultconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/inventoryfaultconfig"
            Body = ConvertTo-JSON $Inventoryfaultconfig -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Inventoryfaultconfig.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestInventoryfaultconfig
        }
    }
}
Function New-AVIRestTenantsystemconfiguration {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestTenantsystemconfiguration
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTenantsystemconfiguration')]$Tenantsystemconfiguration
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/tenantsystemconfiguration"
            Body = ConvertTo-JSON $Tenantsystemconfiguration -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Tenantsystemconfiguration.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestTenantsystemconfiguration
        }
    }
}
Function New-AVIRestNetworksecuritypolicyObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestNetworksecuritypolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestNetworksecuritypolicy')
        $result
    }
}
Function New-AVIRestFileobjectObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestFileobject
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestFileobject')
        $result
    }
}
Function New-AVIRestRoleObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestRole
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestRole')
        $result
    }
}
Function New-AVIRestTenantObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestTenant
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestTenant')
        $result
    }
}
Function New-AVIRestUseractivityObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestUseractivity
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestUseractivity')
        $result
    }
}
Function New-AVIRestUseraccountprofileObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestUseraccountprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestUseraccountprofile')
        $result
    }
}
Function New-AVIRestClusterclouddetailsObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestClusterclouddetails
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestClusterclouddetails')
        $result
    }
}
Function New-AVIRestApplicationprofileObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestApplicationprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestApplicationprofile')
        $result
    }
}
Function New-AVIRestPoolgroupObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestPoolgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestPoolgroup')
        $result
    }
}
Function New-AVIRestPoolgroupClearObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestPoolgroupClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestPoolgroupClear')
        $result
    }
}
Function New-AVIRestSslprofileObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestSslprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestSslprofile')
        $result
    }
}
Function New-AVIRestSslkeyandcertificateObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestSslkeyandcertificate
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestSslkeyandcertificate')
        $result
    }
}
Function New-AVIRestPkiprofileObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestPkiprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestPkiprofile')
        $result
    }
}
Function New-AVIRestCertificatemanagementprofileObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestCertificatemanagementprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestCertificatemanagementprofile')
        $result
    }
}
Function New-AVIRestVrfcontextObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestVrfcontext
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVrfcontext')
        $result
    }
}
Function New-AVIRestWebapputObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestWebapput
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestWebapput')
        $result
    }
}
Function New-AVIRestIcapprofileObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestIcapprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestIcapprofile')
        $result
    }
}
Function New-AVIRestLabelgroupObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestLabelgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestLabelgroup')
        $result
    }
}
Function New-AVIRestTrafficcloneprofileObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestTrafficcloneprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestTrafficcloneprofile')
        $result
    }
}
Function New-AVIRestGeodbObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestGeodb
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestGeodb')
        $result
    }
}
Function New-AVIRestTestsedatastorelevel1Object {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestTestsedatastorelevel1
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestTestsedatastorelevel1')
        $result
    }
}
Function New-AVIRestTestsedatastorelevel2Object {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestTestsedatastorelevel2
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestTestsedatastorelevel2')
        $result
    }
}
Function New-AVIRestTestsedatastorelevel3Object {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestTestsedatastorelevel3
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestTestsedatastorelevel3')
        $result
    }
}
Function New-AVIRestAnalyticsprofileObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestAnalyticsprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAnalyticsprofile')
        $result
    }
}
Function New-AVIRestAlbservicesfileuploadObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestAlbservicesfileupload
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAlbservicesfileupload')
        $result
    }
}
Function New-AVIRestSecurechannelmappingObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestSecurechannelmapping
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestSecurechannelmapping')
        $result
    }
}
Function New-AVIRestSecurechannelavailablelocalipsObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestSecurechannelavailablelocalips
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestSecurechannelavailablelocalips')
        $result
    }
}
Function New-AVIRestSecurechanneltokenObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestSecurechanneltoken
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestSecurechanneltoken')
        $result
    }
}
Function New-AVIRestMicroserviceObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestMicroservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestMicroservice')
        $result
    }
}
Function New-AVIRestCustomipamdnsprofileObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestCustomipamdnsprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestCustomipamdnsprofile')
        $result
    }
}
Function New-AVIRestJwtserverprofileObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestJwtserverprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestJwtserverprofile')
        $result
    }
}
Function New-AVIRestAuthprofileObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestAuthprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAuthprofile')
        $result
    }
}
Function New-AVIRestAuthmappingprofileObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestAuthmappingprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAuthmappingprofile')
        $result
    }
}
Function New-AVIRestWafpolicypsmgroupObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestWafpolicypsmgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestWafpolicypsmgroup')
        $result
    }
}
Function New-AVIRestBotdetectionpolicyObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestBotdetectionpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestBotdetectionpolicy')
        $result
    }
}
Function New-AVIRestBotmappingObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestBotmapping
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestBotmapping')
        $result
    }
}
Function New-AVIRestBotconfigconsolidatorObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestBotconfigconsolidator
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestBotconfigconsolidator')
        $result
    }
}
Function New-AVIRestBotipreputationtypemappingObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestBotipreputationtypemapping
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestBotipreputationtypemapping')
        $result
    }
}
Function New-AVIRestDynamicdnsrecordObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestDynamicdnsrecord
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestDynamicdnsrecord')
        $result
    }
}
Function New-AVIRestVsgsObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestVsgs
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVsgs')
        $result
    }
}
Function New-AVIRestServerautoscalepolicyObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestServerautoscalepolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServerautoscalepolicy')
        $result
    }
}
Function New-AVIRestAutoscalelaunchconfigObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestAutoscalelaunchconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAutoscalelaunchconfig')
        $result
    }
}
Function New-AVIRestControllerpropertiesObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestControllerproperties
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestControllerproperties')
        $result
    }
}
Function New-AVIRestNetworkserviceObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestNetworkservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestNetworkservice')
        $result
    }
}
Function New-AVIRestLicensingStatusObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestLicensingStatus
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestLicensingStatus')
        $result
    }
}
Function New-AVIRestAlbservicesconfigObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestAlbservicesconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAlbservicesconfig')
        $result
    }
}
Function New-AVIRestPoolInventoryObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestPoolInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestPoolInventory')
        $result
    }
}
Function New-AVIRestPoolgroupInventoryObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestPoolgroupInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestPoolgroupInventory')
        $result
    }
}
Function New-AVIRestVsvipInventoryObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestVsvipInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVsvipInventory')
        $result
    }
}
Function New-AVIRestServiceengineInventoryObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestServiceengineInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceengineInventory')
        $result
    }
}
Function New-AVIRestServiceenginegroupInventoryObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestServiceenginegroupInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceenginegroupInventory')
        $result
    }
}
Function New-AVIRestUpgradestatussummaryObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestUpgradestatussummary
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestUpgradestatussummary')
        $result
    }
}
Function New-AVIRestServiceenginegroupObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestServiceenginegroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceenginegroup')
        $result
    }
}
Function New-AVIRestServiceenginegroupClearObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestServiceenginegroupClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceenginegroupClear')
        $result
    }
}
Function New-AVIRestNetworkInventoryObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestNetworkInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestNetworkInventory')
        $result
    }
}
Function New-AVIRestNetworkruntimeObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestNetworkruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestNetworkruntime')
        $result
    }
}
Function New-AVIRestVimgrnwruntimeObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestVimgrnwruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVimgrnwruntime')
        $result
    }
}
Function New-AVIRestCloudInventoryObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestCloudInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestCloudInventory')
        $result
    }
}
Function New-AVIRestGslbInventoryObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestGslbInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestGslbInventory')
        $result
    }
}
Function New-AVIRestGslbserviceInventoryObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestGslbserviceInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestGslbserviceInventory')
        $result
    }
}
Function New-AVIRestWafpolicypsmgroupInventoryObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestWafpolicypsmgroupInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestWafpolicypsmgroupInventory')
        $result
    }
}
Function New-AVIRestFederationcheckpointInventoryObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestFederationcheckpointInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestFederationcheckpointInventory')
        $result
    }
}
Function New-AVIRestFederationcheckpointObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestFederationcheckpoint
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestFederationcheckpoint')
        $result
    }
}
Function New-AVIRestIpreputationdbObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestIpreputationdb
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestIpreputationdb')
        $result
    }
}
Function New-AVIRestNetworkObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestNetwork
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestNetwork')
        $result
    }
}
Function New-AVIRestIpaddrgroupObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestIpaddrgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestIpaddrgroup')
        $result
    }
}
Function New-AVIRestStringgroupObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestStringgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestStringgroup')
        $result
    }
}
Function New-AVIRestMicroservicegroupObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestMicroservicegroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestMicroservicegroup')
        $result
    }
}
Function New-AVIRestWafcrsObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestWafcrs
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestWafcrs')
        $result
    }
}
Function New-AVIRestSystemconfigurationObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestSystemconfiguration
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestSystemconfiguration')
        $result
    }
}
Function New-AVIRestSystemconfigurationSystestemailObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestSystemconfigurationSystestemail
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{
  "subject": "",
  "text": "",
  "to_emails": ""
}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{
  "cc_emails": "",
  "subject": "",
  "text": "",
  "to_emails": ""
}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestSystemconfigurationSystestemail')
        $result
    }
}
Function New-AVIRestControllersiteObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestControllersite
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestControllersite')
        $result
    }
}
Function New-AVIRestCloudconnectoruserObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestCloudconnectoruser
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestCloudconnectoruser')
        $result
    }
}
Function New-AVIRestSepropertiesObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestSeproperties
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestSeproperties')
        $result
    }
}
Function New-AVIRestCsrfpolicyObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestCsrfpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestCsrfpolicy')
        $result
    }
}
Function New-AVIRestVcenterserverObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestVcenterserver
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVcenterserver')
        $result
    }
}
Function New-AVIRestAvailabilityzoneObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestAvailabilityzone
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAvailabilityzone')
        $result
    }
}
Function New-AVIRestNsxtsegmentruntimeObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestNsxtsegmentruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestNsxtsegmentruntime')
        $result
    }
}
Function New-AVIRestStatediffoperationObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestStatediffoperation
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestStatediffoperation')
        $result
    }
}
Function New-AVIRestApplicationpersistenceprofileObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestApplicationpersistenceprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestApplicationpersistenceprofile')
        $result
    }
}
Function New-AVIRestScvsstateinfoObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestScvsstateinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestScvsstateinfo')
        $result
    }
}
Function New-AVIRestScpoolserverstateinfoObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestScpoolserverstateinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestScpoolserverstateinfo')
        $result
    }
}
Function New-AVIRestAlbservicesjobObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestAlbservicesjob
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAlbservicesjob')
        $result
    }
}
Function New-AVIRestImageObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestImage
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestImage')
        $result
    }
}
Function New-AVIRestCloudObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestCloud
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestCloud')
        $result
    }
}
Function New-AVIRestCloudListObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestCloudList
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestCloudList')
        $result
    }
}
Function New-AVIRestCloudruntimeObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestCloudruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestCloudruntime')
        $result
    }
}
Function New-AVIRestL4policysetObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestL4policyset
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestL4policyset')
        $result
    }
}
Function New-AVIRestHealthmonitorObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestHealthmonitor
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestHealthmonitor')
        $result
    }
}
Function New-AVIRestUpgradestatusinfoObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestUpgradestatusinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestUpgradestatusinfo')
        $result
    }
}
Function New-AVIRestCloudpropertiesObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestCloudproperties
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestCloudproperties')
        $result
    }
}
Function New-AVIRestVsdatascriptsetObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestVsdatascriptset
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVsdatascriptset')
        $result
    }
}
Function New-AVIRestControllerportalregistrationObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestControllerportalregistration
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestControllerportalregistration')
        $result
    }
}
Function New-AVIRestUserObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestUser
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestUser')
        $result
    }
}
Function New-AVIRestNetworkprofileObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestNetworkprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestNetworkprofile')
        $result
    }
}
Function New-AVIRestDnspolicyObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestDnspolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestDnspolicy')
        $result
    }
}
Function New-AVIRestHardwaresecuritymodulegroupObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestHardwaresecuritymodulegroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestHardwaresecuritymodulegroup')
        $result
    }
}
Function New-AVIRestLogcontrollerObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestLogcontroller
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestLogcontroller')
        $result
    }
}
Function New-AVIRestProtocolparserObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestProtocolparser
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestProtocolparser')
        $result
    }
}
Function New-AVIRestSchedulerObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestScheduler
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestScheduler')
        $result
    }
}
Function New-AVIRestBackupconfigurationObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestBackupconfiguration
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestBackupconfiguration')
        $result
    }
}
Function New-AVIRestVimgrsevmruntimeObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestVimgrsevmruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVimgrsevmruntime')
        $result
    }
}
Function New-AVIRestVimgrvmruntimeObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestVimgrvmruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVimgrvmruntime')
        $result
    }
}
Function New-AVIRestVimgrhostruntimeObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestVimgrhostruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVimgrhostruntime')
        $result
    }
}
Function New-AVIRestVimgrclusterruntimeObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestVimgrclusterruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVimgrclusterruntime')
        $result
    }
}
Function New-AVIRestServiceengineObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestServiceengine
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceengine')
        $result
    }
}
Function New-AVIRestServiceengineClearObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestServiceengineClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceengineClear')
        $result
    }
}
Function New-AVIRestWafpolicyObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestWafpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestWafpolicy')
        $result
    }
}
Function New-AVIRestWafapplicationsignatureproviderObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestWafapplicationsignatureprovider
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestWafapplicationsignatureprovider')
        $result
    }
}
Function New-AVIRestSsopolicyObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestSsopolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestSsopolicy')
        $result
    }
}
Function New-AVIRestNatpolicyObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestNatpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestNatpolicy')
        $result
    }
}
Function New-AVIRestSiteversionObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestSiteversion
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestSiteversion')
        $result
    }
}
Function New-AVIRestWebhookObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestWebhook
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestWebhook')
        $result
    }
}
Function New-AVIRestPoolObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestPool
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestPool')
        $result
    }
}
Function New-AVIRestPoolClearObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestPoolClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestPoolClear')
        $result
    }
}
Function New-AVIRestBackupObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestBackup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestBackup')
        $result
    }
}
Function New-AVIRestSecuritymanagerdataObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestSecuritymanagerdata
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestSecuritymanagerdata')
        $result
    }
}
Function New-AVIRestVirtualserviceObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestVirtualservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVirtualservice')
        $result
    }
}
Function New-AVIRestVsvipObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestVsvip
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVsvip')
        $result
    }
}
Function New-AVIRestIpamdnsproviderprofileObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestIpamdnsproviderprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestIpamdnsproviderprofile')
        $result
    }
}
Function New-AVIRestWafprofileObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestWafprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestWafprofile')
        $result
    }
}
Function New-AVIRestLicensingLedgerDetailsObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestLicensingLedgerDetails
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestLicensingLedgerDetails')
        $result
    }
}
Function New-AVIRestPingaccessagentObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestPingaccessagent
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestPingaccessagent')
        $result
    }
}
Function New-AVIRestApplicationObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestApplication
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestApplication')
        $result
    }
}
Function New-AVIRestDebugserviceengineObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestDebugserviceengine
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestDebugserviceengine')
        $result
    }
}
Function New-AVIRestDebugvirtualserviceObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestDebugvirtualservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestDebugvirtualservice')
        $result
    }
}
Function New-AVIRestPoolgroupdeploymentpolicyObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestPoolgroupdeploymentpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestPoolgroupdeploymentpolicy')
        $result
    }
}
Function New-AVIRestHttppolicysetObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestHttppolicyset
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestHttppolicyset')
        $result
    }
}
Function New-AVIRestSecuritypolicyObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestSecuritypolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestSecuritypolicy')
        $result
    }
}
Function New-AVIRestSnmptrapprofileObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestSnmptrapprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestSnmptrapprofile')
        $result
    }
}
Function New-AVIRestSystemlimitsObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestSystemlimits
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestSystemlimits')
        $result
    }
}
Function New-AVIRestPrioritylabelsObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestPrioritylabels
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestPrioritylabels')
        $result
    }
}
Function New-AVIRestGslbObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestGslb
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestGslb')
        $result
    }
}
Function New-AVIRestGslbserviceObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestGslbservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestGslbservice')
        $result
    }
}
Function New-AVIRestGslbgeodbprofileObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestGslbgeodbprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestGslbgeodbprofile')
        $result
    }
}
Function New-AVIRestDebugcontrollerObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestDebugcontroller
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestDebugcontroller')
        $result
    }
}
Function New-AVIRestErrorpageprofileObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestErrorpageprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestErrorpageprofile')
        $result
    }
}
Function New-AVIRestErrorpagebodyObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestErrorpagebody
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestErrorpagebody')
        $result
    }
}
Function New-AVIRestAlertsyslogconfigObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestAlertsyslogconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAlertsyslogconfig')
        $result
    }
}
Function New-AVIRestAlertemailconfigObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestAlertemailconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAlertemailconfig')
        $result
    }
}
Function New-AVIRestAlertscriptconfigObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestAlertscriptconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAlertscriptconfig')
        $result
    }
}
Function New-AVIRestAlertconfigObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestAlertconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAlertconfig')
        $result
    }
}
Function New-AVIRestActiongroupconfigObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestActiongroupconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestActiongroupconfig')
        $result
    }
}
Function New-AVIRestAlertobjectlistObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestAlertobjectlist
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAlertobjectlist')
        $result
    }
}
Function New-AVIRestAlertObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestAlert
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAlert')
        $result
    }
}
Function New-AVIRestInventoryfaultconfigObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestInventoryfaultconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestInventoryfaultconfig')
        $result
    }
}
Function New-AVIRestTenantsystemconfigurationObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestTenantsystemconfiguration
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestTenantsystemconfiguration')
        $result
    }
}
Function Invoke-AVIRestPoolgroupEnable_primary_poolClear {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Invoke-AviRestPoolgroupEnable_primary_poolClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolgroupEnable_primary_poolClear')]$PoolgroupEnable_primary_poolClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $PoolgroupEnable_primary_poolClear.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/poolgroup/${uuid}/enable_primary_pool/clear"
            Body = ConvertTo-JSON $PoolgroupEnable_primary_poolClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($PoolgroupEnable_primary_poolClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolgroupEnable_primary_poolClear
        }
    }
}
Function Invoke-AVIRestSslkeyandcertificateRenew {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Invoke-AviRestSslkeyandcertificateRenew
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSslkeyandcertificateRenew')]$SslkeyandcertificateRenew
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $SslkeyandcertificateRenew.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/sslkeyandcertificate/${uuid}/renew"
            Body = ConvertTo-JSON $SslkeyandcertificateRenew -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($SslkeyandcertificateRenew.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestSslkeyandcertificateRenew
        }
    }
}
Function Invoke-AVIRestServiceenginegroupRedistribute {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Invoke-AviRestServiceenginegroupRedistribute
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceenginegroupRedistribute')]$ServiceenginegroupRedistribute
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $ServiceenginegroupRedistribute.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceenginegroup/${uuid}/redistribute"
            Body = ConvertTo-JSON $ServiceenginegroupRedistribute -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceenginegroupRedistribute.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceenginegroupRedistribute
        }
    }
}
Function Invoke-AVIRestCloudconnectoruserTest {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Invoke-AviRestCloudconnectoruserTest
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloudconnectoruserTest')]$CloudconnectoruserTest
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $CloudconnectoruserTest.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/cloudconnectoruser/${uuid}/test"
            Body = ConvertTo-JSON $CloudconnectoruserTest -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($CloudconnectoruserTest.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestCloudconnectoruserTest
        }
    }
}
Function Invoke-AVIRestVimgrhostruntimeAccessible {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Invoke-AviRestVimgrhostruntimeAccessible
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrhostruntimeAccessible')]$VimgrhostruntimeAccessible
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $VimgrhostruntimeAccessible.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrhostruntime/${uuid}/accessible"
            Body = ConvertTo-JSON $VimgrhostruntimeAccessible -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VimgrhostruntimeAccessible.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrhostruntimeAccessible
        }
    }
}
Function Invoke-AVIRestServiceengineReboot {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Invoke-AviRestServiceengineReboot
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengineReboot')]$ServiceengineReboot
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $ServiceengineReboot.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceengine/${uuid}/reboot"
            Body = ConvertTo-JSON $ServiceengineReboot -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceengineReboot.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengineReboot
        }
    }
}
Function Invoke-AVIRestServiceengineForcedelete {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Invoke-AviRestServiceengineForcedelete
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengineForcedelete')]$ServiceengineForcedelete
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $ServiceengineForcedelete.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceengine/${uuid}/forcedelete"
            Body = ConvertTo-JSON $ServiceengineForcedelete -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceengineForcedelete.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengineForcedelete
        }
    }
}
Function Invoke-AVIRestServiceengineSwitchover {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Invoke-AviRestServiceengineSwitchover
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengineSwitchover')]$ServiceengineSwitchover
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $ServiceengineSwitchover.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceengine/${uuid}/switchover"
            Body = ConvertTo-JSON $ServiceengineSwitchover -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceengineSwitchover.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengineSwitchover
        }
    }
}
Function Invoke-AVIRestServiceengineFaultinjectExhaust_mbufClear {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Invoke-AviRestServiceengineFaultinjectExhaust_mbufClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengineFaultinjectExhaust_mbufClear')]$ServiceengineFaultinjectExhaust_mbufClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $ServiceengineFaultinjectExhaust_mbufClear.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceengine/${uuid}/faultinject/exhaust_mbuf/clear"
            Body = ConvertTo-JSON $ServiceengineFaultinjectExhaust_mbufClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceengineFaultinjectExhaust_mbufClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengineFaultinjectExhaust_mbufClear
        }
    }
}
Function Invoke-AVIRestServiceengineFaultinjectExhaust_mclClear {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Invoke-AviRestServiceengineFaultinjectExhaust_mclClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengineFaultinjectExhaust_mclClear')]$ServiceengineFaultinjectExhaust_mclClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $ServiceengineFaultinjectExhaust_mclClear.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceengine/${uuid}/faultinject/exhaust_mcl/clear"
            Body = ConvertTo-JSON $ServiceengineFaultinjectExhaust_mclClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceengineFaultinjectExhaust_mclClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengineFaultinjectExhaust_mclClear
        }
    }
}
Function Invoke-AVIRestServiceengineFaultinjectExhaust_mcl_smallClear {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Invoke-AviRestServiceengineFaultinjectExhaust_mcl_smallClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengineFaultinjectExhaust_mcl_smallClear')]$ServiceengineFaultinjectExhaust_mcl_smallClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $ServiceengineFaultinjectExhaust_mcl_smallClear.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceengine/${uuid}/faultinject/exhaust_mcl_small/clear"
            Body = ConvertTo-JSON $ServiceengineFaultinjectExhaust_mcl_smallClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceengineFaultinjectExhaust_mcl_smallClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengineFaultinjectExhaust_mcl_smallClear
        }
    }
}
Function Invoke-AVIRestServiceengineFaultinjectExhaust_connClear {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Invoke-AviRestServiceengineFaultinjectExhaust_connClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengineFaultinjectExhaust_connClear')]$ServiceengineFaultinjectExhaust_connClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $ServiceengineFaultinjectExhaust_connClear.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceengine/${uuid}/faultinject/exhaust_conn/clear"
            Body = ConvertTo-JSON $ServiceengineFaultinjectExhaust_connClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceengineFaultinjectExhaust_connClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengineFaultinjectExhaust_connClear
        }
    }
}
Function Invoke-AVIRestServiceengineFaultinjectExhaust_shm_connClear {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Invoke-AviRestServiceengineFaultinjectExhaust_shm_connClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengineFaultinjectExhaust_shm_connClear')]$ServiceengineFaultinjectExhaust_shm_connClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $ServiceengineFaultinjectExhaust_shm_connClear.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceengine/${uuid}/faultinject/exhaust_shm_conn/clear"
            Body = ConvertTo-JSON $ServiceengineFaultinjectExhaust_shm_connClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceengineFaultinjectExhaust_shm_connClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengineFaultinjectExhaust_shm_connClear
        }
    }
}
Function Invoke-AVIRestServiceengineFaultinjectExhaust_cfgClear {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Invoke-AviRestServiceengineFaultinjectExhaust_cfgClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengineFaultinjectExhaust_cfgClear')]$ServiceengineFaultinjectExhaust_cfgClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $ServiceengineFaultinjectExhaust_cfgClear.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceengine/${uuid}/faultinject/exhaust_cfg/clear"
            Body = ConvertTo-JSON $ServiceengineFaultinjectExhaust_cfgClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceengineFaultinjectExhaust_cfgClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengineFaultinjectExhaust_cfgClear
        }
    }
}
Function Invoke-AVIRestServiceengineFaultinjectExhaust_shm_cfgClear {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Invoke-AviRestServiceengineFaultinjectExhaust_shm_cfgClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengineFaultinjectExhaust_shm_cfgClear')]$ServiceengineFaultinjectExhaust_shm_cfgClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $ServiceengineFaultinjectExhaust_shm_cfgClear.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceengine/${uuid}/faultinject/exhaust_shm_cfg/clear"
            Body = ConvertTo-JSON $ServiceengineFaultinjectExhaust_shm_cfgClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceengineFaultinjectExhaust_shm_cfgClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengineFaultinjectExhaust_shm_cfgClear
        }
    }
}
Function Invoke-AVIRestServiceengineFaultinjectSefaultClear {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Invoke-AviRestServiceengineFaultinjectSefaultClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengineFaultinjectSefaultClear')]$ServiceengineFaultinjectSefaultClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $ServiceengineFaultinjectSefaultClear.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceengine/${uuid}/faultinject/sefault/clear"
            Body = ConvertTo-JSON $ServiceengineFaultinjectSefaultClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceengineFaultinjectSefaultClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengineFaultinjectSefaultClear
        }
    }
}
Function Invoke-AVIRestPoolScaleout {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Invoke-AviRestPoolScaleout
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolScaleout')]$PoolScaleout
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $PoolScaleout.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/pool/${uuid}/scaleout"
            Body = ConvertTo-JSON $PoolScaleout -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($PoolScaleout.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolScaleout
        }
    }
}
Function Invoke-AVIRestPoolScalein {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Invoke-AviRestPoolScalein
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolScalein')]$PoolScalein
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $PoolScalein.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/pool/${uuid}/scalein"
            Body = ConvertTo-JSON $PoolScalein -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($PoolScalein.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolScalein
        }
    }
}
Function Invoke-AVIRestPoolRuntimeStatsClear {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Invoke-AviRestPoolRuntimeStatsClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolRuntimeStatsClear')]$PoolRuntimeStatsClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $PoolRuntimeStatsClear.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/pool/${uuid}/runtime/stats/clear"
            Body = ConvertTo-JSON $PoolRuntimeStatsClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($PoolRuntimeStatsClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolRuntimeStatsClear
        }
    }
}
Function Invoke-AVIRestPoolRuntimeRequest_queueClear {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Invoke-AviRestPoolRuntimeRequest_queueClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolRuntimeRequest_queueClear')]$PoolRuntimeRequest_queueClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $PoolRuntimeRequest_queueClear.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/pool/${uuid}/runtime/request_queue/clear"
            Body = ConvertTo-JSON $PoolRuntimeRequest_queueClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($PoolRuntimeRequest_queueClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolRuntimeRequest_queueClear
        }
    }
}
Function Invoke-AVIRestPoolConnpoolstatsClear {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Invoke-AviRestPoolConnpoolstatsClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolConnpoolstatsClear')]$PoolConnpoolstatsClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $PoolConnpoolstatsClear.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/pool/${uuid}/connpoolstats/clear"
            Body = ConvertTo-JSON $PoolConnpoolstatsClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($PoolConnpoolstatsClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolConnpoolstatsClear
        }
    }
}
Function Invoke-AVIRestSnmptrapprofileTestsnmptrap {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Invoke-AviRestSnmptrapprofileTestsnmptrap
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSnmptrapprofileTestsnmptrap')]$SnmptrapprofileTestsnmptrap
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $SnmptrapprofileTestsnmptrap.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/snmptrapprofile/${uuid}/testsnmptrap"
            Body = ConvertTo-JSON $SnmptrapprofileTestsnmptrap -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($SnmptrapprofileTestsnmptrap.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestSnmptrapprofileTestsnmptrap
        }
    }
}
Function Invoke-AVIRestAlertsyslogconfigTestsyslog {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Invoke-AviRestAlertsyslogconfigTestsyslog
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertsyslogconfigTestsyslog')]$AlertsyslogconfigTestsyslog
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $AlertsyslogconfigTestsyslog.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/alertsyslogconfig/${uuid}/testsyslog"
            Body = ConvertTo-JSON $AlertsyslogconfigTestsyslog -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($AlertsyslogconfigTestsyslog.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlertsyslogconfigTestsyslog
        }
    }
}
Function Invoke-AVIRestAlertemailconfigTestemail {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Invoke-AviRestAlertemailconfigTestemail
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertemailconfigTestemail')]$AlertemailconfigTestemail
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $AlertemailconfigTestemail.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/alertemailconfig/${uuid}/testemail"
            Body = ConvertTo-JSON $AlertemailconfigTestemail -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($AlertemailconfigTestemail.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAlertemailconfigTestemail
        }
    }
}
Function New-AVIRestPoolgroupEnable_primary_poolClearObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestPoolgroupEnable_primary_poolClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestPoolgroupEnable_primary_poolClear')
        $result
    }
}
Function New-AVIRestSslkeyandcertificateRenewObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestSslkeyandcertificateRenew
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestSslkeyandcertificateRenew')
        $result
    }
}
Function New-AVIRestCloudconnectoruserTestObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestCloudconnectoruserTest
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestCloudconnectoruserTest')
        $result
    }
}
Function New-AVIRestServiceengineRebootObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestServiceengineReboot
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceengineReboot')
        $result
    }
}
Function New-AVIRestServiceengineSwitchoverObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestServiceengineSwitchover
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceengineSwitchover')
        $result
    }
}
Function New-AVIRestServiceengineFaultinjectExhaust_mbufClearObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestServiceengineFaultinjectExhaust_mbufClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceengineFaultinjectExhaust_mbufClear')
        $result
    }
}
Function New-AVIRestServiceengineFaultinjectExhaust_mclClearObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestServiceengineFaultinjectExhaust_mclClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceengineFaultinjectExhaust_mclClear')
        $result
    }
}
Function New-AVIRestServiceengineFaultinjectExhaust_mcl_smallClearObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestServiceengineFaultinjectExhaust_mcl_smallClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceengineFaultinjectExhaust_mcl_smallClear')
        $result
    }
}
Function New-AVIRestServiceengineFaultinjectExhaust_connClearObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestServiceengineFaultinjectExhaust_connClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceengineFaultinjectExhaust_connClear')
        $result
    }
}
Function New-AVIRestServiceengineFaultinjectExhaust_shm_connClearObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestServiceengineFaultinjectExhaust_shm_connClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceengineFaultinjectExhaust_shm_connClear')
        $result
    }
}
Function New-AVIRestServiceengineFaultinjectExhaust_cfgClearObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestServiceengineFaultinjectExhaust_cfgClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceengineFaultinjectExhaust_cfgClear')
        $result
    }
}
Function New-AVIRestServiceengineFaultinjectExhaust_shm_cfgClearObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestServiceengineFaultinjectExhaust_shm_cfgClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceengineFaultinjectExhaust_shm_cfgClear')
        $result
    }
}
Function New-AVIRestServiceengineFaultinjectSefaultClearObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestServiceengineFaultinjectSefaultClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceengineFaultinjectSefaultClear')
        $result
    }
}
Function New-AVIRestPoolScaleoutObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestPoolScaleout
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestPoolScaleout')
        $result
    }
}
Function New-AVIRestPoolScaleinObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestPoolScalein
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestPoolScalein')
        $result
    }
}
Function New-AVIRestPoolRuntimeStatsClearObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestPoolRuntimeStatsClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestPoolRuntimeStatsClear')
        $result
    }
}
Function New-AVIRestPoolRuntimeRequest_queueClearObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestPoolRuntimeRequest_queueClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestPoolRuntimeRequest_queueClear')
        $result
    }
}
Function New-AVIRestPoolConnpoolstatsClearObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestPoolConnpoolstatsClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestPoolConnpoolstatsClear')
        $result
    }
}
Function New-AVIRestAlertsyslogconfigTestsyslogObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestAlertsyslogconfigTestsyslog
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{
  "text": ""
}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{
  "text": "",
  "uuid": ""
}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAlertsyslogconfigTestsyslog')
        $result
    }
}
Function New-AVIRestAlertemailconfigTestemailObject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        New-AviRestAlertemailconfigTestemail
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAlertemailconfigTestemail')
        $result
    }
}
Function Remove-AVIRestNetworksecuritypolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestNetworksecuritypolicy | Remove-AviRestNetworksecuritypolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Networksecuritypolicy')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Networksecuritypolicy',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworksecuritypolicy')]$Networksecuritypolicy,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Networksecuritypolicy') {
            $uuid = $Networksecuritypolicy.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/networksecuritypolicy/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Networksecuritypolicy.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestFileobject {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestFileobject | Remove-AviRestFileobject
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Fileobject')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Fileobject',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestFileobject')]$Fileobject,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Fileobject') {
            $uuid = $Fileobject.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/fileobject/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Fileobject.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestRole {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestRole | Remove-AviRestRole
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Role')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Role',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestRole')]$Role,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Role') {
            $uuid = $Role.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/role/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Role.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestTenant {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestTenant | Remove-AviRestTenant
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Tenant')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Tenant',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTenant')]$Tenant,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Tenant') {
            $uuid = $Tenant.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/tenant/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Tenant.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestUseractivity {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestUseractivity | Remove-AviRestUseractivity
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Useractivity')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Useractivity',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUseractivity')]$Useractivity,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Useractivity') {
            $uuid = $Useractivity.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/useractivity/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Useractivity.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestUseraccountprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestUseraccountprofile | Remove-AviRestUseraccountprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Useraccountprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Useraccountprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUseraccountprofile')]$Useraccountprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Useraccountprofile') {
            $uuid = $Useraccountprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/useraccountprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Useraccountprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestClusterclouddetails {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestClusterclouddetails | Remove-AviRestClusterclouddetails
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Clusterclouddetails')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Clusterclouddetails',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestClusterclouddetails')]$Clusterclouddetails,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Clusterclouddetails') {
            $uuid = $Clusterclouddetails.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/clusterclouddetails/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Clusterclouddetails.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestApplicationprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestApplicationprofile | Remove-AviRestApplicationprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Applicationprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Applicationprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestApplicationprofile')]$Applicationprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Applicationprofile') {
            $uuid = $Applicationprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/applicationprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Applicationprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestPoolgroup {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestPoolgroup | Remove-AviRestPoolgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Poolgroup')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Poolgroup',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolgroup')]$Poolgroup,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Poolgroup') {
            $uuid = $Poolgroup.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/poolgroup/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Poolgroup.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestSslprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestSslprofile | Remove-AviRestSslprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Sslprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Sslprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSslprofile')]$Sslprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Sslprofile') {
            $uuid = $Sslprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/sslprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Sslprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestSslkeyandcertificate {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestSslkeyandcertificate | Remove-AviRestSslkeyandcertificate
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Sslkeyandcertificate')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Sslkeyandcertificate',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSslkeyandcertificate')]$Sslkeyandcertificate,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Sslkeyandcertificate') {
            $uuid = $Sslkeyandcertificate.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/sslkeyandcertificate/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Sslkeyandcertificate.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestPkiprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestPkiprofile | Remove-AviRestPkiprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Pkiprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Pkiprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPkiprofile')]$Pkiprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Pkiprofile') {
            $uuid = $Pkiprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/pkiprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Pkiprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestCertificatemanagementprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestCertificatemanagementprofile | Remove-AviRestCertificatemanagementprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Certificatemanagementprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Certificatemanagementprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCertificatemanagementprofile')]$Certificatemanagementprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Certificatemanagementprofile') {
            $uuid = $Certificatemanagementprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/certificatemanagementprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Certificatemanagementprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestVrfcontext {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestVrfcontext | Remove-AviRestVrfcontext
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Vrfcontext')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Vrfcontext',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVrfcontext')]$Vrfcontext,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Vrfcontext') {
            $uuid = $Vrfcontext.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/vrfcontext/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Vrfcontext.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestWebapput {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestWebapput | Remove-AviRestWebapput
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Webapput')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Webapput',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWebapput')]$Webapput,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Webapput') {
            $uuid = $Webapput.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/webapput/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Webapput.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestIcapprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestIcapprofile | Remove-AviRestIcapprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Icapprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Icapprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestIcapprofile')]$Icapprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Icapprofile') {
            $uuid = $Icapprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/icapprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Icapprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestLabelgroup {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestLabelgroup | Remove-AviRestLabelgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Labelgroup')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Labelgroup',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestLabelgroup')]$Labelgroup,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Labelgroup') {
            $uuid = $Labelgroup.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/labelgroup/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Labelgroup.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestTrafficcloneprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestTrafficcloneprofile | Remove-AviRestTrafficcloneprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Trafficcloneprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Trafficcloneprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTrafficcloneprofile')]$Trafficcloneprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Trafficcloneprofile') {
            $uuid = $Trafficcloneprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/trafficcloneprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Trafficcloneprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestGeodb {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestGeodb | Remove-AviRestGeodb
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Geodb')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Geodb',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGeodb')]$Geodb,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Geodb') {
            $uuid = $Geodb.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/geodb/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Geodb.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestJobs {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestJobs | Remove-AviRestJobs
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Jobs')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Jobs',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestJobs')]$Jobs,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Jobs') {
            $uuid = $Jobs.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/jobs/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Jobs.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestTestsedatastorelevel1 {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestTestsedatastorelevel1 | Remove-AviRestTestsedatastorelevel1
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Testsedatastorelevel1')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Testsedatastorelevel1',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTestsedatastorelevel1')]$Testsedatastorelevel1,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Testsedatastorelevel1') {
            $uuid = $Testsedatastorelevel1.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/testsedatastorelevel1/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Testsedatastorelevel1.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestTestsedatastorelevel2 {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestTestsedatastorelevel2 | Remove-AviRestTestsedatastorelevel2
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Testsedatastorelevel2')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Testsedatastorelevel2',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTestsedatastorelevel2')]$Testsedatastorelevel2,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Testsedatastorelevel2') {
            $uuid = $Testsedatastorelevel2.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/testsedatastorelevel2/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Testsedatastorelevel2.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestTestsedatastorelevel3 {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestTestsedatastorelevel3 | Remove-AviRestTestsedatastorelevel3
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Testsedatastorelevel3')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Testsedatastorelevel3',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTestsedatastorelevel3')]$Testsedatastorelevel3,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Testsedatastorelevel3') {
            $uuid = $Testsedatastorelevel3.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/testsedatastorelevel3/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Testsedatastorelevel3.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestAnalyticsprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestAnalyticsprofile | Remove-AviRestAnalyticsprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Analyticsprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Analyticsprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAnalyticsprofile')]$Analyticsprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Analyticsprofile') {
            $uuid = $Analyticsprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/analyticsprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Analyticsprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestAlbservicesfileupload {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestAlbservicesfileupload | Remove-AviRestAlbservicesfileupload
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Albservicesfileupload')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Albservicesfileupload',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlbservicesfileupload')]$Albservicesfileupload,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Albservicesfileupload') {
            $uuid = $Albservicesfileupload.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/albservicesfileupload/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Albservicesfileupload.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestSecurechannelmapping {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestSecurechannelmapping | Remove-AviRestSecurechannelmapping
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Securechannelmapping')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Securechannelmapping',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSecurechannelmapping')]$Securechannelmapping,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Securechannelmapping') {
            $uuid = $Securechannelmapping.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/securechannelmapping/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Securechannelmapping.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestSecurechannelavailablelocalips {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestSecurechannelavailablelocalips | Remove-AviRestSecurechannelavailablelocalips
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Securechannelavailablelocalips')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Securechannelavailablelocalips',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSecurechannelavailablelocalips')]$Securechannelavailablelocalips,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Securechannelavailablelocalips') {
            $uuid = $Securechannelavailablelocalips.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/securechannelavailablelocalips/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Securechannelavailablelocalips.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestSecurechanneltoken {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestSecurechanneltoken | Remove-AviRestSecurechanneltoken
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Securechanneltoken')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Securechanneltoken',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSecurechanneltoken')]$Securechanneltoken,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Securechanneltoken') {
            $uuid = $Securechanneltoken.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/securechanneltoken/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Securechanneltoken.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestMicroservice {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestMicroservice | Remove-AviRestMicroservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Microservice')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Microservice',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestMicroservice')]$Microservice,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Microservice') {
            $uuid = $Microservice.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/microservice/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Microservice.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestCustomipamdnsprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestCustomipamdnsprofile | Remove-AviRestCustomipamdnsprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Customipamdnsprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Customipamdnsprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCustomipamdnsprofile')]$Customipamdnsprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Customipamdnsprofile') {
            $uuid = $Customipamdnsprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/customipamdnsprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Customipamdnsprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestJwtserverprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestJwtserverprofile | Remove-AviRestJwtserverprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Jwtserverprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Jwtserverprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestJwtserverprofile')]$Jwtserverprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Jwtserverprofile') {
            $uuid = $Jwtserverprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/jwtserverprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Jwtserverprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestAuthprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestAuthprofile | Remove-AviRestAuthprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Authprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Authprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAuthprofile')]$Authprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Authprofile') {
            $uuid = $Authprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/authprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Authprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestAuthmappingprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestAuthmappingprofile | Remove-AviRestAuthmappingprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Authmappingprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Authmappingprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAuthmappingprofile')]$Authmappingprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Authmappingprofile') {
            $uuid = $Authmappingprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/authmappingprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Authmappingprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestWafpolicypsmgroup {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestWafpolicypsmgroup | Remove-AviRestWafpolicypsmgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Wafpolicypsmgroup')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Wafpolicypsmgroup',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafpolicypsmgroup')]$Wafpolicypsmgroup,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Wafpolicypsmgroup') {
            $uuid = $Wafpolicypsmgroup.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/wafpolicypsmgroup/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Wafpolicypsmgroup.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestBotdetectionpolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestBotdetectionpolicy | Remove-AviRestBotdetectionpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Botdetectionpolicy')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Botdetectionpolicy',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBotdetectionpolicy')]$Botdetectionpolicy,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Botdetectionpolicy') {
            $uuid = $Botdetectionpolicy.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/botdetectionpolicy/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Botdetectionpolicy.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestBotmapping {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestBotmapping | Remove-AviRestBotmapping
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Botmapping')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Botmapping',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBotmapping')]$Botmapping,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Botmapping') {
            $uuid = $Botmapping.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/botmapping/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Botmapping.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestBotconfigconsolidator {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestBotconfigconsolidator | Remove-AviRestBotconfigconsolidator
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Botconfigconsolidator')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Botconfigconsolidator',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBotconfigconsolidator')]$Botconfigconsolidator,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Botconfigconsolidator') {
            $uuid = $Botconfigconsolidator.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/botconfigconsolidator/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Botconfigconsolidator.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestBotipreputationtypemapping {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestBotipreputationtypemapping | Remove-AviRestBotipreputationtypemapping
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Botipreputationtypemapping')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Botipreputationtypemapping',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBotipreputationtypemapping')]$Botipreputationtypemapping,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Botipreputationtypemapping') {
            $uuid = $Botipreputationtypemapping.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/botipreputationtypemapping/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Botipreputationtypemapping.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestDynamicdnsrecord {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestDynamicdnsrecord | Remove-AviRestDynamicdnsrecord
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Dynamicdnsrecord')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Dynamicdnsrecord',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDynamicdnsrecord')]$Dynamicdnsrecord,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Dynamicdnsrecord') {
            $uuid = $Dynamicdnsrecord.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/dynamicdnsrecord/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Dynamicdnsrecord.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestVsgs {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestVsgs | Remove-AviRestVsgs
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Vsgs')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Vsgs',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVsgs')]$Vsgs,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Vsgs') {
            $uuid = $Vsgs.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/vsgs/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Vsgs.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestServerautoscalepolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestServerautoscalepolicy | Remove-AviRestServerautoscalepolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Serverautoscalepolicy')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Serverautoscalepolicy',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServerautoscalepolicy')]$Serverautoscalepolicy,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Serverautoscalepolicy') {
            $uuid = $Serverautoscalepolicy.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/serverautoscalepolicy/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Serverautoscalepolicy.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestAutoscalelaunchconfig {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestAutoscalelaunchconfig | Remove-AviRestAutoscalelaunchconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Autoscalelaunchconfig')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Autoscalelaunchconfig',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAutoscalelaunchconfig')]$Autoscalelaunchconfig,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Autoscalelaunchconfig') {
            $uuid = $Autoscalelaunchconfig.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/autoscalelaunchconfig/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Autoscalelaunchconfig.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestControllerproperties {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestControllerproperties | Remove-AviRestControllerproperties
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Controllerproperties')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Controllerproperties',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestControllerproperties')]$Controllerproperties,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Controllerproperties') {
            $uuid = $Controllerproperties.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/controllerproperties/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Controllerproperties.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestNetworkservice {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestNetworkservice | Remove-AviRestNetworkservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Networkservice')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Networkservice',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworkservice')]$Networkservice,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Networkservice') {
            $uuid = $Networkservice.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/networkservice/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Networkservice.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestLicensingStatus {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestLicensingStatus | Remove-AviRestLicensingStatus
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'LicensingStatus')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'LicensingStatus',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestLicensingStatus')]$LicensingStatus,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'LicensingStatus') {
            $uuid = $LicensingStatus.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/licensing/status/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($LicensingStatus.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestAlbservicesconfig {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestAlbservicesconfig | Remove-AviRestAlbservicesconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Albservicesconfig')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Albservicesconfig',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlbservicesconfig')]$Albservicesconfig,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Albservicesconfig') {
            $uuid = $Albservicesconfig.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/albservicesconfig/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Albservicesconfig.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestPoolInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestPoolInventory | Remove-AviRestPoolInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'PoolInventory')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'PoolInventory',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolInventory')]$PoolInventory,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'PoolInventory') {
            $uuid = $PoolInventory.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/pool-inventory/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($PoolInventory.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestPoolgroupInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestPoolgroupInventory | Remove-AviRestPoolgroupInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'PoolgroupInventory')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'PoolgroupInventory',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolgroupInventory')]$PoolgroupInventory,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'PoolgroupInventory') {
            $uuid = $PoolgroupInventory.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/poolgroup-inventory/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($PoolgroupInventory.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestVsvipInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestVsvipInventory | Remove-AviRestVsvipInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'VsvipInventory')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'VsvipInventory',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVsvipInventory')]$VsvipInventory,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'VsvipInventory') {
            $uuid = $VsvipInventory.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/vsvip-inventory/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($VsvipInventory.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestVirtualserviceInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestVirtualserviceInventory | Remove-AviRestVirtualserviceInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'VirtualserviceInventory')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'VirtualserviceInventory',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVirtualserviceInventory')]$VirtualserviceInventory,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'VirtualserviceInventory') {
            $uuid = $VirtualserviceInventory.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/virtualservice-inventory/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($VirtualserviceInventory.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestServiceengineInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestServiceengineInventory | Remove-AviRestServiceengineInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'ServiceengineInventory')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'ServiceengineInventory',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengineInventory')]$ServiceengineInventory,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'ServiceengineInventory') {
            $uuid = $ServiceengineInventory.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/serviceengine-inventory/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($ServiceengineInventory.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestServiceenginegroupInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestServiceenginegroupInventory | Remove-AviRestServiceenginegroupInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'ServiceenginegroupInventory')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'ServiceenginegroupInventory',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceenginegroupInventory')]$ServiceenginegroupInventory,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'ServiceenginegroupInventory') {
            $uuid = $ServiceenginegroupInventory.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/serviceenginegroup-inventory/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($ServiceenginegroupInventory.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestUpgradestatussummary {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestUpgradestatussummary | Remove-AviRestUpgradestatussummary
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Upgradestatussummary')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Upgradestatussummary',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUpgradestatussummary')]$Upgradestatussummary,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Upgradestatussummary') {
            $uuid = $Upgradestatussummary.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/upgradestatussummary/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Upgradestatussummary.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestServiceenginegroup {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestServiceenginegroup | Remove-AviRestServiceenginegroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Serviceenginegroup')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Serviceenginegroup',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceenginegroup')]$Serviceenginegroup,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Serviceenginegroup') {
            $uuid = $Serviceenginegroup.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/serviceenginegroup/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Serviceenginegroup.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestNetworkInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestNetworkInventory | Remove-AviRestNetworkInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'NetworkInventory')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'NetworkInventory',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworkInventory')]$NetworkInventory,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'NetworkInventory') {
            $uuid = $NetworkInventory.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/network-inventory/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($NetworkInventory.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestNetworkruntime {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestNetworkruntime | Remove-AviRestNetworkruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Networkruntime')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Networkruntime',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworkruntime')]$Networkruntime,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Networkruntime') {
            $uuid = $Networkruntime.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/networkruntime/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Networkruntime.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestVimgrnwruntime {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestVimgrnwruntime | Remove-AviRestVimgrnwruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Vimgrnwruntime')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Vimgrnwruntime',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrnwruntime')]$Vimgrnwruntime,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Vimgrnwruntime') {
            $uuid = $Vimgrnwruntime.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/vimgrnwruntime/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrnwruntime.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestCloudInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestCloudInventory | Remove-AviRestCloudInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'CloudInventory')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'CloudInventory',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloudInventory')]$CloudInventory,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'CloudInventory') {
            $uuid = $CloudInventory.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/cloud-inventory/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($CloudInventory.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestGslbInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestGslbInventory | Remove-AviRestGslbInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'GslbInventory')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'GslbInventory',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGslbInventory')]$GslbInventory,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'GslbInventory') {
            $uuid = $GslbInventory.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/gslb-inventory/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($GslbInventory.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestGslbserviceInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestGslbserviceInventory | Remove-AviRestGslbserviceInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'GslbserviceInventory')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'GslbserviceInventory',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGslbserviceInventory')]$GslbserviceInventory,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'GslbserviceInventory') {
            $uuid = $GslbserviceInventory.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/gslbservice-inventory/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($GslbserviceInventory.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestWafpolicypsmgroupInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestWafpolicypsmgroupInventory | Remove-AviRestWafpolicypsmgroupInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'WafpolicypsmgroupInventory')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'WafpolicypsmgroupInventory',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafpolicypsmgroupInventory')]$WafpolicypsmgroupInventory,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'WafpolicypsmgroupInventory') {
            $uuid = $WafpolicypsmgroupInventory.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/wafpolicypsmgroup-inventory/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($WafpolicypsmgroupInventory.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestFederationcheckpointInventory {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestFederationcheckpointInventory | Remove-AviRestFederationcheckpointInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'FederationcheckpointInventory')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'FederationcheckpointInventory',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestFederationcheckpointInventory')]$FederationcheckpointInventory,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'FederationcheckpointInventory') {
            $uuid = $FederationcheckpointInventory.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/federationcheckpoint-inventory/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($FederationcheckpointInventory.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestFederationcheckpoint {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestFederationcheckpoint | Remove-AviRestFederationcheckpoint
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Federationcheckpoint')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Federationcheckpoint',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestFederationcheckpoint')]$Federationcheckpoint,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Federationcheckpoint') {
            $uuid = $Federationcheckpoint.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/federationcheckpoint/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Federationcheckpoint.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestIpreputationdb {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestIpreputationdb | Remove-AviRestIpreputationdb
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Ipreputationdb')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Ipreputationdb',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestIpreputationdb')]$Ipreputationdb,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Ipreputationdb') {
            $uuid = $Ipreputationdb.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/ipreputationdb/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Ipreputationdb.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestNetwork {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestNetwork | Remove-AviRestNetwork
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Network')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Network',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetwork')]$Network,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Network') {
            $uuid = $Network.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/network/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Network.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestIpaddrgroup {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestIpaddrgroup | Remove-AviRestIpaddrgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Ipaddrgroup')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Ipaddrgroup',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestIpaddrgroup')]$Ipaddrgroup,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Ipaddrgroup') {
            $uuid = $Ipaddrgroup.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/ipaddrgroup/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Ipaddrgroup.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestStringgroup {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestStringgroup | Remove-AviRestStringgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Stringgroup')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Stringgroup',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestStringgroup')]$Stringgroup,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Stringgroup') {
            $uuid = $Stringgroup.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/stringgroup/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Stringgroup.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestMicroservicegroup {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestMicroservicegroup | Remove-AviRestMicroservicegroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Microservicegroup')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Microservicegroup',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestMicroservicegroup')]$Microservicegroup,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Microservicegroup') {
            $uuid = $Microservicegroup.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/microservicegroup/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Microservicegroup.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestWafcrs {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestWafcrs | Remove-AviRestWafcrs
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Wafcrs')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Wafcrs',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafcrs')]$Wafcrs,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Wafcrs') {
            $uuid = $Wafcrs.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/wafcrs/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Wafcrs.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestSystemconfiguration {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestSystemconfiguration | Remove-AviRestSystemconfiguration
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Systemconfiguration')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Systemconfiguration',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSystemconfiguration')]$Systemconfiguration,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Systemconfiguration') {
            $uuid = $Systemconfiguration.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/systemconfiguration/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Systemconfiguration.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestControllersite {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestControllersite | Remove-AviRestControllersite
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Controllersite')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Controllersite',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestControllersite')]$Controllersite,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Controllersite') {
            $uuid = $Controllersite.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/controllersite/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Controllersite.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestCloudconnectoruser {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestCloudconnectoruser | Remove-AviRestCloudconnectoruser
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Cloudconnectoruser')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Cloudconnectoruser',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloudconnectoruser')]$Cloudconnectoruser,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Cloudconnectoruser') {
            $uuid = $Cloudconnectoruser.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/cloudconnectoruser/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Cloudconnectoruser.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestSeproperties {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestSeproperties | Remove-AviRestSeproperties
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Seproperties')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Seproperties',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSeproperties')]$Seproperties,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Seproperties') {
            $uuid = $Seproperties.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/seproperties/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Seproperties.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestCsrfpolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestCsrfpolicy | Remove-AviRestCsrfpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Csrfpolicy')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Csrfpolicy',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCsrfpolicy')]$Csrfpolicy,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Csrfpolicy') {
            $uuid = $Csrfpolicy.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/csrfpolicy/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Csrfpolicy.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestMemorybalancernotifier {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestMemorybalancernotifier | Remove-AviRestMemorybalancernotifier
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Memorybalancernotifier')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Memorybalancernotifier',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestMemorybalancernotifier')]$Memorybalancernotifier,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Memorybalancernotifier') {
            $uuid = $Memorybalancernotifier.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/memorybalancernotifier/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Memorybalancernotifier.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestVcenterserver {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestVcenterserver | Remove-AviRestVcenterserver
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Vcenterserver')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Vcenterserver',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVcenterserver')]$Vcenterserver,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Vcenterserver') {
            $uuid = $Vcenterserver.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/vcenterserver/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Vcenterserver.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestAvailabilityzone {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestAvailabilityzone | Remove-AviRestAvailabilityzone
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Availabilityzone')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Availabilityzone',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAvailabilityzone')]$Availabilityzone,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Availabilityzone') {
            $uuid = $Availabilityzone.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/availabilityzone/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Availabilityzone.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestNsxtsegmentruntime {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestNsxtsegmentruntime | Remove-AviRestNsxtsegmentruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Nsxtsegmentruntime')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Nsxtsegmentruntime',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNsxtsegmentruntime')]$Nsxtsegmentruntime,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Nsxtsegmentruntime') {
            $uuid = $Nsxtsegmentruntime.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/nsxtsegmentruntime/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Nsxtsegmentruntime.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestStatediffoperation {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestStatediffoperation | Remove-AviRestStatediffoperation
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Statediffoperation')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Statediffoperation',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestStatediffoperation')]$Statediffoperation,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Statediffoperation') {
            $uuid = $Statediffoperation.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/statediffoperation/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Statediffoperation.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestApplicationpersistenceprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestApplicationpersistenceprofile | Remove-AviRestApplicationpersistenceprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Applicationpersistenceprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Applicationpersistenceprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestApplicationpersistenceprofile')]$Applicationpersistenceprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Applicationpersistenceprofile') {
            $uuid = $Applicationpersistenceprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/applicationpersistenceprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Applicationpersistenceprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestScvsstateinfo {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestScvsstateinfo | Remove-AviRestScvsstateinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Scvsstateinfo')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Scvsstateinfo',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestScvsstateinfo')]$Scvsstateinfo,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Scvsstateinfo') {
            $uuid = $Scvsstateinfo.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/scvsstateinfo/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Scvsstateinfo.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestScpoolserverstateinfo {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestScpoolserverstateinfo | Remove-AviRestScpoolserverstateinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Scpoolserverstateinfo')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Scpoolserverstateinfo',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestScpoolserverstateinfo')]$Scpoolserverstateinfo,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Scpoolserverstateinfo') {
            $uuid = $Scpoolserverstateinfo.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/scpoolserverstateinfo/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Scpoolserverstateinfo.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestAlbservicesjob {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestAlbservicesjob | Remove-AviRestAlbservicesjob
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Albservicesjob')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Albservicesjob',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlbservicesjob')]$Albservicesjob,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Albservicesjob') {
            $uuid = $Albservicesjob.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/albservicesjob/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Albservicesjob.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestImage {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestImage | Remove-AviRestImage
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Image')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Image',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestImage')]$Image,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Image') {
            $uuid = $Image.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/image/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Image.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestCloud {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestCloud | Remove-AviRestCloud
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Cloud')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Cloud',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloud')]$Cloud,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Cloud') {
            $uuid = $Cloud.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/cloud/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Cloud.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestCloudruntime {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestCloudruntime | Remove-AviRestCloudruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Cloudruntime')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Cloudruntime',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloudruntime')]$Cloudruntime,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Cloudruntime') {
            $uuid = $Cloudruntime.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/cloudruntime/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Cloudruntime.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestL4policyset {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestL4policyset | Remove-AviRestL4policyset
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'L4policyset')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'L4policyset',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestL4policyset')]$L4policyset,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'L4policyset') {
            $uuid = $L4policyset.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/l4policyset/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($L4policyset.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestHealthmonitor {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestHealthmonitor | Remove-AviRestHealthmonitor
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Healthmonitor')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Healthmonitor',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestHealthmonitor')]$Healthmonitor,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Healthmonitor') {
            $uuid = $Healthmonitor.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/healthmonitor/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Healthmonitor.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestUpgradestatusinfo {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestUpgradestatusinfo | Remove-AviRestUpgradestatusinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Upgradestatusinfo')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Upgradestatusinfo',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUpgradestatusinfo')]$Upgradestatusinfo,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Upgradestatusinfo') {
            $uuid = $Upgradestatusinfo.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/upgradestatusinfo/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Upgradestatusinfo.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestCloudproperties {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestCloudproperties | Remove-AviRestCloudproperties
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Cloudproperties')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Cloudproperties',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloudproperties')]$Cloudproperties,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Cloudproperties') {
            $uuid = $Cloudproperties.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/cloudproperties/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Cloudproperties.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestVsdatascriptset {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestVsdatascriptset | Remove-AviRestVsdatascriptset
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Vsdatascriptset')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Vsdatascriptset',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVsdatascriptset')]$Vsdatascriptset,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Vsdatascriptset') {
            $uuid = $Vsdatascriptset.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/vsdatascriptset/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Vsdatascriptset.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestControllerportalregistration {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestControllerportalregistration | Remove-AviRestControllerportalregistration
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Controllerportalregistration')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Controllerportalregistration',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestControllerportalregistration')]$Controllerportalregistration,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Controllerportalregistration') {
            $uuid = $Controllerportalregistration.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/controllerportalregistration/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Controllerportalregistration.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestUser {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestUser | Remove-AviRestUser
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'User')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'User',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUser')]$User,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'User') {
            $uuid = $User.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/user/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($User.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestNetworkprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestNetworkprofile | Remove-AviRestNetworkprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Networkprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Networkprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworkprofile')]$Networkprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Networkprofile') {
            $uuid = $Networkprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/networkprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Networkprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestDnspolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestDnspolicy | Remove-AviRestDnspolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Dnspolicy')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Dnspolicy',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDnspolicy')]$Dnspolicy,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Dnspolicy') {
            $uuid = $Dnspolicy.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/dnspolicy/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Dnspolicy.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestHardwaresecuritymodulegroup {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestHardwaresecuritymodulegroup | Remove-AviRestHardwaresecuritymodulegroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Hardwaresecuritymodulegroup')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Hardwaresecuritymodulegroup',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestHardwaresecuritymodulegroup')]$Hardwaresecuritymodulegroup,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Hardwaresecuritymodulegroup') {
            $uuid = $Hardwaresecuritymodulegroup.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/hardwaresecuritymodulegroup/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Hardwaresecuritymodulegroup.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestLogcontroller {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestLogcontroller | Remove-AviRestLogcontroller
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Logcontroller')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Logcontroller',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestLogcontroller')]$Logcontroller,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Logcontroller') {
            $uuid = $Logcontroller.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/logcontroller/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Logcontroller.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestProtocolparser {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestProtocolparser | Remove-AviRestProtocolparser
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Protocolparser')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Protocolparser',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestProtocolparser')]$Protocolparser,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Protocolparser') {
            $uuid = $Protocolparser.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/protocolparser/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Protocolparser.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestScheduler {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestScheduler | Remove-AviRestScheduler
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Scheduler')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Scheduler',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestScheduler')]$Scheduler,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Scheduler') {
            $uuid = $Scheduler.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/scheduler/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Scheduler.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestBackupconfiguration {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestBackupconfiguration | Remove-AviRestBackupconfiguration
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Backupconfiguration')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Backupconfiguration',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBackupconfiguration')]$Backupconfiguration,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Backupconfiguration') {
            $uuid = $Backupconfiguration.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/backupconfiguration/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Backupconfiguration.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestVimgrsevmruntime {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestVimgrsevmruntime | Remove-AviRestVimgrsevmruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Vimgrsevmruntime')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Vimgrsevmruntime',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrsevmruntime')]$Vimgrsevmruntime,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Vimgrsevmruntime') {
            $uuid = $Vimgrsevmruntime.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/vimgrsevmruntime/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrsevmruntime.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestVimgrvmruntime {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestVimgrvmruntime | Remove-AviRestVimgrvmruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Vimgrvmruntime')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Vimgrvmruntime',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvmruntime')]$Vimgrvmruntime,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Vimgrvmruntime') {
            $uuid = $Vimgrvmruntime.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/vimgrvmruntime/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrvmruntime.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestVimgrhostruntime {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestVimgrhostruntime | Remove-AviRestVimgrhostruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Vimgrhostruntime')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Vimgrhostruntime',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrhostruntime')]$Vimgrhostruntime,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Vimgrhostruntime') {
            $uuid = $Vimgrhostruntime.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/vimgrhostruntime/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrhostruntime.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestVimgrclusterruntime {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestVimgrclusterruntime | Remove-AviRestVimgrclusterruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Vimgrclusterruntime')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Vimgrclusterruntime',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrclusterruntime')]$Vimgrclusterruntime,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Vimgrclusterruntime') {
            $uuid = $Vimgrclusterruntime.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/vimgrclusterruntime/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrclusterruntime.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestVimgrvcenterdatacenters {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestVimgrvcenterdatacenters | Remove-AviRestVimgrvcenterdatacenters
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Vimgrvcenterdatacenters')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Vimgrvcenterdatacenters',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenterdatacenters')]$Vimgrvcenterdatacenters,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Vimgrvcenterdatacenters') {
            $uuid = $Vimgrvcenterdatacenters.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/vimgrvcenterdatacenters/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrvcenterdatacenters.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestVimgrvcenternetworks {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestVimgrvcenternetworks | Remove-AviRestVimgrvcenternetworks
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Vimgrvcenternetworks')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Vimgrvcenternetworks',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenternetworks')]$Vimgrvcenternetworks,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Vimgrvcenternetworks') {
            $uuid = $Vimgrvcenternetworks.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/vimgrvcenternetworks/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrvcenternetworks.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestServiceengine {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestServiceengine | Remove-AviRestServiceengine
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Serviceengine')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Serviceengine',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengine')]$Serviceengine,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Serviceengine') {
            $uuid = $Serviceengine.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/serviceengine/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Serviceengine.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestWafpolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestWafpolicy | Remove-AviRestWafpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Wafpolicy')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Wafpolicy',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafpolicy')]$Wafpolicy,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Wafpolicy') {
            $uuid = $Wafpolicy.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/wafpolicy/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Wafpolicy.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestWafapplicationsignatureprovider {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestWafapplicationsignatureprovider | Remove-AviRestWafapplicationsignatureprovider
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Wafapplicationsignatureprovider')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Wafapplicationsignatureprovider',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafapplicationsignatureprovider')]$Wafapplicationsignatureprovider,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Wafapplicationsignatureprovider') {
            $uuid = $Wafapplicationsignatureprovider.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/wafapplicationsignatureprovider/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Wafapplicationsignatureprovider.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestSsopolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestSsopolicy | Remove-AviRestSsopolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Ssopolicy')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Ssopolicy',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSsopolicy')]$Ssopolicy,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Ssopolicy') {
            $uuid = $Ssopolicy.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/ssopolicy/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Ssopolicy.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestNatpolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestNatpolicy | Remove-AviRestNatpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Natpolicy')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Natpolicy',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNatpolicy')]$Natpolicy,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Natpolicy') {
            $uuid = $Natpolicy.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/natpolicy/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Natpolicy.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestSiteversion {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestSiteversion | Remove-AviRestSiteversion
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Siteversion')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Siteversion',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSiteversion')]$Siteversion,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Siteversion') {
            $uuid = $Siteversion.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/siteversion/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Siteversion.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestWebhook {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestWebhook | Remove-AviRestWebhook
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Webhook')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Webhook',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWebhook')]$Webhook,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Webhook') {
            $uuid = $Webhook.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/webhook/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Webhook.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestPool {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestPool | Remove-AviRestPool
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Pool')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Pool',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPool')]$Pool,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Pool') {
            $uuid = $Pool.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/pool/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Pool.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestBackup {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestBackup | Remove-AviRestBackup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Backup')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Backup',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBackup')]$Backup,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Backup') {
            $uuid = $Backup.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/backup/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Backup.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestSecuritymanagerdata {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestSecuritymanagerdata | Remove-AviRestSecuritymanagerdata
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Securitymanagerdata')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Securitymanagerdata',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSecuritymanagerdata')]$Securitymanagerdata,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Securitymanagerdata') {
            $uuid = $Securitymanagerdata.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/securitymanagerdata/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Securitymanagerdata.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestVirtualservice {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestVirtualservice | Remove-AviRestVirtualservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Virtualservice')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Virtualservice',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVirtualservice')]$Virtualservice,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Virtualservice') {
            $uuid = $Virtualservice.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/virtualservice/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Virtualservice.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestVsvip {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestVsvip | Remove-AviRestVsvip
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Vsvip')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Vsvip',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVsvip')]$Vsvip,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Vsvip') {
            $uuid = $Vsvip.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/vsvip/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Vsvip.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestIpamdnsproviderprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestIpamdnsproviderprofile | Remove-AviRestIpamdnsproviderprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Ipamdnsproviderprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Ipamdnsproviderprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestIpamdnsproviderprofile')]$Ipamdnsproviderprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Ipamdnsproviderprofile') {
            $uuid = $Ipamdnsproviderprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/ipamdnsproviderprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Ipamdnsproviderprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestWafprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestWafprofile | Remove-AviRestWafprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Wafprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Wafprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafprofile')]$Wafprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Wafprofile') {
            $uuid = $Wafprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/wafprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Wafprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestLicensingLedgerDetails {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestLicensingLedgerDetails | Remove-AviRestLicensingLedgerDetails
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'LicensingLedgerDetails')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'LicensingLedgerDetails',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestLicensingLedgerDetails')]$LicensingLedgerDetails,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'LicensingLedgerDetails') {
            $uuid = $LicensingLedgerDetails.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/licensing/ledger/details/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($LicensingLedgerDetails.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestPingaccessagent {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestPingaccessagent | Remove-AviRestPingaccessagent
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Pingaccessagent')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Pingaccessagent',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPingaccessagent')]$Pingaccessagent,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Pingaccessagent') {
            $uuid = $Pingaccessagent.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/pingaccessagent/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Pingaccessagent.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestApplication {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestApplication | Remove-AviRestApplication
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Application')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Application',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestApplication')]$Application,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Application') {
            $uuid = $Application.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/application/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Application.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestDebugserviceengine {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestDebugserviceengine | Remove-AviRestDebugserviceengine
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Debugserviceengine')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Debugserviceengine',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDebugserviceengine')]$Debugserviceengine,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Debugserviceengine') {
            $uuid = $Debugserviceengine.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/debugserviceengine/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Debugserviceengine.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestDebugvirtualservice {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestDebugvirtualservice | Remove-AviRestDebugvirtualservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Debugvirtualservice')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Debugvirtualservice',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDebugvirtualservice')]$Debugvirtualservice,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Debugvirtualservice') {
            $uuid = $Debugvirtualservice.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/debugvirtualservice/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Debugvirtualservice.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestPoolgroupdeploymentpolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestPoolgroupdeploymentpolicy | Remove-AviRestPoolgroupdeploymentpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Poolgroupdeploymentpolicy')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Poolgroupdeploymentpolicy',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolgroupdeploymentpolicy')]$Poolgroupdeploymentpolicy,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Poolgroupdeploymentpolicy') {
            $uuid = $Poolgroupdeploymentpolicy.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/poolgroupdeploymentpolicy/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Poolgroupdeploymentpolicy.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestHttppolicyset {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestHttppolicyset | Remove-AviRestHttppolicyset
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Httppolicyset')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Httppolicyset',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestHttppolicyset')]$Httppolicyset,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Httppolicyset') {
            $uuid = $Httppolicyset.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/httppolicyset/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Httppolicyset.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestSecuritypolicy {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestSecuritypolicy | Remove-AviRestSecuritypolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Securitypolicy')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Securitypolicy',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSecuritypolicy')]$Securitypolicy,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Securitypolicy') {
            $uuid = $Securitypolicy.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/securitypolicy/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Securitypolicy.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestSnmptrapprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestSnmptrapprofile | Remove-AviRestSnmptrapprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Snmptrapprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Snmptrapprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSnmptrapprofile')]$Snmptrapprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Snmptrapprofile') {
            $uuid = $Snmptrapprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/snmptrapprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Snmptrapprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestSystemlimits {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestSystemlimits | Remove-AviRestSystemlimits
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Systemlimits')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Systemlimits',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSystemlimits')]$Systemlimits,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Systemlimits') {
            $uuid = $Systemlimits.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/systemlimits/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Systemlimits.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestPrioritylabels {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestPrioritylabels | Remove-AviRestPrioritylabels
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Prioritylabels')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Prioritylabels',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPrioritylabels')]$Prioritylabels,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Prioritylabels') {
            $uuid = $Prioritylabels.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/prioritylabels/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Prioritylabels.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestGslb {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestGslb | Remove-AviRestGslb
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Gslb')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Gslb',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGslb')]$Gslb,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Gslb') {
            $uuid = $Gslb.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/gslb/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Gslb.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestGslbservice {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestGslbservice | Remove-AviRestGslbservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Gslbservice')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Gslbservice',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGslbservice')]$Gslbservice,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Gslbservice') {
            $uuid = $Gslbservice.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/gslbservice/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Gslbservice.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestGslbgeodbprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestGslbgeodbprofile | Remove-AviRestGslbgeodbprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Gslbgeodbprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Gslbgeodbprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGslbgeodbprofile')]$Gslbgeodbprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Gslbgeodbprofile') {
            $uuid = $Gslbgeodbprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/gslbgeodbprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Gslbgeodbprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestDebugcontroller {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestDebugcontroller | Remove-AviRestDebugcontroller
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Debugcontroller')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Debugcontroller',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDebugcontroller')]$Debugcontroller,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Debugcontroller') {
            $uuid = $Debugcontroller.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/debugcontroller/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Debugcontroller.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestErrorpageprofile {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestErrorpageprofile | Remove-AviRestErrorpageprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Errorpageprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Errorpageprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestErrorpageprofile')]$Errorpageprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Errorpageprofile') {
            $uuid = $Errorpageprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/errorpageprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Errorpageprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestErrorpagebody {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestErrorpagebody | Remove-AviRestErrorpagebody
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Errorpagebody')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Errorpagebody',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestErrorpagebody')]$Errorpagebody,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Errorpagebody') {
            $uuid = $Errorpagebody.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/errorpagebody/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Errorpagebody.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestAlertsyslogconfig {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestAlertsyslogconfig | Remove-AviRestAlertsyslogconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Alertsyslogconfig')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Alertsyslogconfig',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertsyslogconfig')]$Alertsyslogconfig,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Alertsyslogconfig') {
            $uuid = $Alertsyslogconfig.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/alertsyslogconfig/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Alertsyslogconfig.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestAlertemailconfig {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestAlertemailconfig | Remove-AviRestAlertemailconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Alertemailconfig')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Alertemailconfig',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertemailconfig')]$Alertemailconfig,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Alertemailconfig') {
            $uuid = $Alertemailconfig.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/alertemailconfig/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Alertemailconfig.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestAlertscriptconfig {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestAlertscriptconfig | Remove-AviRestAlertscriptconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Alertscriptconfig')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Alertscriptconfig',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertscriptconfig')]$Alertscriptconfig,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Alertscriptconfig') {
            $uuid = $Alertscriptconfig.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/alertscriptconfig/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Alertscriptconfig.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestAlertconfig {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestAlertconfig | Remove-AviRestAlertconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Alertconfig')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Alertconfig',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertconfig')]$Alertconfig,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Alertconfig') {
            $uuid = $Alertconfig.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/alertconfig/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Alertconfig.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestActiongroupconfig {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestActiongroupconfig | Remove-AviRestActiongroupconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Actiongroupconfig')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Actiongroupconfig',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestActiongroupconfig')]$Actiongroupconfig,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Actiongroupconfig') {
            $uuid = $Actiongroupconfig.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/actiongroupconfig/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Actiongroupconfig.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestAlertobjectlist {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestAlertobjectlist | Remove-AviRestAlertobjectlist
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Alertobjectlist')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Alertobjectlist',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlertobjectlist')]$Alertobjectlist,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Alertobjectlist') {
            $uuid = $Alertobjectlist.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/alertobjectlist/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Alertobjectlist.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestAlert {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestAlert | Remove-AviRestAlert
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Alert')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Alert',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAlert')]$Alert,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Alert') {
            $uuid = $Alert.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/alert/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Alert.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestInventoryfaultconfig {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestInventoryfaultconfig | Remove-AviRestInventoryfaultconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Inventoryfaultconfig')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Inventoryfaultconfig',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestInventoryfaultconfig')]$Inventoryfaultconfig,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Inventoryfaultconfig') {
            $uuid = $Inventoryfaultconfig.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/inventoryfaultconfig/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Inventoryfaultconfig.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestTenantsystemconfiguration {
<#
    .SYNOPSIS
        Configure Avi avi_global_spec Object API
 
    .EXAMPLE
        Get-AviRestTenantsystemconfiguration | Remove-AviRestTenantsystemconfiguration
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Tenantsystemconfiguration')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Tenantsystemconfiguration',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTenantsystemconfiguration')]$Tenantsystemconfiguration,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Tenantsystemconfiguration') {
            $uuid = $Tenantsystemconfiguration.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/tenantsystemconfiguration/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Tenantsystemconfiguration.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestBackup {
<#
    .SYNOPSIS
        Configure Avi Backup Object API
 
    .EXAMPLE
        Get-AviRestBackup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'b',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/backup$Uuid" : '/api/backup'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestBackup
    }
}
Function Set-AVIRestBackup {
<#
    .SYNOPSIS
        Configure Avi Backup Object API
 
    .EXAMPLE
        $object = Get-AviRestBackup
        $object.name = 'New name'
        Set-AviRestBackup $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBackup')]$Backup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Backup.uuid
        $global:body = ConvertTo-JSON $Backup -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/backup/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Backup.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestBackup
        }
    }
}
Function New-AVIRestBackup {
<#
    .SYNOPSIS
        Configure Avi Backup Object API
 
    .EXAMPLE
        New-AviRestBackup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBackup')]$Backup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/backup"
            Body = ConvertTo-JSON $Backup -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Backup.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestBackup
        }
    }
}
Function New-AVIRestBackupObject {
<#
    .SYNOPSIS
        Configure Avi Backup Object API
 
    .EXAMPLE
        New-AviRestBackup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestBackup')
        $result
    }
}
Function Remove-AVIRestBackup {
<#
    .SYNOPSIS
        Configure Avi Backup Object API
 
    .EXAMPLE
        Get-AviRestBackup | Remove-AviRestBackup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Backup')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Backup',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBackup')]$Backup,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Backup') {
            $uuid = $Backup.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/backup/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Backup.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestBackupconfiguration {
<#
    .SYNOPSIS
        Configure Avi BackupConfiguration Object API
 
    .EXAMPLE
        Get-AviRestBackupconfiguration
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'b',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/backupconfiguration$Uuid" : '/api/backupconfiguration'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestBackupconfiguration
    }
}
Function Set-AVIRestBackupconfiguration {
<#
    .SYNOPSIS
        Configure Avi BackupConfiguration Object API
 
    .EXAMPLE
        $object = Get-AviRestBackupconfiguration
        $object.name = 'New name'
        Set-AviRestBackupconfiguration $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBackupconfiguration')]$Backupconfiguration
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Backupconfiguration.uuid
        $global:body = ConvertTo-JSON $Backupconfiguration -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/backupconfiguration/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Backupconfiguration.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestBackupconfiguration
        }
    }
}
Function New-AVIRestBackupconfiguration {
<#
    .SYNOPSIS
        Configure Avi BackupConfiguration Object API
 
    .EXAMPLE
        New-AviRestBackupconfiguration
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBackupconfiguration')]$Backupconfiguration
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/backupconfiguration"
            Body = ConvertTo-JSON $Backupconfiguration -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Backupconfiguration.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestBackupconfiguration
        }
    }
}
Function New-AVIRestBackupconfigurationObject {
<#
    .SYNOPSIS
        Configure Avi BackupConfiguration Object API
 
    .EXAMPLE
        New-AviRestBackupconfiguration
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestBackupconfiguration')
        $result
    }
}
Function Remove-AVIRestBackupconfiguration {
<#
    .SYNOPSIS
        Configure Avi BackupConfiguration Object API
 
    .EXAMPLE
        Get-AviRestBackupconfiguration | Remove-AviRestBackupconfiguration
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Backupconfiguration')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Backupconfiguration',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBackupconfiguration')]$Backupconfiguration,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Backupconfiguration') {
            $uuid = $Backupconfiguration.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/backupconfiguration/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Backupconfiguration.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestBotconfigconsolidator {
<#
    .SYNOPSIS
        Configure Avi BotConfigConsolidator Object API
 
    .EXAMPLE
        Get-AviRestBotconfigconsolidator
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'b',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/botconfigconsolidator$Uuid" : '/api/botconfigconsolidator'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestBotconfigconsolidator
    }
}
Function Set-AVIRestBotconfigconsolidator {
<#
    .SYNOPSIS
        Configure Avi BotConfigConsolidator Object API
 
    .EXAMPLE
        $object = Get-AviRestBotconfigconsolidator
        $object.name = 'New name'
        Set-AviRestBotconfigconsolidator $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBotconfigconsolidator')]$Botconfigconsolidator
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Botconfigconsolidator.uuid
        $global:body = ConvertTo-JSON $Botconfigconsolidator -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/botconfigconsolidator/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Botconfigconsolidator.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestBotconfigconsolidator
        }
    }
}
Function New-AVIRestBotconfigconsolidator {
<#
    .SYNOPSIS
        Configure Avi BotConfigConsolidator Object API
 
    .EXAMPLE
        New-AviRestBotconfigconsolidator
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBotconfigconsolidator')]$Botconfigconsolidator
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/botconfigconsolidator"
            Body = ConvertTo-JSON $Botconfigconsolidator -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Botconfigconsolidator.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestBotconfigconsolidator
        }
    }
}
Function New-AVIRestBotconfigconsolidatorObject {
<#
    .SYNOPSIS
        Configure Avi BotConfigConsolidator Object API
 
    .EXAMPLE
        New-AviRestBotconfigconsolidator
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestBotconfigconsolidator')
        $result
    }
}
Function Remove-AVIRestBotconfigconsolidator {
<#
    .SYNOPSIS
        Configure Avi BotConfigConsolidator Object API
 
    .EXAMPLE
        Get-AviRestBotconfigconsolidator | Remove-AviRestBotconfigconsolidator
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Botconfigconsolidator')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Botconfigconsolidator',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBotconfigconsolidator')]$Botconfigconsolidator,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Botconfigconsolidator') {
            $uuid = $Botconfigconsolidator.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/botconfigconsolidator/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Botconfigconsolidator.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestBotdetectionpolicy {
<#
    .SYNOPSIS
        Configure Avi BotDetectionPolicy Object API
 
    .EXAMPLE
        Get-AviRestBotdetectionpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'b',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/botdetectionpolicy$Uuid" : '/api/botdetectionpolicy'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestBotdetectionpolicy
    }
}
Function Set-AVIRestBotdetectionpolicy {
<#
    .SYNOPSIS
        Configure Avi BotDetectionPolicy Object API
 
    .EXAMPLE
        $object = Get-AviRestBotdetectionpolicy
        $object.name = 'New name'
        Set-AviRestBotdetectionpolicy $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBotdetectionpolicy')]$Botdetectionpolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Botdetectionpolicy.uuid
        $global:body = ConvertTo-JSON $Botdetectionpolicy -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/botdetectionpolicy/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Botdetectionpolicy.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestBotdetectionpolicy
        }
    }
}
Function New-AVIRestBotdetectionpolicy {
<#
    .SYNOPSIS
        Configure Avi BotDetectionPolicy Object API
 
    .EXAMPLE
        New-AviRestBotdetectionpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBotdetectionpolicy')]$Botdetectionpolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/botdetectionpolicy"
            Body = ConvertTo-JSON $Botdetectionpolicy -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Botdetectionpolicy.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestBotdetectionpolicy
        }
    }
}
Function New-AVIRestBotdetectionpolicyObject {
<#
    .SYNOPSIS
        Configure Avi BotDetectionPolicy Object API
 
    .EXAMPLE
        New-AviRestBotdetectionpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestBotdetectionpolicy')
        $result
    }
}
Function Remove-AVIRestBotdetectionpolicy {
<#
    .SYNOPSIS
        Configure Avi BotDetectionPolicy Object API
 
    .EXAMPLE
        Get-AviRestBotdetectionpolicy | Remove-AviRestBotdetectionpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Botdetectionpolicy')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Botdetectionpolicy',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBotdetectionpolicy')]$Botdetectionpolicy,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Botdetectionpolicy') {
            $uuid = $Botdetectionpolicy.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/botdetectionpolicy/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Botdetectionpolicy.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestBotipreputationtypemapping {
<#
    .SYNOPSIS
        Configure Avi BotIPReputationTypeMapping Object API
 
    .EXAMPLE
        Get-AviRestBotipreputationtypemapping
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'b',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/botipreputationtypemapping$Uuid" : '/api/botipreputationtypemapping'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestBotipreputationtypemapping
    }
}
Function Set-AVIRestBotipreputationtypemapping {
<#
    .SYNOPSIS
        Configure Avi BotIPReputationTypeMapping Object API
 
    .EXAMPLE
        $object = Get-AviRestBotipreputationtypemapping
        $object.name = 'New name'
        Set-AviRestBotipreputationtypemapping $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBotipreputationtypemapping')]$Botipreputationtypemapping
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Botipreputationtypemapping.uuid
        $global:body = ConvertTo-JSON $Botipreputationtypemapping -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/botipreputationtypemapping/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Botipreputationtypemapping.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestBotipreputationtypemapping
        }
    }
}
Function New-AVIRestBotipreputationtypemapping {
<#
    .SYNOPSIS
        Configure Avi BotIPReputationTypeMapping Object API
 
    .EXAMPLE
        New-AviRestBotipreputationtypemapping
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBotipreputationtypemapping')]$Botipreputationtypemapping
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/botipreputationtypemapping"
            Body = ConvertTo-JSON $Botipreputationtypemapping -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Botipreputationtypemapping.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestBotipreputationtypemapping
        }
    }
}
Function New-AVIRestBotipreputationtypemappingObject {
<#
    .SYNOPSIS
        Configure Avi BotIPReputationTypeMapping Object API
 
    .EXAMPLE
        New-AviRestBotipreputationtypemapping
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestBotipreputationtypemapping')
        $result
    }
}
Function Remove-AVIRestBotipreputationtypemapping {
<#
    .SYNOPSIS
        Configure Avi BotIPReputationTypeMapping Object API
 
    .EXAMPLE
        Get-AviRestBotipreputationtypemapping | Remove-AviRestBotipreputationtypemapping
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Botipreputationtypemapping')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Botipreputationtypemapping',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBotipreputationtypemapping')]$Botipreputationtypemapping,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Botipreputationtypemapping') {
            $uuid = $Botipreputationtypemapping.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/botipreputationtypemapping/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Botipreputationtypemapping.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestBotmapping {
<#
    .SYNOPSIS
        Configure Avi BotMapping Object API
 
    .EXAMPLE
        Get-AviRestBotmapping
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'b',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/botmapping$Uuid" : '/api/botmapping'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestBotmapping
    }
}
Function Set-AVIRestBotmapping {
<#
    .SYNOPSIS
        Configure Avi BotMapping Object API
 
    .EXAMPLE
        $object = Get-AviRestBotmapping
        $object.name = 'New name'
        Set-AviRestBotmapping $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBotmapping')]$Botmapping
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Botmapping.uuid
        $global:body = ConvertTo-JSON $Botmapping -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/botmapping/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Botmapping.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestBotmapping
        }
    }
}
Function New-AVIRestBotmapping {
<#
    .SYNOPSIS
        Configure Avi BotMapping Object API
 
    .EXAMPLE
        New-AviRestBotmapping
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBotmapping')]$Botmapping
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/botmapping"
            Body = ConvertTo-JSON $Botmapping -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Botmapping.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestBotmapping
        }
    }
}
Function New-AVIRestBotmappingObject {
<#
    .SYNOPSIS
        Configure Avi BotMapping Object API
 
    .EXAMPLE
        New-AviRestBotmapping
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestBotmapping')
        $result
    }
}
Function Remove-AVIRestBotmapping {
<#
    .SYNOPSIS
        Configure Avi BotMapping Object API
 
    .EXAMPLE
        Get-AviRestBotmapping | Remove-AviRestBotmapping
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Botmapping')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Botmapping',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestBotmapping')]$Botmapping,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Botmapping') {
            $uuid = $Botmapping.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/botmapping/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Botmapping.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestCertificatemanagementprofile {
<#
    .SYNOPSIS
        Configure Avi CertificateManagementProfile Object API
 
    .EXAMPLE
        Get-AviRestCertificatemanagementprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'c',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/certificatemanagementprofile$Uuid" : '/api/certificatemanagementprofile'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestCertificatemanagementprofile
    }
}
Function Set-AVIRestCertificatemanagementprofile {
<#
    .SYNOPSIS
        Configure Avi CertificateManagementProfile Object API
 
    .EXAMPLE
        $object = Get-AviRestCertificatemanagementprofile
        $object.name = 'New name'
        Set-AviRestCertificatemanagementprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCertificatemanagementprofile')]$Certificatemanagementprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Certificatemanagementprofile.uuid
        $global:body = ConvertTo-JSON $Certificatemanagementprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/certificatemanagementprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Certificatemanagementprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestCertificatemanagementprofile
        }
    }
}
Function New-AVIRestCertificatemanagementprofile {
<#
    .SYNOPSIS
        Configure Avi CertificateManagementProfile Object API
 
    .EXAMPLE
        New-AviRestCertificatemanagementprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCertificatemanagementprofile')]$Certificatemanagementprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/certificatemanagementprofile"
            Body = ConvertTo-JSON $Certificatemanagementprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Certificatemanagementprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestCertificatemanagementprofile
        }
    }
}
Function New-AVIRestCertificatemanagementprofileObject {
<#
    .SYNOPSIS
        Configure Avi CertificateManagementProfile Object API
 
    .EXAMPLE
        New-AviRestCertificatemanagementprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestCertificatemanagementprofile')
        $result
    }
}
Function Remove-AVIRestCertificatemanagementprofile {
<#
    .SYNOPSIS
        Configure Avi CertificateManagementProfile Object API
 
    .EXAMPLE
        Get-AviRestCertificatemanagementprofile | Remove-AviRestCertificatemanagementprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Certificatemanagementprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Certificatemanagementprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCertificatemanagementprofile')]$Certificatemanagementprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Certificatemanagementprofile') {
            $uuid = $Certificatemanagementprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/certificatemanagementprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Certificatemanagementprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestCloud {
<#
    .SYNOPSIS
        Configure Avi Cloud Object API
 
    .EXAMPLE
        Get-AviRestCloud
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'internals,status,health,hosts,autoscalegroup,autoscalegroupservers,placement/summary,placement/ineligible',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/cloud$Uuid" : '/api/cloud'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestCloud
    }
}
Function Set-AVIRestCloud {
<#
    .SYNOPSIS
        Configure Avi Cloud Object API
 
    .EXAMPLE
        $object = Get-AviRestCloud
        $object.name = 'New name'
        Set-AviRestCloud $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloud')]$Cloud
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Cloud.uuid
        $global:body = ConvertTo-JSON $Cloud -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/cloud/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Cloud.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestCloud
        }
    }
}
Function Set-AVIRestCloudGc {
<#
    .SYNOPSIS
        Configure Avi Cloud Object API
 
    .EXAMPLE
        $object = Get-AviRestCloudGc
        $object.name = 'New name'
        Set-AviRestCloudGc $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloudGc')]$CloudGc
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $CloudGc.uuid
        $global:body = ConvertTo-JSON $CloudGc -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/cloud/${uuid}/gc/"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($CloudGc.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestCloudGc
        }
    }
}
Function New-AVIRestCloud {
<#
    .SYNOPSIS
        Configure Avi Cloud Object API
 
    .EXAMPLE
        New-AviRestCloud
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloud')]$Cloud
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/cloud"
            Body = ConvertTo-JSON $Cloud -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Cloud.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestCloud
        }
    }
}
Function New-AVIRestCloudList {
<#
    .SYNOPSIS
        Configure Avi Cloud Object API
 
    .EXAMPLE
        New-AviRestCloudList
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloudList')]$CloudList
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/cloud/list"
            Body = ConvertTo-JSON $CloudList -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($CloudList.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestCloudList
        }
    }
}
Function New-AVIRestCloudObject {
<#
    .SYNOPSIS
        Configure Avi Cloud Object API
 
    .EXAMPLE
        New-AviRestCloud
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestCloud')
        $result
    }
}
Function Remove-AVIRestCloud {
<#
    .SYNOPSIS
        Configure Avi Cloud Object API
 
    .EXAMPLE
        Get-AviRestCloud | Remove-AviRestCloud
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Cloud')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Cloud',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloud')]$Cloud,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Cloud') {
            $uuid = $Cloud.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/cloud/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Cloud.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestCloudconnectoruser {
<#
    .SYNOPSIS
        Configure Avi CloudConnectorUser Object API
 
    .EXAMPLE
        Get-AviRestCloudconnectoruser
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'c',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/cloudconnectoruser$Uuid" : '/api/cloudconnectoruser'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestCloudconnectoruser
    }
}
Function Set-AVIRestCloudconnectoruser {
<#
    .SYNOPSIS
        Configure Avi CloudConnectorUser Object API
 
    .EXAMPLE
        $object = Get-AviRestCloudconnectoruser
        $object.name = 'New name'
        Set-AviRestCloudconnectoruser $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloudconnectoruser')]$Cloudconnectoruser
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Cloudconnectoruser.uuid
        $global:body = ConvertTo-JSON $Cloudconnectoruser -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/cloudconnectoruser/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Cloudconnectoruser.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestCloudconnectoruser
        }
    }
}
Function New-AVIRestCloudconnectoruser {
<#
    .SYNOPSIS
        Configure Avi CloudConnectorUser Object API
 
    .EXAMPLE
        New-AviRestCloudconnectoruser
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloudconnectoruser')]$Cloudconnectoruser
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/cloudconnectoruser"
            Body = ConvertTo-JSON $Cloudconnectoruser -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Cloudconnectoruser.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestCloudconnectoruser
        }
    }
}
Function New-AVIRestCloudconnectoruserObject {
<#
    .SYNOPSIS
        Configure Avi CloudConnectorUser Object API
 
    .EXAMPLE
        New-AviRestCloudconnectoruser
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestCloudconnectoruser')
        $result
    }
}
Function Invoke-AVIRestCloudconnectoruserTest {
<#
    .SYNOPSIS
        Configure Avi CloudConnectorUser Object API
 
    .EXAMPLE
        Invoke-AviRestCloudconnectoruserTest
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloudconnectoruserTest')]$CloudconnectoruserTest
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $CloudconnectoruserTest.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/cloudconnectoruser/${uuid}/test"
            Body = ConvertTo-JSON $CloudconnectoruserTest -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($CloudconnectoruserTest.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestCloudconnectoruserTest
        }
    }
}
Function New-AVIRestCloudconnectoruserTestObject {
<#
    .SYNOPSIS
        Configure Avi CloudConnectorUser Object API
 
    .EXAMPLE
        New-AviRestCloudconnectoruserTest
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{
  "host": ""
}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestCloudconnectoruserTest')
        $result
    }
}
Function Remove-AVIRestCloudconnectoruser {
<#
    .SYNOPSIS
        Configure Avi CloudConnectorUser Object API
 
    .EXAMPLE
        Get-AviRestCloudconnectoruser | Remove-AviRestCloudconnectoruser
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Cloudconnectoruser')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Cloudconnectoruser',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloudconnectoruser')]$Cloudconnectoruser,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Cloudconnectoruser') {
            $uuid = $Cloudconnectoruser.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/cloudconnectoruser/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Cloudconnectoruser.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestCloudInventory {
<#
    .SYNOPSIS
        Configure Avi CloudInventory Object API
 
    .EXAMPLE
        Get-AviRestCloudInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'c',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/cloud-inventory$Uuid" : '/api/cloud-inventory'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestCloudInventory
    }
}
Function Set-AVIRestCloudInventory {
<#
    .SYNOPSIS
        Configure Avi CloudInventory Object API
 
    .EXAMPLE
        $object = Get-AviRestCloudInventory
        $object.name = 'New name'
        Set-AviRestCloudInventory $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloudInventory')]$CloudInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $CloudInventory.uuid
        $global:body = ConvertTo-JSON $CloudInventory -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/cloud-inventory/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($CloudInventory.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestCloudInventory
        }
    }
}
Function New-AVIRestCloudInventory {
<#
    .SYNOPSIS
        Configure Avi CloudInventory Object API
 
    .EXAMPLE
        New-AviRestCloudInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloudInventory')]$CloudInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/cloud-inventory"
            Body = ConvertTo-JSON $CloudInventory -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($CloudInventory.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestCloudInventory
        }
    }
}
Function New-AVIRestCloudInventoryObject {
<#
    .SYNOPSIS
        Configure Avi CloudInventory Object API
 
    .EXAMPLE
        New-AviRestCloudInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestCloudInventory')
        $result
    }
}
Function Remove-AVIRestCloudInventory {
<#
    .SYNOPSIS
        Configure Avi CloudInventory Object API
 
    .EXAMPLE
        Get-AviRestCloudInventory | Remove-AviRestCloudInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'CloudInventory')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'CloudInventory',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloudInventory')]$CloudInventory,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'CloudInventory') {
            $uuid = $CloudInventory.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/cloud-inventory/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($CloudInventory.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestCloudproperties {
<#
    .SYNOPSIS
        Configure Avi CloudProperties Object API
 
    .EXAMPLE
        Get-AviRestCloudproperties
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = '/controllerproperties/{uuid}',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/cloudproperties$Uuid" : '/api/cloudproperties'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestCloudproperties
    }
}
Function Set-AVIRestCloudproperties {
<#
    .SYNOPSIS
        Configure Avi CloudProperties Object API
 
    .EXAMPLE
        $object = Get-AviRestCloudproperties
        $object.name = 'New name'
        Set-AviRestCloudproperties $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloudproperties')]$Cloudproperties
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Cloudproperties.uuid
        $global:body = ConvertTo-JSON $Cloudproperties -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/cloudproperties/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Cloudproperties.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestCloudproperties
        }
    }
}
Function Set-AVIRestControllerproperties {
<#
    .SYNOPSIS
        Configure Avi CloudProperties Object API
 
    .EXAMPLE
        $object = Get-AviRestControllerproperties
        $object.name = 'New name'
        Set-AviRestControllerproperties $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestControllerproperties')]$Controllerproperties
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Controllerproperties.uuid
        $global:body = ConvertTo-JSON $Controllerproperties -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/controllerproperties/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Controllerproperties.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestControllerproperties
        }
    }
}
Function New-AVIRestCloudproperties {
<#
    .SYNOPSIS
        Configure Avi CloudProperties Object API
 
    .EXAMPLE
        New-AviRestCloudproperties
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloudproperties')]$Cloudproperties
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/cloudproperties"
            Body = ConvertTo-JSON $Cloudproperties -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Cloudproperties.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestCloudproperties
        }
    }
}
Function New-AVIRestControllerproperties {
<#
    .SYNOPSIS
        Configure Avi CloudProperties Object API
 
    .EXAMPLE
        New-AviRestControllerproperties
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestControllerproperties')]$Controllerproperties
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/controllerproperties"
            Body = ConvertTo-JSON $Controllerproperties -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Controllerproperties.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestControllerproperties
        }
    }
}
Function New-AVIRestCloudpropertiesObject {
<#
    .SYNOPSIS
        Configure Avi CloudProperties Object API
 
    .EXAMPLE
        New-AviRestCloudproperties
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestCloudproperties')
        $result
    }
}
Function New-AVIRestControllerpropertiesObject {
<#
    .SYNOPSIS
        Configure Avi CloudProperties Object API
 
    .EXAMPLE
        New-AviRestControllerproperties
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestControllerproperties')
        $result
    }
}
Function Remove-AVIRestCloudproperties {
<#
    .SYNOPSIS
        Configure Avi CloudProperties Object API
 
    .EXAMPLE
        Get-AviRestCloudproperties | Remove-AviRestCloudproperties
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Cloudproperties')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Cloudproperties',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloudproperties')]$Cloudproperties,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Cloudproperties') {
            $uuid = $Cloudproperties.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/cloudproperties/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Cloudproperties.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestControllerproperties {
<#
    .SYNOPSIS
        Configure Avi CloudProperties Object API
 
    .EXAMPLE
        Get-AviRestControllerproperties | Remove-AviRestControllerproperties
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Controllerproperties')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Controllerproperties',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestControllerproperties')]$Controllerproperties,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Controllerproperties') {
            $uuid = $Controllerproperties.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/controllerproperties/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Controllerproperties.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestCloudruntime {
<#
    .SYNOPSIS
        Configure Avi CloudRuntime Object API
 
    .EXAMPLE
        Get-AviRestCloudruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'c',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/cloudruntime$Uuid" : '/api/cloudruntime'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestCloudruntime
    }
}
Function Set-AVIRestCloudruntime {
<#
    .SYNOPSIS
        Configure Avi CloudRuntime Object API
 
    .EXAMPLE
        $object = Get-AviRestCloudruntime
        $object.name = 'New name'
        Set-AviRestCloudruntime $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloudruntime')]$Cloudruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Cloudruntime.uuid
        $global:body = ConvertTo-JSON $Cloudruntime -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/cloudruntime/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Cloudruntime.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestCloudruntime
        }
    }
}
Function New-AVIRestCloudruntime {
<#
    .SYNOPSIS
        Configure Avi CloudRuntime Object API
 
    .EXAMPLE
        New-AviRestCloudruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloudruntime')]$Cloudruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/cloudruntime"
            Body = ConvertTo-JSON $Cloudruntime -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Cloudruntime.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestCloudruntime
        }
    }
}
Function New-AVIRestCloudruntimeObject {
<#
    .SYNOPSIS
        Configure Avi CloudRuntime Object API
 
    .EXAMPLE
        New-AviRestCloudruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestCloudruntime')
        $result
    }
}
Function Remove-AVIRestCloudruntime {
<#
    .SYNOPSIS
        Configure Avi CloudRuntime Object API
 
    .EXAMPLE
        Get-AviRestCloudruntime | Remove-AviRestCloudruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Cloudruntime')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Cloudruntime',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCloudruntime')]$Cloudruntime,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Cloudruntime') {
            $uuid = $Cloudruntime.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/cloudruntime/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Cloudruntime.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestCluster {
<#
    .SYNOPSIS
        Configure Avi Cluster Object API
 
    .EXAMPLE
        Get-AviRestCluster
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'c',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '20.1.2'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/cluster$Uuid" : '/api/cluster'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestCluster
    }
}
Function Set-AVIRestCluster {
<#
    .SYNOPSIS
        Configure Avi Cluster Object API
 
    .EXAMPLE
        $object = Get-AviRestCluster
        $object.name = 'New name'
        Set-AviRestCluster $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCluster')]$Cluster
    )
    Begin {
        $swaggerVersion = '20.1.2'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Cluster.uuid
        $global:body = ConvertTo-JSON $Cluster -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/cluster/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Cluster.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestCluster
        }
    }
}
Function New-AVIRestCluster {
<#
    .SYNOPSIS
        Configure Avi Cluster Object API
 
    .EXAMPLE
        New-AviRestCluster
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCluster')]$Cluster
    )
    Begin {
        $swaggerVersion = '20.1.2'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/cluster"
            Body = ConvertTo-JSON $Cluster -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Cluster.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestCluster
        }
    }
}
Function New-AVIRestClusterObject {
<#
    .SYNOPSIS
        Configure Avi Cluster Object API
 
    .EXAMPLE
        New-AviRestCluster
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '20.1.2'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestCluster')
        $result
    }
}
Function Remove-AVIRestCluster {
<#
    .SYNOPSIS
        Configure Avi Cluster Object API
 
    .EXAMPLE
        Get-AviRestCluster | Remove-AviRestCluster
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Cluster')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Cluster',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCluster')]$Cluster,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '20.1.2'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Cluster') {
            $uuid = $Cluster.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/cluster/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Cluster.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestClusterclouddetails {
<#
    .SYNOPSIS
        Configure Avi ClusterCloudDetails Object API
 
    .EXAMPLE
        Get-AviRestClusterclouddetails
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'c',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/clusterclouddetails$Uuid" : '/api/clusterclouddetails'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestClusterclouddetails
    }
}
Function Set-AVIRestClusterclouddetails {
<#
    .SYNOPSIS
        Configure Avi ClusterCloudDetails Object API
 
    .EXAMPLE
        $object = Get-AviRestClusterclouddetails
        $object.name = 'New name'
        Set-AviRestClusterclouddetails $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestClusterclouddetails')]$Clusterclouddetails
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Clusterclouddetails.uuid
        $global:body = ConvertTo-JSON $Clusterclouddetails -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/clusterclouddetails/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Clusterclouddetails.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestClusterclouddetails
        }
    }
}
Function New-AVIRestClusterclouddetails {
<#
    .SYNOPSIS
        Configure Avi ClusterCloudDetails Object API
 
    .EXAMPLE
        New-AviRestClusterclouddetails
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestClusterclouddetails')]$Clusterclouddetails
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/clusterclouddetails"
            Body = ConvertTo-JSON $Clusterclouddetails -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Clusterclouddetails.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestClusterclouddetails
        }
    }
}
Function New-AVIRestClusterclouddetailsObject {
<#
    .SYNOPSIS
        Configure Avi ClusterCloudDetails Object API
 
    .EXAMPLE
        New-AviRestClusterclouddetails
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestClusterclouddetails')
        $result
    }
}
Function Remove-AVIRestClusterclouddetails {
<#
    .SYNOPSIS
        Configure Avi ClusterCloudDetails Object API
 
    .EXAMPLE
        Get-AviRestClusterclouddetails | Remove-AviRestClusterclouddetails
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Clusterclouddetails')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Clusterclouddetails',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestClusterclouddetails')]$Clusterclouddetails,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Clusterclouddetails') {
            $uuid = $Clusterclouddetails.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/clusterclouddetails/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Clusterclouddetails.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestLicense {
<#
    .SYNOPSIS
        Configure Avi ControllerLicense Object API
 
    .EXAMPLE
        Get-AviRestLicense
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'l',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '20.1.2'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/license$Uuid" : '/api/license'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestLicense
    }
}
Function Set-AVIRestLicense {
<#
    .SYNOPSIS
        Configure Avi ControllerLicense Object API
 
    .EXAMPLE
        $object = Get-AviRestLicense
        $object.name = 'New name'
        Set-AviRestLicense $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestLicense')]$License
    )
    Begin {
        $swaggerVersion = '20.1.2'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $License.uuid
        $global:body = ConvertTo-JSON $License -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/license/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($License.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestLicense
        }
    }
}
Function New-AVIRestLicense {
<#
    .SYNOPSIS
        Configure Avi ControllerLicense Object API
 
    .EXAMPLE
        New-AviRestLicense
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestLicense')]$License
    )
    Begin {
        $swaggerVersion = '20.1.2'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/license"
            Body = ConvertTo-JSON $License -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($License.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestLicense
        }
    }
}
Function New-AVIRestLicenseObject {
<#
    .SYNOPSIS
        Configure Avi ControllerLicense Object API
 
    .EXAMPLE
        New-AviRestLicense
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '20.1.2'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestLicense')
        $result
    }
}
Function Remove-AVIRestLicense {
<#
    .SYNOPSIS
        Configure Avi ControllerLicense Object API
 
    .EXAMPLE
        Get-AviRestLicense | Remove-AviRestLicense
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'License')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'License',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestLicense')]$License,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '20.1.2'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'License') {
            $uuid = $License.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/license/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($License.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestControllerportalregistration {
<#
    .SYNOPSIS
        Configure Avi ControllerPortalRegistration Object API
 
    .EXAMPLE
        Get-AviRestControllerportalregistration
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'c',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/controllerportalregistration$Uuid" : '/api/controllerportalregistration'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestControllerportalregistration
    }
}
Function Set-AVIRestControllerportalregistration {
<#
    .SYNOPSIS
        Configure Avi ControllerPortalRegistration Object API
 
    .EXAMPLE
        $object = Get-AviRestControllerportalregistration
        $object.name = 'New name'
        Set-AviRestControllerportalregistration $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestControllerportalregistration')]$Controllerportalregistration
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Controllerportalregistration.uuid
        $global:body = ConvertTo-JSON $Controllerportalregistration -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/controllerportalregistration/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Controllerportalregistration.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestControllerportalregistration
        }
    }
}
Function New-AVIRestControllerportalregistration {
<#
    .SYNOPSIS
        Configure Avi ControllerPortalRegistration Object API
 
    .EXAMPLE
        New-AviRestControllerportalregistration
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestControllerportalregistration')]$Controllerportalregistration
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/controllerportalregistration"
            Body = ConvertTo-JSON $Controllerportalregistration -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Controllerportalregistration.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestControllerportalregistration
        }
    }
}
Function New-AVIRestControllerportalregistrationObject {
<#
    .SYNOPSIS
        Configure Avi ControllerPortalRegistration Object API
 
    .EXAMPLE
        New-AviRestControllerportalregistration
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestControllerportalregistration')
        $result
    }
}
Function Remove-AVIRestControllerportalregistration {
<#
    .SYNOPSIS
        Configure Avi ControllerPortalRegistration Object API
 
    .EXAMPLE
        Get-AviRestControllerportalregistration | Remove-AviRestControllerportalregistration
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Controllerportalregistration')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Controllerportalregistration',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestControllerportalregistration')]$Controllerportalregistration,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Controllerportalregistration') {
            $uuid = $Controllerportalregistration.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/controllerportalregistration/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Controllerportalregistration.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestControllerproperties {
<#
    .SYNOPSIS
        Configure Avi ControllerProperties Object API
 
    .EXAMPLE
        Get-AviRestControllerproperties
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = '',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/$Uuid" : '/api/'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestControllerproperties
    }
}
Function Set-AVIRestControllerproperties {
<#
    .SYNOPSIS
        Configure Avi ControllerProperties Object API
 
    .EXAMPLE
        $object = Get-AviRestControllerproperties
        $object.name = 'New name'
        Set-AviRestControllerproperties $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestControllerproperties')]$Controllerproperties
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Controllerproperties.uuid
        $global:body = ConvertTo-JSON $Controllerproperties -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/controllerproperties"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Controllerproperties.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestControllerproperties
        }
    }
}
Function Get-AVIRestControllersite {
<#
    .SYNOPSIS
        Configure Avi ControllerSite Object API
 
    .EXAMPLE
        Get-AviRestControllersite
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'c',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/controllersite$Uuid" : '/api/controllersite'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestControllersite
    }
}
Function Set-AVIRestControllersite {
<#
    .SYNOPSIS
        Configure Avi ControllerSite Object API
 
    .EXAMPLE
        $object = Get-AviRestControllersite
        $object.name = 'New name'
        Set-AviRestControllersite $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestControllersite')]$Controllersite
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Controllersite.uuid
        $global:body = ConvertTo-JSON $Controllersite -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/controllersite/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Controllersite.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestControllersite
        }
    }
}
Function New-AVIRestControllersite {
<#
    .SYNOPSIS
        Configure Avi ControllerSite Object API
 
    .EXAMPLE
        New-AviRestControllersite
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestControllersite')]$Controllersite
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/controllersite"
            Body = ConvertTo-JSON $Controllersite -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Controllersite.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestControllersite
        }
    }
}
Function New-AVIRestControllersiteObject {
<#
    .SYNOPSIS
        Configure Avi ControllerSite Object API
 
    .EXAMPLE
        New-AviRestControllersite
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestControllersite')
        $result
    }
}
Function Remove-AVIRestControllersite {
<#
    .SYNOPSIS
        Configure Avi ControllerSite Object API
 
    .EXAMPLE
        Get-AviRestControllersite | Remove-AviRestControllersite
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Controllersite')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Controllersite',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestControllersite')]$Controllersite,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Controllersite') {
            $uuid = $Controllersite.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/controllersite/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Controllersite.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestCsrfpolicy {
<#
    .SYNOPSIS
        Configure Avi CSRFPolicy Object API
 
    .EXAMPLE
        Get-AviRestCsrfpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'c',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/csrfpolicy$Uuid" : '/api/csrfpolicy'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestCsrfpolicy
    }
}
Function Set-AVIRestCsrfpolicy {
<#
    .SYNOPSIS
        Configure Avi CSRFPolicy Object API
 
    .EXAMPLE
        $object = Get-AviRestCsrfpolicy
        $object.name = 'New name'
        Set-AviRestCsrfpolicy $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCsrfpolicy')]$Csrfpolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Csrfpolicy.uuid
        $global:body = ConvertTo-JSON $Csrfpolicy -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/csrfpolicy/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Csrfpolicy.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestCsrfpolicy
        }
    }
}
Function New-AVIRestCsrfpolicy {
<#
    .SYNOPSIS
        Configure Avi CSRFPolicy Object API
 
    .EXAMPLE
        New-AviRestCsrfpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCsrfpolicy')]$Csrfpolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/csrfpolicy"
            Body = ConvertTo-JSON $Csrfpolicy -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Csrfpolicy.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestCsrfpolicy
        }
    }
}
Function New-AVIRestCsrfpolicyObject {
<#
    .SYNOPSIS
        Configure Avi CSRFPolicy Object API
 
    .EXAMPLE
        New-AviRestCsrfpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestCsrfpolicy')
        $result
    }
}
Function Remove-AVIRestCsrfpolicy {
<#
    .SYNOPSIS
        Configure Avi CSRFPolicy Object API
 
    .EXAMPLE
        Get-AviRestCsrfpolicy | Remove-AviRestCsrfpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Csrfpolicy')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Csrfpolicy',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCsrfpolicy')]$Csrfpolicy,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Csrfpolicy') {
            $uuid = $Csrfpolicy.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/csrfpolicy/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Csrfpolicy.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestCustomerportalinfo {
<#
    .SYNOPSIS
        Configure Avi CustomerPortalInfo Object API
 
    .EXAMPLE
        Get-AviRestCustomerportalinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'c',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '18.2.8'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/customerportalinfo$Uuid" : '/api/customerportalinfo'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestCustomerportalinfo
    }
}
Function Set-AVIRestCustomerportalinfo {
<#
    .SYNOPSIS
        Configure Avi CustomerPortalInfo Object API
 
    .EXAMPLE
        $object = Get-AviRestCustomerportalinfo
        $object.name = 'New name'
        Set-AviRestCustomerportalinfo $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCustomerportalinfo')]$Customerportalinfo
    )
    Begin {
        $swaggerVersion = '18.2.8'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Customerportalinfo.uuid
        $global:body = ConvertTo-JSON $Customerportalinfo -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/customerportalinfo/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Customerportalinfo.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestCustomerportalinfo
        }
    }
}
Function New-AVIRestCustomerportalinfo {
<#
    .SYNOPSIS
        Configure Avi CustomerPortalInfo Object API
 
    .EXAMPLE
        New-AviRestCustomerportalinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCustomerportalinfo')]$Customerportalinfo
    )
    Begin {
        $swaggerVersion = '18.2.8'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/customerportalinfo"
            Body = ConvertTo-JSON $Customerportalinfo -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Customerportalinfo.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestCustomerportalinfo
        }
    }
}
Function New-AVIRestCustomerportalinfoObject {
<#
    .SYNOPSIS
        Configure Avi CustomerPortalInfo Object API
 
    .EXAMPLE
        New-AviRestCustomerportalinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '18.2.8'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestCustomerportalinfo')
        $result
    }
}
Function Remove-AVIRestCustomerportalinfo {
<#
    .SYNOPSIS
        Configure Avi CustomerPortalInfo Object API
 
    .EXAMPLE
        Get-AviRestCustomerportalinfo | Remove-AviRestCustomerportalinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Customerportalinfo')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Customerportalinfo',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCustomerportalinfo')]$Customerportalinfo,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '18.2.8'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Customerportalinfo') {
            $uuid = $Customerportalinfo.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/customerportalinfo/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Customerportalinfo.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestCustomipamdnsprofile {
<#
    .SYNOPSIS
        Configure Avi CustomIpamDnsProfile Object API
 
    .EXAMPLE
        Get-AviRestCustomipamdnsprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'c',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/customipamdnsprofile$Uuid" : '/api/customipamdnsprofile'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestCustomipamdnsprofile
    }
}
Function Set-AVIRestCustomipamdnsprofile {
<#
    .SYNOPSIS
        Configure Avi CustomIpamDnsProfile Object API
 
    .EXAMPLE
        $object = Get-AviRestCustomipamdnsprofile
        $object.name = 'New name'
        Set-AviRestCustomipamdnsprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCustomipamdnsprofile')]$Customipamdnsprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Customipamdnsprofile.uuid
        $global:body = ConvertTo-JSON $Customipamdnsprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/customipamdnsprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Customipamdnsprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestCustomipamdnsprofile
        }
    }
}
Function New-AVIRestCustomipamdnsprofile {
<#
    .SYNOPSIS
        Configure Avi CustomIpamDnsProfile Object API
 
    .EXAMPLE
        New-AviRestCustomipamdnsprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCustomipamdnsprofile')]$Customipamdnsprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/customipamdnsprofile"
            Body = ConvertTo-JSON $Customipamdnsprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Customipamdnsprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestCustomipamdnsprofile
        }
    }
}
Function New-AVIRestCustomipamdnsprofileObject {
<#
    .SYNOPSIS
        Configure Avi CustomIpamDnsProfile Object API
 
    .EXAMPLE
        New-AviRestCustomipamdnsprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestCustomipamdnsprofile')
        $result
    }
}
Function Remove-AVIRestCustomipamdnsprofile {
<#
    .SYNOPSIS
        Configure Avi CustomIpamDnsProfile Object API
 
    .EXAMPLE
        Get-AviRestCustomipamdnsprofile | Remove-AviRestCustomipamdnsprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Customipamdnsprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Customipamdnsprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestCustomipamdnsprofile')]$Customipamdnsprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Customipamdnsprofile') {
            $uuid = $Customipamdnsprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/customipamdnsprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Customipamdnsprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestDebugcontroller {
<#
    .SYNOPSIS
        Configure Avi DebugController Object API
 
    .EXAMPLE
        Get-AviRestDebugcontroller
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'd',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/debugcontroller$Uuid" : '/api/debugcontroller'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestDebugcontroller
    }
}
Function Set-AVIRestDebugcontroller {
<#
    .SYNOPSIS
        Configure Avi DebugController Object API
 
    .EXAMPLE
        $object = Get-AviRestDebugcontroller
        $object.name = 'New name'
        Set-AviRestDebugcontroller $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDebugcontroller')]$Debugcontroller
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Debugcontroller.uuid
        $global:body = ConvertTo-JSON $Debugcontroller -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/debugcontroller/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Debugcontroller.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestDebugcontroller
        }
    }
}
Function New-AVIRestDebugcontroller {
<#
    .SYNOPSIS
        Configure Avi DebugController Object API
 
    .EXAMPLE
        New-AviRestDebugcontroller
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDebugcontroller')]$Debugcontroller
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/debugcontroller"
            Body = ConvertTo-JSON $Debugcontroller -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Debugcontroller.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestDebugcontroller
        }
    }
}
Function New-AVIRestDebugcontrollerObject {
<#
    .SYNOPSIS
        Configure Avi DebugController Object API
 
    .EXAMPLE
        New-AviRestDebugcontroller
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestDebugcontroller')
        $result
    }
}
Function Remove-AVIRestDebugcontroller {
<#
    .SYNOPSIS
        Configure Avi DebugController Object API
 
    .EXAMPLE
        Get-AviRestDebugcontroller | Remove-AviRestDebugcontroller
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Debugcontroller')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Debugcontroller',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDebugcontroller')]$Debugcontroller,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Debugcontroller') {
            $uuid = $Debugcontroller.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/debugcontroller/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Debugcontroller.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestDebugserviceengine {
<#
    .SYNOPSIS
        Configure Avi DebugServiceEngine Object API
 
    .EXAMPLE
        Get-AviRestDebugserviceengine
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'faultruntime',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/debugserviceengine$Uuid" : '/api/debugserviceengine'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestDebugserviceengine
    }
}
Function Set-AVIRestDebugserviceengine {
<#
    .SYNOPSIS
        Configure Avi DebugServiceEngine Object API
 
    .EXAMPLE
        $object = Get-AviRestDebugserviceengine
        $object.name = 'New name'
        Set-AviRestDebugserviceengine $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDebugserviceengine')]$Debugserviceengine
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Debugserviceengine.uuid
        $global:body = ConvertTo-JSON $Debugserviceengine -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/debugserviceengine/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Debugserviceengine.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestDebugserviceengine
        }
    }
}
Function New-AVIRestDebugserviceengine {
<#
    .SYNOPSIS
        Configure Avi DebugServiceEngine Object API
 
    .EXAMPLE
        New-AviRestDebugserviceengine
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDebugserviceengine')]$Debugserviceengine
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/debugserviceengine"
            Body = ConvertTo-JSON $Debugserviceengine -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Debugserviceengine.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestDebugserviceengine
        }
    }
}
Function New-AVIRestDebugserviceengineObject {
<#
    .SYNOPSIS
        Configure Avi DebugServiceEngine Object API
 
    .EXAMPLE
        New-AviRestDebugserviceengine
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestDebugserviceengine')
        $result
    }
}
Function Remove-AVIRestDebugserviceengine {
<#
    .SYNOPSIS
        Configure Avi DebugServiceEngine Object API
 
    .EXAMPLE
        Get-AviRestDebugserviceengine | Remove-AviRestDebugserviceengine
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Debugserviceengine')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Debugserviceengine',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDebugserviceengine')]$Debugserviceengine,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Debugserviceengine') {
            $uuid = $Debugserviceengine.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/debugserviceengine/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Debugserviceengine.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestDebugvirtualservice {
<#
    .SYNOPSIS
        Configure Avi DebugVirtualService Object API
 
    .EXAMPLE
        Get-AviRestDebugvirtualservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'd',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/debugvirtualservice$Uuid" : '/api/debugvirtualservice'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestDebugvirtualservice
    }
}
Function Set-AVIRestDebugvirtualservice {
<#
    .SYNOPSIS
        Configure Avi DebugVirtualService Object API
 
    .EXAMPLE
        $object = Get-AviRestDebugvirtualservice
        $object.name = 'New name'
        Set-AviRestDebugvirtualservice $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDebugvirtualservice')]$Debugvirtualservice
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Debugvirtualservice.uuid
        $global:body = ConvertTo-JSON $Debugvirtualservice -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/debugvirtualservice/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Debugvirtualservice.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestDebugvirtualservice
        }
    }
}
Function New-AVIRestDebugvirtualservice {
<#
    .SYNOPSIS
        Configure Avi DebugVirtualService Object API
 
    .EXAMPLE
        New-AviRestDebugvirtualservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDebugvirtualservice')]$Debugvirtualservice
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/debugvirtualservice"
            Body = ConvertTo-JSON $Debugvirtualservice -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Debugvirtualservice.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestDebugvirtualservice
        }
    }
}
Function New-AVIRestDebugvirtualserviceObject {
<#
    .SYNOPSIS
        Configure Avi DebugVirtualService Object API
 
    .EXAMPLE
        New-AviRestDebugvirtualservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestDebugvirtualservice')
        $result
    }
}
Function Remove-AVIRestDebugvirtualservice {
<#
    .SYNOPSIS
        Configure Avi DebugVirtualService Object API
 
    .EXAMPLE
        Get-AviRestDebugvirtualservice | Remove-AviRestDebugvirtualservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Debugvirtualservice')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Debugvirtualservice',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDebugvirtualservice')]$Debugvirtualservice,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Debugvirtualservice') {
            $uuid = $Debugvirtualservice.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/debugvirtualservice/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Debugvirtualservice.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestDnspolicy {
<#
    .SYNOPSIS
        Configure Avi DnsPolicy Object API
 
    .EXAMPLE
        Get-AviRestDnspolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'd',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/dnspolicy$Uuid" : '/api/dnspolicy'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestDnspolicy
    }
}
Function Set-AVIRestDnspolicy {
<#
    .SYNOPSIS
        Configure Avi DnsPolicy Object API
 
    .EXAMPLE
        $object = Get-AviRestDnspolicy
        $object.name = 'New name'
        Set-AviRestDnspolicy $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDnspolicy')]$Dnspolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Dnspolicy.uuid
        $global:body = ConvertTo-JSON $Dnspolicy -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/dnspolicy/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Dnspolicy.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestDnspolicy
        }
    }
}
Function New-AVIRestDnspolicy {
<#
    .SYNOPSIS
        Configure Avi DnsPolicy Object API
 
    .EXAMPLE
        New-AviRestDnspolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDnspolicy')]$Dnspolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/dnspolicy"
            Body = ConvertTo-JSON $Dnspolicy -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Dnspolicy.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestDnspolicy
        }
    }
}
Function New-AVIRestDnspolicyObject {
<#
    .SYNOPSIS
        Configure Avi DnsPolicy Object API
 
    .EXAMPLE
        New-AviRestDnspolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestDnspolicy')
        $result
    }
}
Function Remove-AVIRestDnspolicy {
<#
    .SYNOPSIS
        Configure Avi DnsPolicy Object API
 
    .EXAMPLE
        Get-AviRestDnspolicy | Remove-AviRestDnspolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Dnspolicy')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Dnspolicy',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDnspolicy')]$Dnspolicy,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Dnspolicy') {
            $uuid = $Dnspolicy.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/dnspolicy/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Dnspolicy.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestDynamicdnsrecord {
<#
    .SYNOPSIS
        Configure Avi DynamicDnsRecord Object API
 
    .EXAMPLE
        Get-AviRestDynamicdnsrecord
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'd',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/dynamicdnsrecord$Uuid" : '/api/dynamicdnsrecord'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestDynamicdnsrecord
    }
}
Function Set-AVIRestDynamicdnsrecord {
<#
    .SYNOPSIS
        Configure Avi DynamicDnsRecord Object API
 
    .EXAMPLE
        $object = Get-AviRestDynamicdnsrecord
        $object.name = 'New name'
        Set-AviRestDynamicdnsrecord $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDynamicdnsrecord')]$Dynamicdnsrecord
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Dynamicdnsrecord.uuid
        $global:body = ConvertTo-JSON $Dynamicdnsrecord -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/dynamicdnsrecord/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Dynamicdnsrecord.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestDynamicdnsrecord
        }
    }
}
Function New-AVIRestDynamicdnsrecord {
<#
    .SYNOPSIS
        Configure Avi DynamicDnsRecord Object API
 
    .EXAMPLE
        New-AviRestDynamicdnsrecord
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDynamicdnsrecord')]$Dynamicdnsrecord
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/dynamicdnsrecord"
            Body = ConvertTo-JSON $Dynamicdnsrecord -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Dynamicdnsrecord.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestDynamicdnsrecord
        }
    }
}
Function New-AVIRestDynamicdnsrecordObject {
<#
    .SYNOPSIS
        Configure Avi DynamicDnsRecord Object API
 
    .EXAMPLE
        New-AviRestDynamicdnsrecord
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestDynamicdnsrecord')
        $result
    }
}
Function Remove-AVIRestDynamicdnsrecord {
<#
    .SYNOPSIS
        Configure Avi DynamicDnsRecord Object API
 
    .EXAMPLE
        Get-AviRestDynamicdnsrecord | Remove-AviRestDynamicdnsrecord
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Dynamicdnsrecord')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Dynamicdnsrecord',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestDynamicdnsrecord')]$Dynamicdnsrecord,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Dynamicdnsrecord') {
            $uuid = $Dynamicdnsrecord.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/dynamicdnsrecord/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Dynamicdnsrecord.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestErrorpagebody {
<#
    .SYNOPSIS
        Configure Avi ErrorPageBody Object API
 
    .EXAMPLE
        Get-AviRestErrorpagebody
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'e',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/errorpagebody$Uuid" : '/api/errorpagebody'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestErrorpagebody
    }
}
Function Set-AVIRestErrorpagebody {
<#
    .SYNOPSIS
        Configure Avi ErrorPageBody Object API
 
    .EXAMPLE
        $object = Get-AviRestErrorpagebody
        $object.name = 'New name'
        Set-AviRestErrorpagebody $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestErrorpagebody')]$Errorpagebody
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Errorpagebody.uuid
        $global:body = ConvertTo-JSON $Errorpagebody -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/errorpagebody/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Errorpagebody.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestErrorpagebody
        }
    }
}
Function New-AVIRestErrorpagebody {
<#
    .SYNOPSIS
        Configure Avi ErrorPageBody Object API
 
    .EXAMPLE
        New-AviRestErrorpagebody
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestErrorpagebody')]$Errorpagebody
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/errorpagebody"
            Body = ConvertTo-JSON $Errorpagebody -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Errorpagebody.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestErrorpagebody
        }
    }
}
Function New-AVIRestErrorpagebodyObject {
<#
    .SYNOPSIS
        Configure Avi ErrorPageBody Object API
 
    .EXAMPLE
        New-AviRestErrorpagebody
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestErrorpagebody')
        $result
    }
}
Function Remove-AVIRestErrorpagebody {
<#
    .SYNOPSIS
        Configure Avi ErrorPageBody Object API
 
    .EXAMPLE
        Get-AviRestErrorpagebody | Remove-AviRestErrorpagebody
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Errorpagebody')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Errorpagebody',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestErrorpagebody')]$Errorpagebody,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Errorpagebody') {
            $uuid = $Errorpagebody.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/errorpagebody/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Errorpagebody.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestErrorpageprofile {
<#
    .SYNOPSIS
        Configure Avi ErrorPageProfile Object API
 
    .EXAMPLE
        Get-AviRestErrorpageprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'e',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/errorpageprofile$Uuid" : '/api/errorpageprofile'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestErrorpageprofile
    }
}
Function Set-AVIRestErrorpageprofile {
<#
    .SYNOPSIS
        Configure Avi ErrorPageProfile Object API
 
    .EXAMPLE
        $object = Get-AviRestErrorpageprofile
        $object.name = 'New name'
        Set-AviRestErrorpageprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestErrorpageprofile')]$Errorpageprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Errorpageprofile.uuid
        $global:body = ConvertTo-JSON $Errorpageprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/errorpageprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Errorpageprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestErrorpageprofile
        }
    }
}
Function New-AVIRestErrorpageprofile {
<#
    .SYNOPSIS
        Configure Avi ErrorPageProfile Object API
 
    .EXAMPLE
        New-AviRestErrorpageprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestErrorpageprofile')]$Errorpageprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/errorpageprofile"
            Body = ConvertTo-JSON $Errorpageprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Errorpageprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestErrorpageprofile
        }
    }
}
Function New-AVIRestErrorpageprofileObject {
<#
    .SYNOPSIS
        Configure Avi ErrorPageProfile Object API
 
    .EXAMPLE
        New-AviRestErrorpageprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestErrorpageprofile')
        $result
    }
}
Function Remove-AVIRestErrorpageprofile {
<#
    .SYNOPSIS
        Configure Avi ErrorPageProfile Object API
 
    .EXAMPLE
        Get-AviRestErrorpageprofile | Remove-AviRestErrorpageprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Errorpageprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Errorpageprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestErrorpageprofile')]$Errorpageprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Errorpageprofile') {
            $uuid = $Errorpageprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/errorpageprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Errorpageprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestFederationcheckpoint {
<#
    .SYNOPSIS
        Configure Avi FederationCheckpoint Object API
 
    .EXAMPLE
        Get-AviRestFederationcheckpoint
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'pendingobjects',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/federationcheckpoint$Uuid" : '/api/federationcheckpoint'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestFederationcheckpoint
    }
}
Function Set-AVIRestFederationcheckpoint {
<#
    .SYNOPSIS
        Configure Avi FederationCheckpoint Object API
 
    .EXAMPLE
        $object = Get-AviRestFederationcheckpoint
        $object.name = 'New name'
        Set-AviRestFederationcheckpoint $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestFederationcheckpoint')]$Federationcheckpoint
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Federationcheckpoint.uuid
        $global:body = ConvertTo-JSON $Federationcheckpoint -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/federationcheckpoint/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Federationcheckpoint.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestFederationcheckpoint
        }
    }
}
Function New-AVIRestFederationcheckpoint {
<#
    .SYNOPSIS
        Configure Avi FederationCheckpoint Object API
 
    .EXAMPLE
        New-AviRestFederationcheckpoint
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestFederationcheckpoint')]$Federationcheckpoint
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/federationcheckpoint"
            Body = ConvertTo-JSON $Federationcheckpoint -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Federationcheckpoint.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestFederationcheckpoint
        }
    }
}
Function New-AVIRestFederationcheckpointObject {
<#
    .SYNOPSIS
        Configure Avi FederationCheckpoint Object API
 
    .EXAMPLE
        New-AviRestFederationcheckpoint
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestFederationcheckpoint')
        $result
    }
}
Function Remove-AVIRestFederationcheckpoint {
<#
    .SYNOPSIS
        Configure Avi FederationCheckpoint Object API
 
    .EXAMPLE
        Get-AviRestFederationcheckpoint | Remove-AviRestFederationcheckpoint
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Federationcheckpoint')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Federationcheckpoint',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestFederationcheckpoint')]$Federationcheckpoint,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Federationcheckpoint') {
            $uuid = $Federationcheckpoint.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/federationcheckpoint/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Federationcheckpoint.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestFederationcheckpointInventory {
<#
    .SYNOPSIS
        Configure Avi FederationCheckpointInventory Object API
 
    .EXAMPLE
        Get-AviRestFederationcheckpointInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = '/federationcheckpoint/{uuid}',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/federationcheckpoint-inventory$Uuid" : '/api/federationcheckpoint-inventory'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestFederationcheckpointInventory
    }
}
Function Set-AVIRestFederationcheckpointInventory {
<#
    .SYNOPSIS
        Configure Avi FederationCheckpointInventory Object API
 
    .EXAMPLE
        $object = Get-AviRestFederationcheckpointInventory
        $object.name = 'New name'
        Set-AviRestFederationcheckpointInventory $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestFederationcheckpointInventory')]$FederationcheckpointInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $FederationcheckpointInventory.uuid
        $global:body = ConvertTo-JSON $FederationcheckpointInventory -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/federationcheckpoint-inventory/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($FederationcheckpointInventory.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestFederationcheckpointInventory
        }
    }
}
Function Set-AVIRestFederationcheckpoint {
<#
    .SYNOPSIS
        Configure Avi FederationCheckpointInventory Object API
 
    .EXAMPLE
        $object = Get-AviRestFederationcheckpoint
        $object.name = 'New name'
        Set-AviRestFederationcheckpoint $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestFederationcheckpoint')]$Federationcheckpoint
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Federationcheckpoint.uuid
        $global:body = ConvertTo-JSON $Federationcheckpoint -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/federationcheckpoint/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Federationcheckpoint.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestFederationcheckpoint
        }
    }
}
Function New-AVIRestFederationcheckpointInventory {
<#
    .SYNOPSIS
        Configure Avi FederationCheckpointInventory Object API
 
    .EXAMPLE
        New-AviRestFederationcheckpointInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestFederationcheckpointInventory')]$FederationcheckpointInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/federationcheckpoint-inventory"
            Body = ConvertTo-JSON $FederationcheckpointInventory -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($FederationcheckpointInventory.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestFederationcheckpointInventory
        }
    }
}
Function New-AVIRestFederationcheckpoint {
<#
    .SYNOPSIS
        Configure Avi FederationCheckpointInventory Object API
 
    .EXAMPLE
        New-AviRestFederationcheckpoint
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestFederationcheckpoint')]$Federationcheckpoint
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/federationcheckpoint"
            Body = ConvertTo-JSON $Federationcheckpoint -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Federationcheckpoint.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestFederationcheckpoint
        }
    }
}
Function New-AVIRestFederationcheckpointInventoryObject {
<#
    .SYNOPSIS
        Configure Avi FederationCheckpointInventory Object API
 
    .EXAMPLE
        New-AviRestFederationcheckpointInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestFederationcheckpointInventory')
        $result
    }
}
Function New-AVIRestFederationcheckpointObject {
<#
    .SYNOPSIS
        Configure Avi FederationCheckpointInventory Object API
 
    .EXAMPLE
        New-AviRestFederationcheckpoint
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestFederationcheckpoint')
        $result
    }
}
Function Remove-AVIRestFederationcheckpointInventory {
<#
    .SYNOPSIS
        Configure Avi FederationCheckpointInventory Object API
 
    .EXAMPLE
        Get-AviRestFederationcheckpointInventory | Remove-AviRestFederationcheckpointInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'FederationcheckpointInventory')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'FederationcheckpointInventory',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestFederationcheckpointInventory')]$FederationcheckpointInventory,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'FederationcheckpointInventory') {
            $uuid = $FederationcheckpointInventory.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/federationcheckpoint-inventory/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($FederationcheckpointInventory.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestFederationcheckpoint {
<#
    .SYNOPSIS
        Configure Avi FederationCheckpointInventory Object API
 
    .EXAMPLE
        Get-AviRestFederationcheckpoint | Remove-AviRestFederationcheckpoint
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Federationcheckpoint')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Federationcheckpoint',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestFederationcheckpoint')]$Federationcheckpoint,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Federationcheckpoint') {
            $uuid = $Federationcheckpoint.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/federationcheckpoint/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Federationcheckpoint.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestFileobject {
<#
    .SYNOPSIS
        Configure Avi FileObject Object API
 
    .EXAMPLE
        Get-AviRestFileobject
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'f',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/fileobject$Uuid" : '/api/fileobject'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestFileobject
    }
}
Function Set-AVIRestFileobject {
<#
    .SYNOPSIS
        Configure Avi FileObject Object API
 
    .EXAMPLE
        $object = Get-AviRestFileobject
        $object.name = 'New name'
        Set-AviRestFileobject $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestFileobject')]$Fileobject
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Fileobject.uuid
        $global:body = ConvertTo-JSON $Fileobject -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/fileobject/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Fileobject.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestFileobject
        }
    }
}
Function New-AVIRestFileobject {
<#
    .SYNOPSIS
        Configure Avi FileObject Object API
 
    .EXAMPLE
        New-AviRestFileobject
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestFileobject')]$Fileobject
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/fileobject"
            Body = ConvertTo-JSON $Fileobject -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Fileobject.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestFileobject
        }
    }
}
Function New-AVIRestFileobjectObject {
<#
    .SYNOPSIS
        Configure Avi FileObject Object API
 
    .EXAMPLE
        New-AviRestFileobject
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestFileobject')
        $result
    }
}
Function Remove-AVIRestFileobject {
<#
    .SYNOPSIS
        Configure Avi FileObject Object API
 
    .EXAMPLE
        Get-AviRestFileobject | Remove-AviRestFileobject
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Fileobject')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Fileobject',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestFileobject')]$Fileobject,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Fileobject') {
            $uuid = $Fileobject.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/fileobject/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Fileobject.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestGeodb {
<#
    .SYNOPSIS
        Configure Avi GeoDB Object API
 
    .EXAMPLE
        Get-AviRestGeodb
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'runtime/internal',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/geodb$Uuid" : '/api/geodb'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestGeodb
    }
}
Function Set-AVIRestGeodb {
<#
    .SYNOPSIS
        Configure Avi GeoDB Object API
 
    .EXAMPLE
        $object = Get-AviRestGeodb
        $object.name = 'New name'
        Set-AviRestGeodb $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGeodb')]$Geodb
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Geodb.uuid
        $global:body = ConvertTo-JSON $Geodb -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/geodb/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Geodb.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestGeodb
        }
    }
}
Function New-AVIRestGeodb {
<#
    .SYNOPSIS
        Configure Avi GeoDB Object API
 
    .EXAMPLE
        New-AviRestGeodb
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGeodb')]$Geodb
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/geodb"
            Body = ConvertTo-JSON $Geodb -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Geodb.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestGeodb
        }
    }
}
Function New-AVIRestGeodbObject {
<#
    .SYNOPSIS
        Configure Avi GeoDB Object API
 
    .EXAMPLE
        New-AviRestGeodb
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestGeodb')
        $result
    }
}
Function Remove-AVIRestGeodb {
<#
    .SYNOPSIS
        Configure Avi GeoDB Object API
 
    .EXAMPLE
        Get-AviRestGeodb | Remove-AviRestGeodb
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Geodb')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Geodb',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGeodb')]$Geodb,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Geodb') {
            $uuid = $Geodb.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/geodb/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Geodb.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestGslb {
<#
    .SYNOPSIS
        Configure Avi Gslb Object API
 
    .EXAMPLE
        Get-AviRestGslb
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'runtime,runtime/detail,runtime/internal',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/gslb$Uuid" : '/api/gslb'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestGslb
    }
}
Function Set-AVIRestGslb {
<#
    .SYNOPSIS
        Configure Avi Gslb Object API
 
    .EXAMPLE
        $object = Get-AviRestGslb
        $object.name = 'New name'
        Set-AviRestGslb $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGslb')]$Gslb
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Gslb.uuid
        $global:body = ConvertTo-JSON $Gslb -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/gslb/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Gslb.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestGslb
        }
    }
}
Function New-AVIRestGslb {
<#
    .SYNOPSIS
        Configure Avi Gslb Object API
 
    .EXAMPLE
        New-AviRestGslb
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGslb')]$Gslb
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/gslb"
            Body = ConvertTo-JSON $Gslb -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Gslb.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestGslb
        }
    }
}
Function New-AVIRestGslbObject {
<#
    .SYNOPSIS
        Configure Avi Gslb Object API
 
    .EXAMPLE
        New-AviRestGslb
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestGslb')
        $result
    }
}
Function Remove-AVIRestGslb {
<#
    .SYNOPSIS
        Configure Avi Gslb Object API
 
    .EXAMPLE
        Get-AviRestGslb | Remove-AviRestGslb
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Gslb')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Gslb',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGslb')]$Gslb,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Gslb') {
            $uuid = $Gslb.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/gslb/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Gslb.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestGslbgeodbprofile {
<#
    .SYNOPSIS
        Configure Avi GslbGeoDbProfile Object API
 
    .EXAMPLE
        Get-AviRestGslbgeodbprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'runtime',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/gslbgeodbprofile$Uuid" : '/api/gslbgeodbprofile'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestGslbgeodbprofile
    }
}
Function Set-AVIRestGslbgeodbprofile {
<#
    .SYNOPSIS
        Configure Avi GslbGeoDbProfile Object API
 
    .EXAMPLE
        $object = Get-AviRestGslbgeodbprofile
        $object.name = 'New name'
        Set-AviRestGslbgeodbprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGslbgeodbprofile')]$Gslbgeodbprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Gslbgeodbprofile.uuid
        $global:body = ConvertTo-JSON $Gslbgeodbprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/gslbgeodbprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Gslbgeodbprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestGslbgeodbprofile
        }
    }
}
Function New-AVIRestGslbgeodbprofile {
<#
    .SYNOPSIS
        Configure Avi GslbGeoDbProfile Object API
 
    .EXAMPLE
        New-AviRestGslbgeodbprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGslbgeodbprofile')]$Gslbgeodbprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/gslbgeodbprofile"
            Body = ConvertTo-JSON $Gslbgeodbprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Gslbgeodbprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestGslbgeodbprofile
        }
    }
}
Function New-AVIRestGslbgeodbprofileObject {
<#
    .SYNOPSIS
        Configure Avi GslbGeoDbProfile Object API
 
    .EXAMPLE
        New-AviRestGslbgeodbprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestGslbgeodbprofile')
        $result
    }
}
Function Remove-AVIRestGslbgeodbprofile {
<#
    .SYNOPSIS
        Configure Avi GslbGeoDbProfile Object API
 
    .EXAMPLE
        Get-AviRestGslbgeodbprofile | Remove-AviRestGslbgeodbprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Gslbgeodbprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Gslbgeodbprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGslbgeodbprofile')]$Gslbgeodbprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Gslbgeodbprofile') {
            $uuid = $Gslbgeodbprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/gslbgeodbprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Gslbgeodbprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestGslbInventory {
<#
    .SYNOPSIS
        Configure Avi GslbInventory Object API
 
    .EXAMPLE
        Get-AviRestGslbInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'g',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/gslb-inventory$Uuid" : '/api/gslb-inventory'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestGslbInventory
    }
}
Function Set-AVIRestGslbInventory {
<#
    .SYNOPSIS
        Configure Avi GslbInventory Object API
 
    .EXAMPLE
        $object = Get-AviRestGslbInventory
        $object.name = 'New name'
        Set-AviRestGslbInventory $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGslbInventory')]$GslbInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $GslbInventory.uuid
        $global:body = ConvertTo-JSON $GslbInventory -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/gslb-inventory/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($GslbInventory.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestGslbInventory
        }
    }
}
Function New-AVIRestGslbInventory {
<#
    .SYNOPSIS
        Configure Avi GslbInventory Object API
 
    .EXAMPLE
        New-AviRestGslbInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGslbInventory')]$GslbInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/gslb-inventory"
            Body = ConvertTo-JSON $GslbInventory -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($GslbInventory.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestGslbInventory
        }
    }
}
Function New-AVIRestGslbInventoryObject {
<#
    .SYNOPSIS
        Configure Avi GslbInventory Object API
 
    .EXAMPLE
        New-AviRestGslbInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestGslbInventory')
        $result
    }
}
Function Remove-AVIRestGslbInventory {
<#
    .SYNOPSIS
        Configure Avi GslbInventory Object API
 
    .EXAMPLE
        Get-AviRestGslbInventory | Remove-AviRestGslbInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'GslbInventory')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'GslbInventory',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGslbInventory')]$GslbInventory,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'GslbInventory') {
            $uuid = $GslbInventory.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/gslb-inventory/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($GslbInventory.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestGslbservice {
<#
    .SYNOPSIS
        Configure Avi GslbService Object API
 
    .EXAMPLE
        Get-AviRestGslbservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'runtime',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/gslbservice$Uuid" : '/api/gslbservice'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestGslbservice
    }
}
Function Set-AVIRestGslbservice {
<#
    .SYNOPSIS
        Configure Avi GslbService Object API
 
    .EXAMPLE
        $object = Get-AviRestGslbservice
        $object.name = 'New name'
        Set-AviRestGslbservice $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGslbservice')]$Gslbservice
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Gslbservice.uuid
        $global:body = ConvertTo-JSON $Gslbservice -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/gslbservice/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Gslbservice.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestGslbservice
        }
    }
}
Function New-AVIRestGslbservice {
<#
    .SYNOPSIS
        Configure Avi GslbService Object API
 
    .EXAMPLE
        New-AviRestGslbservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGslbservice')]$Gslbservice
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/gslbservice"
            Body = ConvertTo-JSON $Gslbservice -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Gslbservice.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestGslbservice
        }
    }
}
Function New-AVIRestGslbserviceObject {
<#
    .SYNOPSIS
        Configure Avi GslbService Object API
 
    .EXAMPLE
        New-AviRestGslbservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestGslbservice')
        $result
    }
}
Function Remove-AVIRestGslbservice {
<#
    .SYNOPSIS
        Configure Avi GslbService Object API
 
    .EXAMPLE
        Get-AviRestGslbservice | Remove-AviRestGslbservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Gslbservice')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Gslbservice',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGslbservice')]$Gslbservice,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Gslbservice') {
            $uuid = $Gslbservice.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/gslbservice/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Gslbservice.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestGslbserviceInventory {
<#
    .SYNOPSIS
        Configure Avi GslbServiceInventory Object API
 
    .EXAMPLE
        Get-AviRestGslbserviceInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'g',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/gslbservice-inventory$Uuid" : '/api/gslbservice-inventory'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestGslbserviceInventory
    }
}
Function Set-AVIRestGslbserviceInventory {
<#
    .SYNOPSIS
        Configure Avi GslbServiceInventory Object API
 
    .EXAMPLE
        $object = Get-AviRestGslbserviceInventory
        $object.name = 'New name'
        Set-AviRestGslbserviceInventory $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGslbserviceInventory')]$GslbserviceInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $GslbserviceInventory.uuid
        $global:body = ConvertTo-JSON $GslbserviceInventory -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/gslbservice-inventory/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($GslbserviceInventory.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestGslbserviceInventory
        }
    }
}
Function New-AVIRestGslbserviceInventory {
<#
    .SYNOPSIS
        Configure Avi GslbServiceInventory Object API
 
    .EXAMPLE
        New-AviRestGslbserviceInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGslbserviceInventory')]$GslbserviceInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/gslbservice-inventory"
            Body = ConvertTo-JSON $GslbserviceInventory -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($GslbserviceInventory.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestGslbserviceInventory
        }
    }
}
Function New-AVIRestGslbserviceInventoryObject {
<#
    .SYNOPSIS
        Configure Avi GslbServiceInventory Object API
 
    .EXAMPLE
        New-AviRestGslbserviceInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestGslbserviceInventory')
        $result
    }
}
Function Remove-AVIRestGslbserviceInventory {
<#
    .SYNOPSIS
        Configure Avi GslbServiceInventory Object API
 
    .EXAMPLE
        Get-AviRestGslbserviceInventory | Remove-AviRestGslbserviceInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'GslbserviceInventory')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'GslbserviceInventory',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestGslbserviceInventory')]$GslbserviceInventory,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'GslbserviceInventory') {
            $uuid = $GslbserviceInventory.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/gslbservice-inventory/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($GslbserviceInventory.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestHardwaresecuritymodulegroup {
<#
    .SYNOPSIS
        Configure Avi HardwareSecurityModuleGroup Object API
 
    .EXAMPLE
        Get-AviRestHardwaresecuritymodulegroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'h',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/hardwaresecuritymodulegroup$Uuid" : '/api/hardwaresecuritymodulegroup'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestHardwaresecuritymodulegroup
    }
}
Function Set-AVIRestHardwaresecuritymodulegroup {
<#
    .SYNOPSIS
        Configure Avi HardwareSecurityModuleGroup Object API
 
    .EXAMPLE
        $object = Get-AviRestHardwaresecuritymodulegroup
        $object.name = 'New name'
        Set-AviRestHardwaresecuritymodulegroup $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestHardwaresecuritymodulegroup')]$Hardwaresecuritymodulegroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Hardwaresecuritymodulegroup.uuid
        $global:body = ConvertTo-JSON $Hardwaresecuritymodulegroup -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/hardwaresecuritymodulegroup/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Hardwaresecuritymodulegroup.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestHardwaresecuritymodulegroup
        }
    }
}
Function New-AVIRestHardwaresecuritymodulegroup {
<#
    .SYNOPSIS
        Configure Avi HardwareSecurityModuleGroup Object API
 
    .EXAMPLE
        New-AviRestHardwaresecuritymodulegroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestHardwaresecuritymodulegroup')]$Hardwaresecuritymodulegroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/hardwaresecuritymodulegroup"
            Body = ConvertTo-JSON $Hardwaresecuritymodulegroup -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Hardwaresecuritymodulegroup.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestHardwaresecuritymodulegroup
        }
    }
}
Function New-AVIRestHardwaresecuritymodulegroupObject {
<#
    .SYNOPSIS
        Configure Avi HardwareSecurityModuleGroup Object API
 
    .EXAMPLE
        New-AviRestHardwaresecuritymodulegroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestHardwaresecuritymodulegroup')
        $result
    }
}
Function Remove-AVIRestHardwaresecuritymodulegroup {
<#
    .SYNOPSIS
        Configure Avi HardwareSecurityModuleGroup Object API
 
    .EXAMPLE
        Get-AviRestHardwaresecuritymodulegroup | Remove-AviRestHardwaresecuritymodulegroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Hardwaresecuritymodulegroup')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Hardwaresecuritymodulegroup',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestHardwaresecuritymodulegroup')]$Hardwaresecuritymodulegroup,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Hardwaresecuritymodulegroup') {
            $uuid = $Hardwaresecuritymodulegroup.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/hardwaresecuritymodulegroup/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Hardwaresecuritymodulegroup.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestHealthmonitor {
<#
    .SYNOPSIS
        Configure Avi HealthMonitor Object API
 
    .EXAMPLE
        Get-AviRestHealthmonitor
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'federated_info',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/healthmonitor$Uuid" : '/api/healthmonitor'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestHealthmonitor
    }
}
Function Set-AVIRestHealthmonitor {
<#
    .SYNOPSIS
        Configure Avi HealthMonitor Object API
 
    .EXAMPLE
        $object = Get-AviRestHealthmonitor
        $object.name = 'New name'
        Set-AviRestHealthmonitor $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestHealthmonitor')]$Healthmonitor
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Healthmonitor.uuid
        $global:body = ConvertTo-JSON $Healthmonitor -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/healthmonitor/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Healthmonitor.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestHealthmonitor
        }
    }
}
Function New-AVIRestHealthmonitor {
<#
    .SYNOPSIS
        Configure Avi HealthMonitor Object API
 
    .EXAMPLE
        New-AviRestHealthmonitor
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestHealthmonitor')]$Healthmonitor
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/healthmonitor"
            Body = ConvertTo-JSON $Healthmonitor -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Healthmonitor.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestHealthmonitor
        }
    }
}
Function New-AVIRestHealthmonitorObject {
<#
    .SYNOPSIS
        Configure Avi HealthMonitor Object API
 
    .EXAMPLE
        New-AviRestHealthmonitor
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestHealthmonitor')
        $result
    }
}
Function Remove-AVIRestHealthmonitor {
<#
    .SYNOPSIS
        Configure Avi HealthMonitor Object API
 
    .EXAMPLE
        Get-AviRestHealthmonitor | Remove-AviRestHealthmonitor
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Healthmonitor')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Healthmonitor',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestHealthmonitor')]$Healthmonitor,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Healthmonitor') {
            $uuid = $Healthmonitor.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/healthmonitor/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Healthmonitor.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestAnalyticsHealthscorePool {
<#
    .SYNOPSIS
        Configure Avi Object API
 
    .EXAMPLE
        Get-AviRestAnalyticsHealthscorePool
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = '/analytics/healthscore/serviceengine/{uuid},/analytics/healthscore/virtualservice/{uuid}',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/analytics/healthscore/pool/$Uuid" : '/api/analytics/healthscore/pool/'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestAnalyticsHealthscorePool
    }
}
Function Get-AVIRestHttppolicyset {
<#
    .SYNOPSIS
        Configure Avi HTTPPolicySet Object API
 
    .EXAMPLE
        Get-AviRestHttppolicyset
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'h',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/httppolicyset$Uuid" : '/api/httppolicyset'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestHttppolicyset
    }
}
Function Set-AVIRestHttppolicyset {
<#
    .SYNOPSIS
        Configure Avi HTTPPolicySet Object API
 
    .EXAMPLE
        $object = Get-AviRestHttppolicyset
        $object.name = 'New name'
        Set-AviRestHttppolicyset $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestHttppolicyset')]$Httppolicyset
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Httppolicyset.uuid
        $global:body = ConvertTo-JSON $Httppolicyset -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/httppolicyset/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Httppolicyset.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestHttppolicyset
        }
    }
}
Function New-AVIRestHttppolicyset {
<#
    .SYNOPSIS
        Configure Avi HTTPPolicySet Object API
 
    .EXAMPLE
        New-AviRestHttppolicyset
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestHttppolicyset')]$Httppolicyset
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/httppolicyset"
            Body = ConvertTo-JSON $Httppolicyset -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Httppolicyset.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestHttppolicyset
        }
    }
}
Function New-AVIRestHttppolicysetObject {
<#
    .SYNOPSIS
        Configure Avi HTTPPolicySet Object API
 
    .EXAMPLE
        New-AviRestHttppolicyset
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestHttppolicyset')
        $result
    }
}
Function Remove-AVIRestHttppolicyset {
<#
    .SYNOPSIS
        Configure Avi HTTPPolicySet Object API
 
    .EXAMPLE
        Get-AviRestHttppolicyset | Remove-AviRestHttppolicyset
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Httppolicyset')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Httppolicyset',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestHttppolicyset')]$Httppolicyset,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Httppolicyset') {
            $uuid = $Httppolicyset.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/httppolicyset/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Httppolicyset.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestIcapprofile {
<#
    .SYNOPSIS
        Configure Avi IcapProfile Object API
 
    .EXAMPLE
        Get-AviRestIcapprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'i',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/icapprofile$Uuid" : '/api/icapprofile'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestIcapprofile
    }
}
Function Set-AVIRestIcapprofile {
<#
    .SYNOPSIS
        Configure Avi IcapProfile Object API
 
    .EXAMPLE
        $object = Get-AviRestIcapprofile
        $object.name = 'New name'
        Set-AviRestIcapprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestIcapprofile')]$Icapprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Icapprofile.uuid
        $global:body = ConvertTo-JSON $Icapprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/icapprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Icapprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestIcapprofile
        }
    }
}
Function New-AVIRestIcapprofile {
<#
    .SYNOPSIS
        Configure Avi IcapProfile Object API
 
    .EXAMPLE
        New-AviRestIcapprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestIcapprofile')]$Icapprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/icapprofile"
            Body = ConvertTo-JSON $Icapprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Icapprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestIcapprofile
        }
    }
}
Function New-AVIRestIcapprofileObject {
<#
    .SYNOPSIS
        Configure Avi IcapProfile Object API
 
    .EXAMPLE
        New-AviRestIcapprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestIcapprofile')
        $result
    }
}
Function Remove-AVIRestIcapprofile {
<#
    .SYNOPSIS
        Configure Avi IcapProfile Object API
 
    .EXAMPLE
        Get-AviRestIcapprofile | Remove-AviRestIcapprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Icapprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Icapprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestIcapprofile')]$Icapprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Icapprofile') {
            $uuid = $Icapprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/icapprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Icapprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestImage {
<#
    .SYNOPSIS
        Configure Avi Image Object API
 
    .EXAMPLE
        Get-AviRestImage
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'i',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/image$Uuid" : '/api/image'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestImage
    }
}
Function Set-AVIRestImage {
<#
    .SYNOPSIS
        Configure Avi Image Object API
 
    .EXAMPLE
        $object = Get-AviRestImage
        $object.name = 'New name'
        Set-AviRestImage $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestImage')]$Image
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Image.uuid
        $global:body = ConvertTo-JSON $Image -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/image/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Image.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestImage
        }
    }
}
Function New-AVIRestImage {
<#
    .SYNOPSIS
        Configure Avi Image Object API
 
    .EXAMPLE
        New-AviRestImage
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestImage')]$Image
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/image"
            Body = ConvertTo-JSON $Image -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Image.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestImage
        }
    }
}
Function New-AVIRestImageObject {
<#
    .SYNOPSIS
        Configure Avi Image Object API
 
    .EXAMPLE
        New-AviRestImage
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestImage')
        $result
    }
}
Function Remove-AVIRestImage {
<#
    .SYNOPSIS
        Configure Avi Image Object API
 
    .EXAMPLE
        Get-AviRestImage | Remove-AviRestImage
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Image')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Image',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestImage')]$Image,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Image') {
            $uuid = $Image.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/image/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Image.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestInventoryfaultconfig {
<#
    .SYNOPSIS
        Configure Avi InventoryFaultConfig Object API
 
    .EXAMPLE
        Get-AviRestInventoryfaultconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'i',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/inventoryfaultconfig$Uuid" : '/api/inventoryfaultconfig'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestInventoryfaultconfig
    }
}
Function Set-AVIRestInventoryfaultconfig {
<#
    .SYNOPSIS
        Configure Avi InventoryFaultConfig Object API
 
    .EXAMPLE
        $object = Get-AviRestInventoryfaultconfig
        $object.name = 'New name'
        Set-AviRestInventoryfaultconfig $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestInventoryfaultconfig')]$Inventoryfaultconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Inventoryfaultconfig.uuid
        $global:body = ConvertTo-JSON $Inventoryfaultconfig -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/inventoryfaultconfig/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Inventoryfaultconfig.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestInventoryfaultconfig
        }
    }
}
Function New-AVIRestInventoryfaultconfig {
<#
    .SYNOPSIS
        Configure Avi InventoryFaultConfig Object API
 
    .EXAMPLE
        New-AviRestInventoryfaultconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestInventoryfaultconfig')]$Inventoryfaultconfig
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/inventoryfaultconfig"
            Body = ConvertTo-JSON $Inventoryfaultconfig -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Inventoryfaultconfig.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestInventoryfaultconfig
        }
    }
}
Function New-AVIRestInventoryfaultconfigObject {
<#
    .SYNOPSIS
        Configure Avi InventoryFaultConfig Object API
 
    .EXAMPLE
        New-AviRestInventoryfaultconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestInventoryfaultconfig')
        $result
    }
}
Function Remove-AVIRestInventoryfaultconfig {
<#
    .SYNOPSIS
        Configure Avi InventoryFaultConfig Object API
 
    .EXAMPLE
        Get-AviRestInventoryfaultconfig | Remove-AviRestInventoryfaultconfig
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Inventoryfaultconfig')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Inventoryfaultconfig',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestInventoryfaultconfig')]$Inventoryfaultconfig,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Inventoryfaultconfig') {
            $uuid = $Inventoryfaultconfig.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/inventoryfaultconfig/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Inventoryfaultconfig.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestIpaddrgroup {
<#
    .SYNOPSIS
        Configure Avi IpAddrGroup Object API
 
    .EXAMPLE
        Get-AviRestIpaddrgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'i',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/ipaddrgroup$Uuid" : '/api/ipaddrgroup'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestIpaddrgroup
    }
}
Function Set-AVIRestIpaddrgroup {
<#
    .SYNOPSIS
        Configure Avi IpAddrGroup Object API
 
    .EXAMPLE
        $object = Get-AviRestIpaddrgroup
        $object.name = 'New name'
        Set-AviRestIpaddrgroup $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestIpaddrgroup')]$Ipaddrgroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Ipaddrgroup.uuid
        $global:body = ConvertTo-JSON $Ipaddrgroup -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/ipaddrgroup/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Ipaddrgroup.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestIpaddrgroup
        }
    }
}
Function New-AVIRestIpaddrgroup {
<#
    .SYNOPSIS
        Configure Avi IpAddrGroup Object API
 
    .EXAMPLE
        New-AviRestIpaddrgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestIpaddrgroup')]$Ipaddrgroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/ipaddrgroup"
            Body = ConvertTo-JSON $Ipaddrgroup -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Ipaddrgroup.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestIpaddrgroup
        }
    }
}
Function New-AVIRestIpaddrgroupObject {
<#
    .SYNOPSIS
        Configure Avi IpAddrGroup Object API
 
    .EXAMPLE
        New-AviRestIpaddrgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestIpaddrgroup')
        $result
    }
}
Function Remove-AVIRestIpaddrgroup {
<#
    .SYNOPSIS
        Configure Avi IpAddrGroup Object API
 
    .EXAMPLE
        Get-AviRestIpaddrgroup | Remove-AviRestIpaddrgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Ipaddrgroup')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Ipaddrgroup',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestIpaddrgroup')]$Ipaddrgroup,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Ipaddrgroup') {
            $uuid = $Ipaddrgroup.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/ipaddrgroup/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Ipaddrgroup.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestIpamdnsproviderprofile {
<#
    .SYNOPSIS
        Configure Avi IpamDnsProviderProfile Object API
 
    .EXAMPLE
        Get-AviRestIpamdnsproviderprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'i',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/ipamdnsproviderprofile$Uuid" : '/api/ipamdnsproviderprofile'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestIpamdnsproviderprofile
    }
}
Function Set-AVIRestIpamdnsproviderprofile {
<#
    .SYNOPSIS
        Configure Avi IpamDnsProviderProfile Object API
 
    .EXAMPLE
        $object = Get-AviRestIpamdnsproviderprofile
        $object.name = 'New name'
        Set-AviRestIpamdnsproviderprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestIpamdnsproviderprofile')]$Ipamdnsproviderprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Ipamdnsproviderprofile.uuid
        $global:body = ConvertTo-JSON $Ipamdnsproviderprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/ipamdnsproviderprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Ipamdnsproviderprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestIpamdnsproviderprofile
        }
    }
}
Function New-AVIRestIpamdnsproviderprofile {
<#
    .SYNOPSIS
        Configure Avi IpamDnsProviderProfile Object API
 
    .EXAMPLE
        New-AviRestIpamdnsproviderprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestIpamdnsproviderprofile')]$Ipamdnsproviderprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/ipamdnsproviderprofile"
            Body = ConvertTo-JSON $Ipamdnsproviderprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Ipamdnsproviderprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestIpamdnsproviderprofile
        }
    }
}
Function New-AVIRestIpamdnsproviderprofileObject {
<#
    .SYNOPSIS
        Configure Avi IpamDnsProviderProfile Object API
 
    .EXAMPLE
        New-AviRestIpamdnsproviderprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestIpamdnsproviderprofile')
        $result
    }
}
Function Remove-AVIRestIpamdnsproviderprofile {
<#
    .SYNOPSIS
        Configure Avi IpamDnsProviderProfile Object API
 
    .EXAMPLE
        Get-AviRestIpamdnsproviderprofile | Remove-AviRestIpamdnsproviderprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Ipamdnsproviderprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Ipamdnsproviderprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestIpamdnsproviderprofile')]$Ipamdnsproviderprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Ipamdnsproviderprofile') {
            $uuid = $Ipamdnsproviderprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/ipamdnsproviderprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Ipamdnsproviderprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestIpreputationdb {
<#
    .SYNOPSIS
        Configure Avi IPReputationDB Object API
 
    .EXAMPLE
        Get-AviRestIpreputationdb
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'runtime/internal',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/ipreputationdb$Uuid" : '/api/ipreputationdb'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestIpreputationdb
    }
}
Function Set-AVIRestIpreputationdb {
<#
    .SYNOPSIS
        Configure Avi IPReputationDB Object API
 
    .EXAMPLE
        $object = Get-AviRestIpreputationdb
        $object.name = 'New name'
        Set-AviRestIpreputationdb $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestIpreputationdb')]$Ipreputationdb
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Ipreputationdb.uuid
        $global:body = ConvertTo-JSON $Ipreputationdb -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/ipreputationdb/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Ipreputationdb.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestIpreputationdb
        }
    }
}
Function New-AVIRestIpreputationdb {
<#
    .SYNOPSIS
        Configure Avi IPReputationDB Object API
 
    .EXAMPLE
        New-AviRestIpreputationdb
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestIpreputationdb')]$Ipreputationdb
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/ipreputationdb"
            Body = ConvertTo-JSON $Ipreputationdb -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Ipreputationdb.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestIpreputationdb
        }
    }
}
Function New-AVIRestIpreputationdbObject {
<#
    .SYNOPSIS
        Configure Avi IPReputationDB Object API
 
    .EXAMPLE
        New-AviRestIpreputationdb
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestIpreputationdb')
        $result
    }
}
Function Remove-AVIRestIpreputationdb {
<#
    .SYNOPSIS
        Configure Avi IPReputationDB Object API
 
    .EXAMPLE
        Get-AviRestIpreputationdb | Remove-AviRestIpreputationdb
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Ipreputationdb')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Ipreputationdb',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestIpreputationdb')]$Ipreputationdb,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Ipreputationdb') {
            $uuid = $Ipreputationdb.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/ipreputationdb/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Ipreputationdb.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestJobs {
<#
    .SYNOPSIS
        Configure Avi JobEntry Object API
 
    .EXAMPLE
        Get-AviRestJobs
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'j',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/jobs$Uuid" : '/api/jobs'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestJobs
    }
}
Function Set-AVIRestJobs {
<#
    .SYNOPSIS
        Configure Avi JobEntry Object API
 
    .EXAMPLE
        $object = Get-AviRestJobs
        $object.name = 'New name'
        Set-AviRestJobs $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestJobs')]$Jobs
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Jobs.uuid
        $global:body = ConvertTo-JSON $Jobs -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/jobs/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Jobs.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestJobs
        }
    }
}
Function New-AVIRestJobs {
<#
    .SYNOPSIS
        Configure Avi JobEntry Object API
 
    .EXAMPLE
        New-AviRestJobs
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestJobs')]$Jobs
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/jobs"
            Body = ConvertTo-JSON $Jobs -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Jobs.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestJobs
        }
    }
}
Function Remove-AVIRestJobs {
<#
    .SYNOPSIS
        Configure Avi JobEntry Object API
 
    .EXAMPLE
        Get-AviRestJobs | Remove-AviRestJobs
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Jobs')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Jobs',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestJobs')]$Jobs,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Jobs') {
            $uuid = $Jobs.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/jobs/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Jobs.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestJwtprofile {
<#
    .SYNOPSIS
        Configure Avi JWTProfile Object API
 
    .EXAMPLE
        Get-AviRestJwtprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'federated_info',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '21.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/jwtprofile$Uuid" : '/api/jwtprofile'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestJwtprofile
    }
}
Function Set-AVIRestJwtprofile {
<#
    .SYNOPSIS
        Configure Avi JWTProfile Object API
 
    .EXAMPLE
        $object = Get-AviRestJwtprofile
        $object.name = 'New name'
        Set-AviRestJwtprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestJwtprofile')]$Jwtprofile
    )
    Begin {
        $swaggerVersion = '21.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Jwtprofile.uuid
        $global:body = ConvertTo-JSON $Jwtprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/jwtprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Jwtprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestJwtprofile
        }
    }
}
Function New-AVIRestJwtprofile {
<#
    .SYNOPSIS
        Configure Avi JWTProfile Object API
 
    .EXAMPLE
        New-AviRestJwtprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestJwtprofile')]$Jwtprofile
    )
    Begin {
        $swaggerVersion = '21.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/jwtprofile"
            Body = ConvertTo-JSON $Jwtprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Jwtprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestJwtprofile
        }
    }
}
Function New-AVIRestJwtprofileObject {
<#
    .SYNOPSIS
        Configure Avi JWTProfile Object API
 
    .EXAMPLE
        New-AviRestJwtprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '21.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestJwtprofile')
        $result
    }
}
Function Remove-AVIRestJwtprofile {
<#
    .SYNOPSIS
        Configure Avi JWTProfile Object API
 
    .EXAMPLE
        Get-AviRestJwtprofile | Remove-AviRestJwtprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Jwtprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Jwtprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestJwtprofile')]$Jwtprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '21.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Jwtprofile') {
            $uuid = $Jwtprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/jwtprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Jwtprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestJwtserverprofile {
<#
    .SYNOPSIS
        Configure Avi JWTServerProfile Object API
 
    .EXAMPLE
        Get-AviRestJwtserverprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'federated_info',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/jwtserverprofile$Uuid" : '/api/jwtserverprofile'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestJwtserverprofile
    }
}
Function Set-AVIRestJwtserverprofile {
<#
    .SYNOPSIS
        Configure Avi JWTServerProfile Object API
 
    .EXAMPLE
        $object = Get-AviRestJwtserverprofile
        $object.name = 'New name'
        Set-AviRestJwtserverprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestJwtserverprofile')]$Jwtserverprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Jwtserverprofile.uuid
        $global:body = ConvertTo-JSON $Jwtserverprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/jwtserverprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Jwtserverprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestJwtserverprofile
        }
    }
}
Function New-AVIRestJwtserverprofile {
<#
    .SYNOPSIS
        Configure Avi JWTServerProfile Object API
 
    .EXAMPLE
        New-AviRestJwtserverprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestJwtserverprofile')]$Jwtserverprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/jwtserverprofile"
            Body = ConvertTo-JSON $Jwtserverprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Jwtserverprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestJwtserverprofile
        }
    }
}
Function New-AVIRestJwtserverprofileObject {
<#
    .SYNOPSIS
        Configure Avi JWTServerProfile Object API
 
    .EXAMPLE
        New-AviRestJwtserverprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestJwtserverprofile')
        $result
    }
}
Function Remove-AVIRestJwtserverprofile {
<#
    .SYNOPSIS
        Configure Avi JWTServerProfile Object API
 
    .EXAMPLE
        Get-AviRestJwtserverprofile | Remove-AviRestJwtserverprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Jwtserverprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Jwtserverprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestJwtserverprofile')]$Jwtserverprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Jwtserverprofile') {
            $uuid = $Jwtserverprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/jwtserverprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Jwtserverprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestL4policyset {
<#
    .SYNOPSIS
        Configure Avi L4PolicySet Object API
 
    .EXAMPLE
        Get-AviRestL4policyset
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'l',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/l4policyset$Uuid" : '/api/l4policyset'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestL4policyset
    }
}
Function Set-AVIRestL4policyset {
<#
    .SYNOPSIS
        Configure Avi L4PolicySet Object API
 
    .EXAMPLE
        $object = Get-AviRestL4policyset
        $object.name = 'New name'
        Set-AviRestL4policyset $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestL4policyset')]$L4policyset
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $L4policyset.uuid
        $global:body = ConvertTo-JSON $L4policyset -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/l4policyset/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($L4policyset.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestL4policyset
        }
    }
}
Function New-AVIRestL4policyset {
<#
    .SYNOPSIS
        Configure Avi L4PolicySet Object API
 
    .EXAMPLE
        New-AviRestL4policyset
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestL4policyset')]$L4policyset
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/l4policyset"
            Body = ConvertTo-JSON $L4policyset -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($L4policyset.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestL4policyset
        }
    }
}
Function New-AVIRestL4policysetObject {
<#
    .SYNOPSIS
        Configure Avi L4PolicySet Object API
 
    .EXAMPLE
        New-AviRestL4policyset
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestL4policyset')
        $result
    }
}
Function Remove-AVIRestL4policyset {
<#
    .SYNOPSIS
        Configure Avi L4PolicySet Object API
 
    .EXAMPLE
        Get-AviRestL4policyset | Remove-AviRestL4policyset
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'L4policyset')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'L4policyset',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestL4policyset')]$L4policyset,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'L4policyset') {
            $uuid = $L4policyset.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/l4policyset/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($L4policyset.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestLabelgroup {
<#
    .SYNOPSIS
        Configure Avi LabelGroup Object API
 
    .EXAMPLE
        Get-AviRestLabelgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'l',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/labelgroup$Uuid" : '/api/labelgroup'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestLabelgroup
    }
}
Function Set-AVIRestLabelgroup {
<#
    .SYNOPSIS
        Configure Avi LabelGroup Object API
 
    .EXAMPLE
        $object = Get-AviRestLabelgroup
        $object.name = 'New name'
        Set-AviRestLabelgroup $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestLabelgroup')]$Labelgroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Labelgroup.uuid
        $global:body = ConvertTo-JSON $Labelgroup -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/labelgroup/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Labelgroup.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestLabelgroup
        }
    }
}
Function New-AVIRestLabelgroup {
<#
    .SYNOPSIS
        Configure Avi LabelGroup Object API
 
    .EXAMPLE
        New-AviRestLabelgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestLabelgroup')]$Labelgroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/labelgroup"
            Body = ConvertTo-JSON $Labelgroup -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Labelgroup.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestLabelgroup
        }
    }
}
Function New-AVIRestLabelgroupObject {
<#
    .SYNOPSIS
        Configure Avi LabelGroup Object API
 
    .EXAMPLE
        New-AviRestLabelgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestLabelgroup')
        $result
    }
}
Function Remove-AVIRestLabelgroup {
<#
    .SYNOPSIS
        Configure Avi LabelGroup Object API
 
    .EXAMPLE
        Get-AviRestLabelgroup | Remove-AviRestLabelgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Labelgroup')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Labelgroup',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestLabelgroup')]$Labelgroup,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Labelgroup') {
            $uuid = $Labelgroup.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/labelgroup/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Labelgroup.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestLicensingLedgerDetails {
<#
    .SYNOPSIS
        Configure Avi LicenseLedgerDetails Object API
 
    .EXAMPLE
        Get-AviRestLicensingLedgerDetails
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'l',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/licensing/ledger/details$Uuid" : '/api/licensing/ledger/details'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestLicensingLedgerDetails
    }
}
Function Set-AVIRestLicensingLedgerDetails {
<#
    .SYNOPSIS
        Configure Avi LicenseLedgerDetails Object API
 
    .EXAMPLE
        $object = Get-AviRestLicensingLedgerDetails
        $object.name = 'New name'
        Set-AviRestLicensingLedgerDetails $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestLicensingLedgerDetails')]$LicensingLedgerDetails
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $LicensingLedgerDetails.uuid
        $global:body = ConvertTo-JSON $LicensingLedgerDetails -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/licensing/ledger/details/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($LicensingLedgerDetails.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestLicensingLedgerDetails
        }
    }
}
Function New-AVIRestLicensingLedgerDetails {
<#
    .SYNOPSIS
        Configure Avi LicenseLedgerDetails Object API
 
    .EXAMPLE
        New-AviRestLicensingLedgerDetails
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestLicensingLedgerDetails')]$LicensingLedgerDetails
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/licensing/ledger/details"
            Body = ConvertTo-JSON $LicensingLedgerDetails -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($LicensingLedgerDetails.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestLicensingLedgerDetails
        }
    }
}
Function New-AVIRestLicensingLedgerDetailsObject {
<#
    .SYNOPSIS
        Configure Avi LicenseLedgerDetails Object API
 
    .EXAMPLE
        New-AviRestLicensingLedgerDetails
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestLicensingLedgerDetails')
        $result
    }
}
Function Remove-AVIRestLicensingLedgerDetails {
<#
    .SYNOPSIS
        Configure Avi LicenseLedgerDetails Object API
 
    .EXAMPLE
        Get-AviRestLicensingLedgerDetails | Remove-AviRestLicensingLedgerDetails
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'LicensingLedgerDetails')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'LicensingLedgerDetails',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestLicensingLedgerDetails')]$LicensingLedgerDetails,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'LicensingLedgerDetails') {
            $uuid = $LicensingLedgerDetails.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/licensing/ledger/details/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($LicensingLedgerDetails.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestLicensingStatus {
<#
    .SYNOPSIS
        Configure Avi LicenseStatus Object API
 
    .EXAMPLE
        Get-AviRestLicensingStatus
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'l',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/licensing/status$Uuid" : '/api/licensing/status'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestLicensingStatus
    }
}
Function Set-AVIRestLicensingStatus {
<#
    .SYNOPSIS
        Configure Avi LicenseStatus Object API
 
    .EXAMPLE
        $object = Get-AviRestLicensingStatus
        $object.name = 'New name'
        Set-AviRestLicensingStatus $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestLicensingStatus')]$LicensingStatus
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $LicensingStatus.uuid
        $global:body = ConvertTo-JSON $LicensingStatus -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/licensing/status/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($LicensingStatus.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestLicensingStatus
        }
    }
}
Function New-AVIRestLicensingStatus {
<#
    .SYNOPSIS
        Configure Avi LicenseStatus Object API
 
    .EXAMPLE
        New-AviRestLicensingStatus
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestLicensingStatus')]$LicensingStatus
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/licensing/status"
            Body = ConvertTo-JSON $LicensingStatus -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($LicensingStatus.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestLicensingStatus
        }
    }
}
Function New-AVIRestLicensingStatusObject {
<#
    .SYNOPSIS
        Configure Avi LicenseStatus Object API
 
    .EXAMPLE
        New-AviRestLicensingStatus
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestLicensingStatus')
        $result
    }
}
Function Remove-AVIRestLicensingStatus {
<#
    .SYNOPSIS
        Configure Avi LicenseStatus Object API
 
    .EXAMPLE
        Get-AviRestLicensingStatus | Remove-AviRestLicensingStatus
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'LicensingStatus')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'LicensingStatus',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestLicensingStatus')]$LicensingStatus,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'LicensingStatus') {
            $uuid = $LicensingStatus.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/licensing/status/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($LicensingStatus.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestLogcontroller {
<#
    .SYNOPSIS
        Configure Avi LogControllerMapping Object API
 
    .EXAMPLE
        Get-AviRestLogcontroller
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'l',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/logcontroller$Uuid" : '/api/logcontroller'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestLogcontroller
    }
}
Function Set-AVIRestLogcontroller {
<#
    .SYNOPSIS
        Configure Avi LogControllerMapping Object API
 
    .EXAMPLE
        $object = Get-AviRestLogcontroller
        $object.name = 'New name'
        Set-AviRestLogcontroller $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestLogcontroller')]$Logcontroller
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Logcontroller.uuid
        $global:body = ConvertTo-JSON $Logcontroller -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/logcontroller/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Logcontroller.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestLogcontroller
        }
    }
}
Function New-AVIRestLogcontroller {
<#
    .SYNOPSIS
        Configure Avi LogControllerMapping Object API
 
    .EXAMPLE
        New-AviRestLogcontroller
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestLogcontroller')]$Logcontroller
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/logcontroller"
            Body = ConvertTo-JSON $Logcontroller -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Logcontroller.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestLogcontroller
        }
    }
}
Function New-AVIRestLogcontrollerObject {
<#
    .SYNOPSIS
        Configure Avi LogControllerMapping Object API
 
    .EXAMPLE
        New-AviRestLogcontroller
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestLogcontroller')
        $result
    }
}
Function Remove-AVIRestLogcontroller {
<#
    .SYNOPSIS
        Configure Avi LogControllerMapping Object API
 
    .EXAMPLE
        Get-AviRestLogcontroller | Remove-AviRestLogcontroller
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Logcontroller')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Logcontroller',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestLogcontroller')]$Logcontroller,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Logcontroller') {
            $uuid = $Logcontroller.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/logcontroller/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Logcontroller.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestMemorybalancernotifier {
<#
    .SYNOPSIS
        Configure Avi MemoryBalancerRequest Object API
 
    .EXAMPLE
        Get-AviRestMemorybalancernotifier
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'm',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/memorybalancernotifier$Uuid" : '/api/memorybalancernotifier'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestMemorybalancernotifier
    }
}
Function Set-AVIRestMemorybalancernotifier {
<#
    .SYNOPSIS
        Configure Avi MemoryBalancerRequest Object API
 
    .EXAMPLE
        $object = Get-AviRestMemorybalancernotifier
        $object.name = 'New name'
        Set-AviRestMemorybalancernotifier $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestMemorybalancernotifier')]$Memorybalancernotifier
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Memorybalancernotifier.uuid
        $global:body = ConvertTo-JSON $Memorybalancernotifier -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/memorybalancernotifier/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Memorybalancernotifier.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestMemorybalancernotifier
        }
    }
}
Function New-AVIRestMemorybalancernotifier {
<#
    .SYNOPSIS
        Configure Avi MemoryBalancerRequest Object API
 
    .EXAMPLE
        New-AviRestMemorybalancernotifier
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestMemorybalancernotifier')]$Memorybalancernotifier
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/memorybalancernotifier"
            Body = ConvertTo-JSON $Memorybalancernotifier -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Memorybalancernotifier.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestMemorybalancernotifier
        }
    }
}
Function Remove-AVIRestMemorybalancernotifier {
<#
    .SYNOPSIS
        Configure Avi MemoryBalancerRequest Object API
 
    .EXAMPLE
        Get-AviRestMemorybalancernotifier | Remove-AviRestMemorybalancernotifier
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Memorybalancernotifier')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Memorybalancernotifier',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestMemorybalancernotifier')]$Memorybalancernotifier,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Memorybalancernotifier') {
            $uuid = $Memorybalancernotifier.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/memorybalancernotifier/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Memorybalancernotifier.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestAnalyticsMetricsController {
<#
    .SYNOPSIS
        Configure Avi Object API
 
    .EXAMPLE
        Get-AviRestAnalyticsMetricsController
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = '/analytics/metrics/pool/{uuid},/analytics/metrics/serviceengine/{uuid},/analytics/metrics/virtualservice/{uuid}',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/analytics/metrics/controller/$Uuid" : '/api/analytics/metrics/controller/'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestAnalyticsMetricsController
    }
}
Function New-AVIRestAnalyticsMetricsCollection {
<#
    .SYNOPSIS
        Configure Avi Object API
 
    .EXAMPLE
        New-AviRestAnalyticsMetricsCollection
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestAnalyticsMetricsCollection')]$AnalyticsMetricsCollection
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/analytics/metrics/collection/"
            Body = ConvertTo-JSON $AnalyticsMetricsCollection -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($AnalyticsMetricsCollection.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestAnalyticsMetricsCollection
        }
    }
}
Function New-AVIRestAnalyticsMetricsCollectionObject {
<#
    .SYNOPSIS
        Configure Avi Object API
 
    .EXAMPLE
        New-AviRestAnalyticsMetricsCollection
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestAnalyticsMetricsCollection')
        $result
    }
}
Function Get-AVIRestMicroservice {
<#
    .SYNOPSIS
        Configure Avi MicroService Object API
 
    .EXAMPLE
        Get-AviRestMicroservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'runtime/internal,runtime/detail',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/microservice$Uuid" : '/api/microservice'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestMicroservice
    }
}
Function Set-AVIRestMicroservice {
<#
    .SYNOPSIS
        Configure Avi MicroService Object API
 
    .EXAMPLE
        $object = Get-AviRestMicroservice
        $object.name = 'New name'
        Set-AviRestMicroservice $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestMicroservice')]$Microservice
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Microservice.uuid
        $global:body = ConvertTo-JSON $Microservice -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/microservice/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Microservice.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestMicroservice
        }
    }
}
Function New-AVIRestMicroservice {
<#
    .SYNOPSIS
        Configure Avi MicroService Object API
 
    .EXAMPLE
        New-AviRestMicroservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestMicroservice')]$Microservice
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/microservice"
            Body = ConvertTo-JSON $Microservice -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Microservice.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestMicroservice
        }
    }
}
Function New-AVIRestMicroserviceObject {
<#
    .SYNOPSIS
        Configure Avi MicroService Object API
 
    .EXAMPLE
        New-AviRestMicroservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestMicroservice')
        $result
    }
}
Function Remove-AVIRestMicroservice {
<#
    .SYNOPSIS
        Configure Avi MicroService Object API
 
    .EXAMPLE
        Get-AviRestMicroservice | Remove-AviRestMicroservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Microservice')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Microservice',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestMicroservice')]$Microservice,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Microservice') {
            $uuid = $Microservice.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/microservice/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Microservice.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestMicroservicegroup {
<#
    .SYNOPSIS
        Configure Avi MicroServiceGroup Object API
 
    .EXAMPLE
        Get-AviRestMicroservicegroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'runtime/detail',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/microservicegroup$Uuid" : '/api/microservicegroup'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestMicroservicegroup
    }
}
Function Set-AVIRestMicroservicegroup {
<#
    .SYNOPSIS
        Configure Avi MicroServiceGroup Object API
 
    .EXAMPLE
        $object = Get-AviRestMicroservicegroup
        $object.name = 'New name'
        Set-AviRestMicroservicegroup $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestMicroservicegroup')]$Microservicegroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Microservicegroup.uuid
        $global:body = ConvertTo-JSON $Microservicegroup -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/microservicegroup/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Microservicegroup.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestMicroservicegroup
        }
    }
}
Function New-AVIRestMicroservicegroup {
<#
    .SYNOPSIS
        Configure Avi MicroServiceGroup Object API
 
    .EXAMPLE
        New-AviRestMicroservicegroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestMicroservicegroup')]$Microservicegroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/microservicegroup"
            Body = ConvertTo-JSON $Microservicegroup -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Microservicegroup.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestMicroservicegroup
        }
    }
}
Function New-AVIRestMicroservicegroupObject {
<#
    .SYNOPSIS
        Configure Avi MicroServiceGroup Object API
 
    .EXAMPLE
        New-AviRestMicroservicegroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestMicroservicegroup')
        $result
    }
}
Function Remove-AVIRestMicroservicegroup {
<#
    .SYNOPSIS
        Configure Avi MicroServiceGroup Object API
 
    .EXAMPLE
        Get-AviRestMicroservicegroup | Remove-AviRestMicroservicegroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Microservicegroup')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Microservicegroup',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestMicroservicegroup')]$Microservicegroup,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Microservicegroup') {
            $uuid = $Microservicegroup.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/microservicegroup/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Microservicegroup.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestNatpolicy {
<#
    .SYNOPSIS
        Configure Avi NatPolicy Object API
 
    .EXAMPLE
        Get-AviRestNatpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'n',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/natpolicy$Uuid" : '/api/natpolicy'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestNatpolicy
    }
}
Function Set-AVIRestNatpolicy {
<#
    .SYNOPSIS
        Configure Avi NatPolicy Object API
 
    .EXAMPLE
        $object = Get-AviRestNatpolicy
        $object.name = 'New name'
        Set-AviRestNatpolicy $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNatpolicy')]$Natpolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Natpolicy.uuid
        $global:body = ConvertTo-JSON $Natpolicy -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/natpolicy/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Natpolicy.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestNatpolicy
        }
    }
}
Function New-AVIRestNatpolicy {
<#
    .SYNOPSIS
        Configure Avi NatPolicy Object API
 
    .EXAMPLE
        New-AviRestNatpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNatpolicy')]$Natpolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/natpolicy"
            Body = ConvertTo-JSON $Natpolicy -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Natpolicy.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestNatpolicy
        }
    }
}
Function New-AVIRestNatpolicyObject {
<#
    .SYNOPSIS
        Configure Avi NatPolicy Object API
 
    .EXAMPLE
        New-AviRestNatpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestNatpolicy')
        $result
    }
}
Function Remove-AVIRestNatpolicy {
<#
    .SYNOPSIS
        Configure Avi NatPolicy Object API
 
    .EXAMPLE
        Get-AviRestNatpolicy | Remove-AviRestNatpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Natpolicy')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Natpolicy',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNatpolicy')]$Natpolicy,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Natpolicy') {
            $uuid = $Natpolicy.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/natpolicy/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Natpolicy.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestNetwork {
<#
    .SYNOPSIS
        Configure Avi Network Object API
 
    .EXAMPLE
        Get-AviRestNetwork
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'n',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/network$Uuid" : '/api/network'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestNetwork
    }
}
Function Set-AVIRestNetwork {
<#
    .SYNOPSIS
        Configure Avi Network Object API
 
    .EXAMPLE
        $object = Get-AviRestNetwork
        $object.name = 'New name'
        Set-AviRestNetwork $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetwork')]$Network
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Network.uuid
        $global:body = ConvertTo-JSON $Network -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/network/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Network.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestNetwork
        }
    }
}
Function New-AVIRestNetwork {
<#
    .SYNOPSIS
        Configure Avi Network Object API
 
    .EXAMPLE
        New-AviRestNetwork
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetwork')]$Network
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/network"
            Body = ConvertTo-JSON $Network -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Network.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestNetwork
        }
    }
}
Function New-AVIRestNetworkObject {
<#
    .SYNOPSIS
        Configure Avi Network Object API
 
    .EXAMPLE
        New-AviRestNetwork
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestNetwork')
        $result
    }
}
Function Remove-AVIRestNetwork {
<#
    .SYNOPSIS
        Configure Avi Network Object API
 
    .EXAMPLE
        Get-AviRestNetwork | Remove-AviRestNetwork
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Network')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Network',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetwork')]$Network,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Network') {
            $uuid = $Network.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/network/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Network.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestNetworkInventory {
<#
    .SYNOPSIS
        Configure Avi NetworkInventory Object API
 
    .EXAMPLE
        Get-AviRestNetworkInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = '/networkruntime/{uuid},/vimgrnwruntime/{uuid}',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/network-inventory$Uuid" : '/api/network-inventory'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestNetworkInventory
    }
}
Function Set-AVIRestNetworkInventory {
<#
    .SYNOPSIS
        Configure Avi NetworkInventory Object API
 
    .EXAMPLE
        $object = Get-AviRestNetworkInventory
        $object.name = 'New name'
        Set-AviRestNetworkInventory $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworkInventory')]$NetworkInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $NetworkInventory.uuid
        $global:body = ConvertTo-JSON $NetworkInventory -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/network-inventory/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($NetworkInventory.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestNetworkInventory
        }
    }
}
Function Set-AVIRestNetworkruntime {
<#
    .SYNOPSIS
        Configure Avi NetworkInventory Object API
 
    .EXAMPLE
        $object = Get-AviRestNetworkruntime
        $object.name = 'New name'
        Set-AviRestNetworkruntime $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworkruntime')]$Networkruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Networkruntime.uuid
        $global:body = ConvertTo-JSON $Networkruntime -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/networkruntime/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Networkruntime.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestNetworkruntime
        }
    }
}
Function Set-AVIRestVimgrnwruntime {
<#
    .SYNOPSIS
        Configure Avi NetworkInventory Object API
 
    .EXAMPLE
        $object = Get-AviRestVimgrnwruntime
        $object.name = 'New name'
        Set-AviRestVimgrnwruntime $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrnwruntime')]$Vimgrnwruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Vimgrnwruntime.uuid
        $global:body = ConvertTo-JSON $Vimgrnwruntime -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/vimgrnwruntime/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrnwruntime.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrnwruntime
        }
    }
}
Function New-AVIRestNetworkInventory {
<#
    .SYNOPSIS
        Configure Avi NetworkInventory Object API
 
    .EXAMPLE
        New-AviRestNetworkInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworkInventory')]$NetworkInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/network-inventory"
            Body = ConvertTo-JSON $NetworkInventory -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($NetworkInventory.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestNetworkInventory
        }
    }
}
Function New-AVIRestNetworkruntime {
<#
    .SYNOPSIS
        Configure Avi NetworkInventory Object API
 
    .EXAMPLE
        New-AviRestNetworkruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworkruntime')]$Networkruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/networkruntime"
            Body = ConvertTo-JSON $Networkruntime -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Networkruntime.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestNetworkruntime
        }
    }
}
Function New-AVIRestVimgrnwruntime {
<#
    .SYNOPSIS
        Configure Avi NetworkInventory Object API
 
    .EXAMPLE
        New-AviRestVimgrnwruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrnwruntime')]$Vimgrnwruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrnwruntime"
            Body = ConvertTo-JSON $Vimgrnwruntime -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrnwruntime.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrnwruntime
        }
    }
}
Function New-AVIRestNetworkInventoryObject {
<#
    .SYNOPSIS
        Configure Avi NetworkInventory Object API
 
    .EXAMPLE
        New-AviRestNetworkInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestNetworkInventory')
        $result
    }
}
Function New-AVIRestNetworkruntimeObject {
<#
    .SYNOPSIS
        Configure Avi NetworkInventory Object API
 
    .EXAMPLE
        New-AviRestNetworkruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestNetworkruntime')
        $result
    }
}
Function New-AVIRestVimgrnwruntimeObject {
<#
    .SYNOPSIS
        Configure Avi NetworkInventory Object API
 
    .EXAMPLE
        New-AviRestVimgrnwruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVimgrnwruntime')
        $result
    }
}
Function Remove-AVIRestNetworkInventory {
<#
    .SYNOPSIS
        Configure Avi NetworkInventory Object API
 
    .EXAMPLE
        Get-AviRestNetworkInventory | Remove-AviRestNetworkInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'NetworkInventory')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'NetworkInventory',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworkInventory')]$NetworkInventory,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'NetworkInventory') {
            $uuid = $NetworkInventory.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/network-inventory/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($NetworkInventory.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestNetworkruntime {
<#
    .SYNOPSIS
        Configure Avi NetworkInventory Object API
 
    .EXAMPLE
        Get-AviRestNetworkruntime | Remove-AviRestNetworkruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Networkruntime')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Networkruntime',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworkruntime')]$Networkruntime,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Networkruntime') {
            $uuid = $Networkruntime.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/networkruntime/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Networkruntime.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestVimgrnwruntime {
<#
    .SYNOPSIS
        Configure Avi NetworkInventory Object API
 
    .EXAMPLE
        Get-AviRestVimgrnwruntime | Remove-AviRestVimgrnwruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Vimgrnwruntime')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Vimgrnwruntime',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrnwruntime')]$Vimgrnwruntime,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Vimgrnwruntime') {
            $uuid = $Vimgrnwruntime.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/vimgrnwruntime/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrnwruntime.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestNetworkprofile {
<#
    .SYNOPSIS
        Configure Avi NetworkProfile Object API
 
    .EXAMPLE
        Get-AviRestNetworkprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'runtime/internal',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/networkprofile$Uuid" : '/api/networkprofile'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestNetworkprofile
    }
}
Function Set-AVIRestNetworkprofile {
<#
    .SYNOPSIS
        Configure Avi NetworkProfile Object API
 
    .EXAMPLE
        $object = Get-AviRestNetworkprofile
        $object.name = 'New name'
        Set-AviRestNetworkprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworkprofile')]$Networkprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Networkprofile.uuid
        $global:body = ConvertTo-JSON $Networkprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/networkprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Networkprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestNetworkprofile
        }
    }
}
Function New-AVIRestNetworkprofile {
<#
    .SYNOPSIS
        Configure Avi NetworkProfile Object API
 
    .EXAMPLE
        New-AviRestNetworkprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworkprofile')]$Networkprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/networkprofile"
            Body = ConvertTo-JSON $Networkprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Networkprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestNetworkprofile
        }
    }
}
Function New-AVIRestNetworkprofileObject {
<#
    .SYNOPSIS
        Configure Avi NetworkProfile Object API
 
    .EXAMPLE
        New-AviRestNetworkprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestNetworkprofile')
        $result
    }
}
Function Remove-AVIRestNetworkprofile {
<#
    .SYNOPSIS
        Configure Avi NetworkProfile Object API
 
    .EXAMPLE
        Get-AviRestNetworkprofile | Remove-AviRestNetworkprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Networkprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Networkprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworkprofile')]$Networkprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Networkprofile') {
            $uuid = $Networkprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/networkprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Networkprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestNetworkruntime {
<#
    .SYNOPSIS
        Configure Avi NetworkRuntime Object API
 
    .EXAMPLE
        Get-AviRestNetworkruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'n',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/networkruntime$Uuid" : '/api/networkruntime'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestNetworkruntime
    }
}
Function Set-AVIRestNetworkruntime {
<#
    .SYNOPSIS
        Configure Avi NetworkRuntime Object API
 
    .EXAMPLE
        $object = Get-AviRestNetworkruntime
        $object.name = 'New name'
        Set-AviRestNetworkruntime $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworkruntime')]$Networkruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Networkruntime.uuid
        $global:body = ConvertTo-JSON $Networkruntime -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/networkruntime/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Networkruntime.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestNetworkruntime
        }
    }
}
Function New-AVIRestNetworkruntime {
<#
    .SYNOPSIS
        Configure Avi NetworkRuntime Object API
 
    .EXAMPLE
        New-AviRestNetworkruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworkruntime')]$Networkruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/networkruntime"
            Body = ConvertTo-JSON $Networkruntime -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Networkruntime.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestNetworkruntime
        }
    }
}
Function New-AVIRestNetworkruntimeObject {
<#
    .SYNOPSIS
        Configure Avi NetworkRuntime Object API
 
    .EXAMPLE
        New-AviRestNetworkruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestNetworkruntime')
        $result
    }
}
Function Remove-AVIRestNetworkruntime {
<#
    .SYNOPSIS
        Configure Avi NetworkRuntime Object API
 
    .EXAMPLE
        Get-AviRestNetworkruntime | Remove-AviRestNetworkruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Networkruntime')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Networkruntime',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworkruntime')]$Networkruntime,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Networkruntime') {
            $uuid = $Networkruntime.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/networkruntime/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Networkruntime.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestNetworksecuritypolicy {
<#
    .SYNOPSIS
        Configure Avi NetworkSecurityPolicy Object API
 
    .EXAMPLE
        Get-AviRestNetworksecuritypolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'n',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/networksecuritypolicy$Uuid" : '/api/networksecuritypolicy'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestNetworksecuritypolicy
    }
}
Function Set-AVIRestNetworksecuritypolicy {
<#
    .SYNOPSIS
        Configure Avi NetworkSecurityPolicy Object API
 
    .EXAMPLE
        $object = Get-AviRestNetworksecuritypolicy
        $object.name = 'New name'
        Set-AviRestNetworksecuritypolicy $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworksecuritypolicy')]$Networksecuritypolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Networksecuritypolicy.uuid
        $global:body = ConvertTo-JSON $Networksecuritypolicy -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/networksecuritypolicy/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Networksecuritypolicy.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestNetworksecuritypolicy
        }
    }
}
Function New-AVIRestNetworksecuritypolicy {
<#
    .SYNOPSIS
        Configure Avi NetworkSecurityPolicy Object API
 
    .EXAMPLE
        New-AviRestNetworksecuritypolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworksecuritypolicy')]$Networksecuritypolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/networksecuritypolicy"
            Body = ConvertTo-JSON $Networksecuritypolicy -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Networksecuritypolicy.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestNetworksecuritypolicy
        }
    }
}
Function New-AVIRestNetworksecuritypolicyObject {
<#
    .SYNOPSIS
        Configure Avi NetworkSecurityPolicy Object API
 
    .EXAMPLE
        New-AviRestNetworksecuritypolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestNetworksecuritypolicy')
        $result
    }
}
Function Remove-AVIRestNetworksecuritypolicy {
<#
    .SYNOPSIS
        Configure Avi NetworkSecurityPolicy Object API
 
    .EXAMPLE
        Get-AviRestNetworksecuritypolicy | Remove-AviRestNetworksecuritypolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Networksecuritypolicy')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Networksecuritypolicy',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworksecuritypolicy')]$Networksecuritypolicy,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Networksecuritypolicy') {
            $uuid = $Networksecuritypolicy.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/networksecuritypolicy/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Networksecuritypolicy.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestNetworkservice {
<#
    .SYNOPSIS
        Configure Avi NetworkService Object API
 
    .EXAMPLE
        Get-AviRestNetworkservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'n',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/networkservice$Uuid" : '/api/networkservice'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestNetworkservice
    }
}
Function Set-AVIRestNetworkservice {
<#
    .SYNOPSIS
        Configure Avi NetworkService Object API
 
    .EXAMPLE
        $object = Get-AviRestNetworkservice
        $object.name = 'New name'
        Set-AviRestNetworkservice $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworkservice')]$Networkservice
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Networkservice.uuid
        $global:body = ConvertTo-JSON $Networkservice -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/networkservice/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Networkservice.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestNetworkservice
        }
    }
}
Function New-AVIRestNetworkservice {
<#
    .SYNOPSIS
        Configure Avi NetworkService Object API
 
    .EXAMPLE
        New-AviRestNetworkservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworkservice')]$Networkservice
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/networkservice"
            Body = ConvertTo-JSON $Networkservice -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Networkservice.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestNetworkservice
        }
    }
}
Function New-AVIRestNetworkserviceObject {
<#
    .SYNOPSIS
        Configure Avi NetworkService Object API
 
    .EXAMPLE
        New-AviRestNetworkservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestNetworkservice')
        $result
    }
}
Function Remove-AVIRestNetworkservice {
<#
    .SYNOPSIS
        Configure Avi NetworkService Object API
 
    .EXAMPLE
        Get-AviRestNetworkservice | Remove-AviRestNetworkservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Networkservice')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Networkservice',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNetworkservice')]$Networkservice,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Networkservice') {
            $uuid = $Networkservice.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/networkservice/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Networkservice.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestNsxtsegmentruntime {
<#
    .SYNOPSIS
        Configure Avi NsxtSegmentRuntime Object API
 
    .EXAMPLE
        Get-AviRestNsxtsegmentruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'n',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/nsxtsegmentruntime$Uuid" : '/api/nsxtsegmentruntime'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestNsxtsegmentruntime
    }
}
Function Set-AVIRestNsxtsegmentruntime {
<#
    .SYNOPSIS
        Configure Avi NsxtSegmentRuntime Object API
 
    .EXAMPLE
        $object = Get-AviRestNsxtsegmentruntime
        $object.name = 'New name'
        Set-AviRestNsxtsegmentruntime $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNsxtsegmentruntime')]$Nsxtsegmentruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Nsxtsegmentruntime.uuid
        $global:body = ConvertTo-JSON $Nsxtsegmentruntime -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/nsxtsegmentruntime/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Nsxtsegmentruntime.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestNsxtsegmentruntime
        }
    }
}
Function New-AVIRestNsxtsegmentruntime {
<#
    .SYNOPSIS
        Configure Avi NsxtSegmentRuntime Object API
 
    .EXAMPLE
        New-AviRestNsxtsegmentruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNsxtsegmentruntime')]$Nsxtsegmentruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/nsxtsegmentruntime"
            Body = ConvertTo-JSON $Nsxtsegmentruntime -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Nsxtsegmentruntime.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestNsxtsegmentruntime
        }
    }
}
Function New-AVIRestNsxtsegmentruntimeObject {
<#
    .SYNOPSIS
        Configure Avi NsxtSegmentRuntime Object API
 
    .EXAMPLE
        New-AviRestNsxtsegmentruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestNsxtsegmentruntime')
        $result
    }
}
Function Remove-AVIRestNsxtsegmentruntime {
<#
    .SYNOPSIS
        Configure Avi NsxtSegmentRuntime Object API
 
    .EXAMPLE
        Get-AviRestNsxtsegmentruntime | Remove-AviRestNsxtsegmentruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Nsxtsegmentruntime')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Nsxtsegmentruntime',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestNsxtsegmentruntime')]$Nsxtsegmentruntime,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Nsxtsegmentruntime') {
            $uuid = $Nsxtsegmentruntime.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/nsxtsegmentruntime/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Nsxtsegmentruntime.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestObjectaccesspolicy {
<#
    .SYNOPSIS
        Configure Avi ObjectAccessPolicy Object API
 
    .EXAMPLE
        Get-AviRestObjectaccesspolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'o',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '20.1.2'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/objectaccesspolicy$Uuid" : '/api/objectaccesspolicy'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestObjectaccesspolicy
    }
}
Function Set-AVIRestObjectaccesspolicy {
<#
    .SYNOPSIS
        Configure Avi ObjectAccessPolicy Object API
 
    .EXAMPLE
        $object = Get-AviRestObjectaccesspolicy
        $object.name = 'New name'
        Set-AviRestObjectaccesspolicy $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestObjectaccesspolicy')]$Objectaccesspolicy
    )
    Begin {
        $swaggerVersion = '20.1.2'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Objectaccesspolicy.uuid
        $global:body = ConvertTo-JSON $Objectaccesspolicy -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/objectaccesspolicy/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Objectaccesspolicy.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestObjectaccesspolicy
        }
    }
}
Function New-AVIRestObjectaccesspolicy {
<#
    .SYNOPSIS
        Configure Avi ObjectAccessPolicy Object API
 
    .EXAMPLE
        New-AviRestObjectaccesspolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestObjectaccesspolicy')]$Objectaccesspolicy
    )
    Begin {
        $swaggerVersion = '20.1.2'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/objectaccesspolicy"
            Body = ConvertTo-JSON $Objectaccesspolicy -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Objectaccesspolicy.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestObjectaccesspolicy
        }
    }
}
Function New-AVIRestObjectaccesspolicyObject {
<#
    .SYNOPSIS
        Configure Avi ObjectAccessPolicy Object API
 
    .EXAMPLE
        New-AviRestObjectaccesspolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '20.1.2'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestObjectaccesspolicy')
        $result
    }
}
Function Remove-AVIRestObjectaccesspolicy {
<#
    .SYNOPSIS
        Configure Avi ObjectAccessPolicy Object API
 
    .EXAMPLE
        Get-AviRestObjectaccesspolicy | Remove-AviRestObjectaccesspolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Objectaccesspolicy')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Objectaccesspolicy',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestObjectaccesspolicy')]$Objectaccesspolicy,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '20.1.2'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Objectaccesspolicy') {
            $uuid = $Objectaccesspolicy.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/objectaccesspolicy/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Objectaccesspolicy.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestPingaccessagent {
<#
    .SYNOPSIS
        Configure Avi PingAccessAgent Object API
 
    .EXAMPLE
        Get-AviRestPingaccessagent
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'p',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/pingaccessagent$Uuid" : '/api/pingaccessagent'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestPingaccessagent
    }
}
Function Set-AVIRestPingaccessagent {
<#
    .SYNOPSIS
        Configure Avi PingAccessAgent Object API
 
    .EXAMPLE
        $object = Get-AviRestPingaccessagent
        $object.name = 'New name'
        Set-AviRestPingaccessagent $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPingaccessagent')]$Pingaccessagent
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Pingaccessagent.uuid
        $global:body = ConvertTo-JSON $Pingaccessagent -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/pingaccessagent/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Pingaccessagent.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestPingaccessagent
        }
    }
}
Function New-AVIRestPingaccessagent {
<#
    .SYNOPSIS
        Configure Avi PingAccessAgent Object API
 
    .EXAMPLE
        New-AviRestPingaccessagent
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPingaccessagent')]$Pingaccessagent
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/pingaccessagent"
            Body = ConvertTo-JSON $Pingaccessagent -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Pingaccessagent.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPingaccessagent
        }
    }
}
Function New-AVIRestPingaccessagentObject {
<#
    .SYNOPSIS
        Configure Avi PingAccessAgent Object API
 
    .EXAMPLE
        New-AviRestPingaccessagent
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestPingaccessagent')
        $result
    }
}
Function Remove-AVIRestPingaccessagent {
<#
    .SYNOPSIS
        Configure Avi PingAccessAgent Object API
 
    .EXAMPLE
        Get-AviRestPingaccessagent | Remove-AviRestPingaccessagent
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Pingaccessagent')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Pingaccessagent',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPingaccessagent')]$Pingaccessagent,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Pingaccessagent') {
            $uuid = $Pingaccessagent.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/pingaccessagent/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Pingaccessagent.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestPkiprofile {
<#
    .SYNOPSIS
        Configure Avi PKIProfile Object API
 
    .EXAMPLE
        Get-AviRestPkiprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'federated_info',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/pkiprofile$Uuid" : '/api/pkiprofile'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestPkiprofile
    }
}
Function Set-AVIRestPkiprofile {
<#
    .SYNOPSIS
        Configure Avi PKIProfile Object API
 
    .EXAMPLE
        $object = Get-AviRestPkiprofile
        $object.name = 'New name'
        Set-AviRestPkiprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPkiprofile')]$Pkiprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Pkiprofile.uuid
        $global:body = ConvertTo-JSON $Pkiprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/pkiprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Pkiprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestPkiprofile
        }
    }
}
Function New-AVIRestPkiprofile {
<#
    .SYNOPSIS
        Configure Avi PKIProfile Object API
 
    .EXAMPLE
        New-AviRestPkiprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPkiprofile')]$Pkiprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/pkiprofile"
            Body = ConvertTo-JSON $Pkiprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Pkiprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPkiprofile
        }
    }
}
Function New-AVIRestPkiprofileObject {
<#
    .SYNOPSIS
        Configure Avi PKIProfile Object API
 
    .EXAMPLE
        New-AviRestPkiprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestPkiprofile')
        $result
    }
}
Function Remove-AVIRestPkiprofile {
<#
    .SYNOPSIS
        Configure Avi PKIProfile Object API
 
    .EXAMPLE
        Get-AviRestPkiprofile | Remove-AviRestPkiprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Pkiprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Pkiprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPkiprofile')]$Pkiprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Pkiprofile') {
            $uuid = $Pkiprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/pkiprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Pkiprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestPool {
<#
    .SYNOPSIS
        Configure Avi Pool Object API
 
    .EXAMPLE
        Get-AviRestPool
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'runtime,runtime/server,runtime/detail,runtime/server/detail,runtime/internal,objsync,runtime/server/internal,runtime/debug,hmon,runtime/server/hmonstat,algo,persistence,connpool,httpcache,httpcachestats,httpcachestats/detail,vs,runtime/vs/service/server/map/kv,runtime/vs/service/server/map/table',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/pool$Uuid" : '/api/pool'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestPool
    }
}
Function Set-AVIRestPool {
<#
    .SYNOPSIS
        Configure Avi Pool Object API
 
    .EXAMPLE
        $object = Get-AviRestPool
        $object.name = 'New name'
        Set-AviRestPool $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPool')]$Pool
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Pool.uuid
        $global:body = ConvertTo-JSON $Pool -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/pool/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Pool.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestPool
        }
    }
}
Function New-AVIRestPool {
<#
    .SYNOPSIS
        Configure Avi Pool Object API
 
    .EXAMPLE
        New-AviRestPool
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPool')]$Pool
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/pool"
            Body = ConvertTo-JSON $Pool -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Pool.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPool
        }
    }
}
Function New-AVIRestPoolClear {
<#
    .SYNOPSIS
        Configure Avi Pool Object API
 
    .EXAMPLE
        New-AviRestPoolClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolClear')]$PoolClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/pool/clear"
            Body = ConvertTo-JSON $PoolClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($PoolClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolClear
        }
    }
}
Function New-AVIRestPoolObject {
<#
    .SYNOPSIS
        Configure Avi Pool Object API
 
    .EXAMPLE
        New-AviRestPool
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestPool')
        $result
    }
}
Function Invoke-AVIRestPoolScaleout {
<#
    .SYNOPSIS
        Configure Avi Pool Object API
 
    .EXAMPLE
        Invoke-AviRestPoolScaleout
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolScaleout')]$PoolScaleout
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $PoolScaleout.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/pool/${uuid}/scaleout"
            Body = ConvertTo-JSON $PoolScaleout -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($PoolScaleout.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolScaleout
        }
    }
}
Function Invoke-AVIRestPoolScalein {
<#
    .SYNOPSIS
        Configure Avi Pool Object API
 
    .EXAMPLE
        Invoke-AviRestPoolScalein
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolScalein')]$PoolScalein
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $PoolScalein.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/pool/${uuid}/scalein"
            Body = ConvertTo-JSON $PoolScalein -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($PoolScalein.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolScalein
        }
    }
}
Function Invoke-AVIRestPoolRuntimeStatsClear {
<#
    .SYNOPSIS
        Configure Avi Pool Object API
 
    .EXAMPLE
        Invoke-AviRestPoolRuntimeStatsClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolRuntimeStatsClear')]$PoolRuntimeStatsClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $PoolRuntimeStatsClear.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/pool/${uuid}/runtime/stats/clear"
            Body = ConvertTo-JSON $PoolRuntimeStatsClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($PoolRuntimeStatsClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolRuntimeStatsClear
        }
    }
}
Function Invoke-AVIRestPoolRuntimeRequest_queueClear {
<#
    .SYNOPSIS
        Configure Avi Pool Object API
 
    .EXAMPLE
        Invoke-AviRestPoolRuntimeRequest_queueClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolRuntimeRequest_queueClear')]$PoolRuntimeRequest_queueClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $PoolRuntimeRequest_queueClear.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/pool/${uuid}/runtime/request_queue/clear"
            Body = ConvertTo-JSON $PoolRuntimeRequest_queueClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($PoolRuntimeRequest_queueClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolRuntimeRequest_queueClear
        }
    }
}
Function Invoke-AVIRestPoolConnpoolstatsClear {
<#
    .SYNOPSIS
        Configure Avi Pool Object API
 
    .EXAMPLE
        Invoke-AviRestPoolConnpoolstatsClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolConnpoolstatsClear')]$PoolConnpoolstatsClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $PoolConnpoolstatsClear.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/pool/${uuid}/connpoolstats/clear"
            Body = ConvertTo-JSON $PoolConnpoolstatsClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($PoolConnpoolstatsClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolConnpoolstatsClear
        }
    }
}
Function New-AVIRestPoolScaleoutObject {
<#
    .SYNOPSIS
        Configure Avi Pool Object API
 
    .EXAMPLE
        New-AviRestPoolScaleout
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{
  "reason": "",
  "uuid": ""
}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestPoolScaleout')
        $result
    }
}
Function New-AVIRestPoolScaleinObject {
<#
    .SYNOPSIS
        Configure Avi Pool Object API
 
    .EXAMPLE
        New-AviRestPoolScalein
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{
  "reason": "",
  "servers": [
    {
      "external_uuid": "",
      "ip": {
        "addr": "",
        "type": ""
      },
      "port": 0
    }
  ],
  "uuid": ""
}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestPoolScalein')
        $result
    }
}
Function Remove-AVIRestPool {
<#
    .SYNOPSIS
        Configure Avi Pool Object API
 
    .EXAMPLE
        Get-AviRestPool | Remove-AviRestPool
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Pool')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Pool',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPool')]$Pool,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Pool') {
            $uuid = $Pool.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/pool/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Pool.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestPoolgroup {
<#
    .SYNOPSIS
        Configure Avi PoolGroup Object API
 
    .EXAMPLE
        Get-AviRestPoolgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'runtime/detail',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/poolgroup$Uuid" : '/api/poolgroup'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestPoolgroup
    }
}
Function Set-AVIRestPoolgroup {
<#
    .SYNOPSIS
        Configure Avi PoolGroup Object API
 
    .EXAMPLE
        $object = Get-AviRestPoolgroup
        $object.name = 'New name'
        Set-AviRestPoolgroup $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolgroup')]$Poolgroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Poolgroup.uuid
        $global:body = ConvertTo-JSON $Poolgroup -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/poolgroup/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Poolgroup.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolgroup
        }
    }
}
Function New-AVIRestPoolgroup {
<#
    .SYNOPSIS
        Configure Avi PoolGroup Object API
 
    .EXAMPLE
        New-AviRestPoolgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolgroup')]$Poolgroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/poolgroup"
            Body = ConvertTo-JSON $Poolgroup -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Poolgroup.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolgroup
        }
    }
}
Function New-AVIRestPoolgroupClear {
<#
    .SYNOPSIS
        Configure Avi PoolGroup Object API
 
    .EXAMPLE
        New-AviRestPoolgroupClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolgroupClear')]$PoolgroupClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/poolgroup/clear"
            Body = ConvertTo-JSON $PoolgroupClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($PoolgroupClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolgroupClear
        }
    }
}
Function New-AVIRestPoolgroupObject {
<#
    .SYNOPSIS
        Configure Avi PoolGroup Object API
 
    .EXAMPLE
        New-AviRestPoolgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestPoolgroup')
        $result
    }
}
Function Invoke-AVIRestPoolgroupEnable_primary_poolClear {
<#
    .SYNOPSIS
        Configure Avi PoolGroup Object API
 
    .EXAMPLE
        Invoke-AviRestPoolgroupEnable_primary_poolClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolgroupEnable_primary_poolClear')]$PoolgroupEnable_primary_poolClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $PoolgroupEnable_primary_poolClear.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/poolgroup/${uuid}/enable_primary_pool/clear"
            Body = ConvertTo-JSON $PoolgroupEnable_primary_poolClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($PoolgroupEnable_primary_poolClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolgroupEnable_primary_poolClear
        }
    }
}
Function Remove-AVIRestPoolgroup {
<#
    .SYNOPSIS
        Configure Avi PoolGroup Object API
 
    .EXAMPLE
        Get-AviRestPoolgroup | Remove-AviRestPoolgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Poolgroup')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Poolgroup',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolgroup')]$Poolgroup,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Poolgroup') {
            $uuid = $Poolgroup.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/poolgroup/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Poolgroup.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestPoolgroupdeploymentpolicy {
<#
    .SYNOPSIS
        Configure Avi PoolGroupDeploymentPolicy Object API
 
    .EXAMPLE
        Get-AviRestPoolgroupdeploymentpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'p',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/poolgroupdeploymentpolicy$Uuid" : '/api/poolgroupdeploymentpolicy'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestPoolgroupdeploymentpolicy
    }
}
Function Set-AVIRestPoolgroupdeploymentpolicy {
<#
    .SYNOPSIS
        Configure Avi PoolGroupDeploymentPolicy Object API
 
    .EXAMPLE
        $object = Get-AviRestPoolgroupdeploymentpolicy
        $object.name = 'New name'
        Set-AviRestPoolgroupdeploymentpolicy $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolgroupdeploymentpolicy')]$Poolgroupdeploymentpolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Poolgroupdeploymentpolicy.uuid
        $global:body = ConvertTo-JSON $Poolgroupdeploymentpolicy -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/poolgroupdeploymentpolicy/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Poolgroupdeploymentpolicy.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolgroupdeploymentpolicy
        }
    }
}
Function New-AVIRestPoolgroupdeploymentpolicy {
<#
    .SYNOPSIS
        Configure Avi PoolGroupDeploymentPolicy Object API
 
    .EXAMPLE
        New-AviRestPoolgroupdeploymentpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolgroupdeploymentpolicy')]$Poolgroupdeploymentpolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/poolgroupdeploymentpolicy"
            Body = ConvertTo-JSON $Poolgroupdeploymentpolicy -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Poolgroupdeploymentpolicy.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolgroupdeploymentpolicy
        }
    }
}
Function New-AVIRestPoolgroupdeploymentpolicyObject {
<#
    .SYNOPSIS
        Configure Avi PoolGroupDeploymentPolicy Object API
 
    .EXAMPLE
        New-AviRestPoolgroupdeploymentpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestPoolgroupdeploymentpolicy')
        $result
    }
}
Function Remove-AVIRestPoolgroupdeploymentpolicy {
<#
    .SYNOPSIS
        Configure Avi PoolGroupDeploymentPolicy Object API
 
    .EXAMPLE
        Get-AviRestPoolgroupdeploymentpolicy | Remove-AviRestPoolgroupdeploymentpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Poolgroupdeploymentpolicy')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Poolgroupdeploymentpolicy',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolgroupdeploymentpolicy')]$Poolgroupdeploymentpolicy,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Poolgroupdeploymentpolicy') {
            $uuid = $Poolgroupdeploymentpolicy.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/poolgroupdeploymentpolicy/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Poolgroupdeploymentpolicy.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestPoolgroupInventory {
<#
    .SYNOPSIS
        Configure Avi PoolGroupInventory Object API
 
    .EXAMPLE
        Get-AviRestPoolgroupInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'p',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/poolgroup-inventory$Uuid" : '/api/poolgroup-inventory'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestPoolgroupInventory
    }
}
Function Set-AVIRestPoolgroupInventory {
<#
    .SYNOPSIS
        Configure Avi PoolGroupInventory Object API
 
    .EXAMPLE
        $object = Get-AviRestPoolgroupInventory
        $object.name = 'New name'
        Set-AviRestPoolgroupInventory $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolgroupInventory')]$PoolgroupInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $PoolgroupInventory.uuid
        $global:body = ConvertTo-JSON $PoolgroupInventory -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/poolgroup-inventory/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($PoolgroupInventory.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolgroupInventory
        }
    }
}
Function New-AVIRestPoolgroupInventory {
<#
    .SYNOPSIS
        Configure Avi PoolGroupInventory Object API
 
    .EXAMPLE
        New-AviRestPoolgroupInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolgroupInventory')]$PoolgroupInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/poolgroup-inventory"
            Body = ConvertTo-JSON $PoolgroupInventory -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($PoolgroupInventory.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolgroupInventory
        }
    }
}
Function New-AVIRestPoolgroupInventoryObject {
<#
    .SYNOPSIS
        Configure Avi PoolGroupInventory Object API
 
    .EXAMPLE
        New-AviRestPoolgroupInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestPoolgroupInventory')
        $result
    }
}
Function Remove-AVIRestPoolgroupInventory {
<#
    .SYNOPSIS
        Configure Avi PoolGroupInventory Object API
 
    .EXAMPLE
        Get-AviRestPoolgroupInventory | Remove-AviRestPoolgroupInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'PoolgroupInventory')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'PoolgroupInventory',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolgroupInventory')]$PoolgroupInventory,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'PoolgroupInventory') {
            $uuid = $PoolgroupInventory.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/poolgroup-inventory/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($PoolgroupInventory.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestPoolInventory {
<#
    .SYNOPSIS
        Configure Avi PoolInventory Object API
 
    .EXAMPLE
        Get-AviRestPoolInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'p',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/pool-inventory$Uuid" : '/api/pool-inventory'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestPoolInventory
    }
}
Function Set-AVIRestPoolInventory {
<#
    .SYNOPSIS
        Configure Avi PoolInventory Object API
 
    .EXAMPLE
        $object = Get-AviRestPoolInventory
        $object.name = 'New name'
        Set-AviRestPoolInventory $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolInventory')]$PoolInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $PoolInventory.uuid
        $global:body = ConvertTo-JSON $PoolInventory -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/pool-inventory/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($PoolInventory.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolInventory
        }
    }
}
Function New-AVIRestPoolInventory {
<#
    .SYNOPSIS
        Configure Avi PoolInventory Object API
 
    .EXAMPLE
        New-AviRestPoolInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolInventory')]$PoolInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/pool-inventory"
            Body = ConvertTo-JSON $PoolInventory -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($PoolInventory.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPoolInventory
        }
    }
}
Function New-AVIRestPoolInventoryObject {
<#
    .SYNOPSIS
        Configure Avi PoolInventory Object API
 
    .EXAMPLE
        New-AviRestPoolInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestPoolInventory')
        $result
    }
}
Function Remove-AVIRestPoolInventory {
<#
    .SYNOPSIS
        Configure Avi PoolInventory Object API
 
    .EXAMPLE
        Get-AviRestPoolInventory | Remove-AviRestPoolInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'PoolInventory')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'PoolInventory',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPoolInventory')]$PoolInventory,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'PoolInventory') {
            $uuid = $PoolInventory.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/pool-inventory/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($PoolInventory.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestPortalfileupload {
<#
    .SYNOPSIS
        Configure Avi PortalFileUpload Object API
 
    .EXAMPLE
        Get-AviRestPortalfileupload
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'p',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '18.2.8'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/portalfileupload/{uuid}$Uuid" : '/api/portalfileupload/{uuid}'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestPortalfileupload
    }
}
Function Set-AVIRestPortalfileupload {
<#
    .SYNOPSIS
        Configure Avi PortalFileUpload Object API
 
    .EXAMPLE
        $object = Get-AviRestPortalfileupload
        $object.name = 'New name'
        Set-AviRestPortalfileupload $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPortalfileupload')]$Portalfileupload
    )
    Begin {
        $swaggerVersion = '18.2.8'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Portalfileupload.uuid
        $global:body = ConvertTo-JSON $Portalfileupload -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/portalfileupload/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Portalfileupload.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestPortalfileupload
        }
    }
}
Function New-AVIRestPortalfileupload {
<#
    .SYNOPSIS
        Configure Avi PortalFileUpload Object API
 
    .EXAMPLE
        New-AviRestPortalfileupload
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPortalfileupload')]$Portalfileupload
    )
    Begin {
        $swaggerVersion = '18.2.8'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/portalfileupload"
            Body = ConvertTo-JSON $Portalfileupload -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Portalfileupload.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPortalfileupload
        }
    }
}
Function New-AVIRestPortalfileuploadObject {
<#
    .SYNOPSIS
        Configure Avi PortalFileUpload Object API
 
    .EXAMPLE
        New-AviRestPortalfileupload
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '18.2.8'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestPortalfileupload')
        $result
    }
}
Function Remove-AVIRestPortalfileupload {
<#
    .SYNOPSIS
        Configure Avi PortalFileUpload Object API
 
    .EXAMPLE
        Get-AviRestPortalfileupload | Remove-AviRestPortalfileupload
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Portalfileupload')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Portalfileupload',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPortalfileupload')]$Portalfileupload,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '18.2.8'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Portalfileupload') {
            $uuid = $Portalfileupload.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/portalfileupload/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Portalfileupload.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestPrioritylabels {
<#
    .SYNOPSIS
        Configure Avi PriorityLabels Object API
 
    .EXAMPLE
        Get-AviRestPrioritylabels
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'p',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/prioritylabels$Uuid" : '/api/prioritylabels'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestPrioritylabels
    }
}
Function Set-AVIRestPrioritylabels {
<#
    .SYNOPSIS
        Configure Avi PriorityLabels Object API
 
    .EXAMPLE
        $object = Get-AviRestPrioritylabels
        $object.name = 'New name'
        Set-AviRestPrioritylabels $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPrioritylabels')]$Prioritylabels
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Prioritylabels.uuid
        $global:body = ConvertTo-JSON $Prioritylabels -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/prioritylabels/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Prioritylabels.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestPrioritylabels
        }
    }
}
Function New-AVIRestPrioritylabels {
<#
    .SYNOPSIS
        Configure Avi PriorityLabels Object API
 
    .EXAMPLE
        New-AviRestPrioritylabels
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPrioritylabels')]$Prioritylabels
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/prioritylabels"
            Body = ConvertTo-JSON $Prioritylabels -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Prioritylabels.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestPrioritylabels
        }
    }
}
Function New-AVIRestPrioritylabelsObject {
<#
    .SYNOPSIS
        Configure Avi PriorityLabels Object API
 
    .EXAMPLE
        New-AviRestPrioritylabels
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestPrioritylabels')
        $result
    }
}
Function Remove-AVIRestPrioritylabels {
<#
    .SYNOPSIS
        Configure Avi PriorityLabels Object API
 
    .EXAMPLE
        Get-AviRestPrioritylabels | Remove-AviRestPrioritylabels
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Prioritylabels')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Prioritylabels',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestPrioritylabels')]$Prioritylabels,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Prioritylabels') {
            $uuid = $Prioritylabels.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/prioritylabels/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Prioritylabels.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestProtocolparser {
<#
    .SYNOPSIS
        Configure Avi ProtocolParser Object API
 
    .EXAMPLE
        Get-AviRestProtocolparser
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'p',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/protocolparser$Uuid" : '/api/protocolparser'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestProtocolparser
    }
}
Function Set-AVIRestProtocolparser {
<#
    .SYNOPSIS
        Configure Avi ProtocolParser Object API
 
    .EXAMPLE
        $object = Get-AviRestProtocolparser
        $object.name = 'New name'
        Set-AviRestProtocolparser $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestProtocolparser')]$Protocolparser
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Protocolparser.uuid
        $global:body = ConvertTo-JSON $Protocolparser -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/protocolparser/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Protocolparser.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestProtocolparser
        }
    }
}
Function New-AVIRestProtocolparser {
<#
    .SYNOPSIS
        Configure Avi ProtocolParser Object API
 
    .EXAMPLE
        New-AviRestProtocolparser
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestProtocolparser')]$Protocolparser
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/protocolparser"
            Body = ConvertTo-JSON $Protocolparser -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Protocolparser.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestProtocolparser
        }
    }
}
Function New-AVIRestProtocolparserObject {
<#
    .SYNOPSIS
        Configure Avi ProtocolParser Object API
 
    .EXAMPLE
        New-AviRestProtocolparser
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestProtocolparser')
        $result
    }
}
Function Remove-AVIRestProtocolparser {
<#
    .SYNOPSIS
        Configure Avi ProtocolParser Object API
 
    .EXAMPLE
        Get-AviRestProtocolparser | Remove-AviRestProtocolparser
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Protocolparser')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Protocolparser',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestProtocolparser')]$Protocolparser,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Protocolparser') {
            $uuid = $Protocolparser.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/protocolparser/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Protocolparser.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestRole {
<#
    .SYNOPSIS
        Configure Avi Role Object API
 
    .EXAMPLE
        Get-AviRestRole
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'r',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/role$Uuid" : '/api/role'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestRole
    }
}
Function Set-AVIRestRole {
<#
    .SYNOPSIS
        Configure Avi Role Object API
 
    .EXAMPLE
        $object = Get-AviRestRole
        $object.name = 'New name'
        Set-AviRestRole $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestRole')]$Role
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Role.uuid
        $global:body = ConvertTo-JSON $Role -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/role/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Role.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestRole
        }
    }
}
Function New-AVIRestRole {
<#
    .SYNOPSIS
        Configure Avi Role Object API
 
    .EXAMPLE
        New-AviRestRole
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestRole')]$Role
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/role"
            Body = ConvertTo-JSON $Role -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Role.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestRole
        }
    }
}
Function New-AVIRestRoleObject {
<#
    .SYNOPSIS
        Configure Avi Role Object API
 
    .EXAMPLE
        New-AviRestRole
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestRole')
        $result
    }
}
Function Remove-AVIRestRole {
<#
    .SYNOPSIS
        Configure Avi Role Object API
 
    .EXAMPLE
        Get-AviRestRole | Remove-AviRestRole
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Role')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Role',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestRole')]$Role,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Role') {
            $uuid = $Role.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/role/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Role.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestScheduler {
<#
    .SYNOPSIS
        Configure Avi Scheduler Object API
 
    .EXAMPLE
        Get-AviRestScheduler
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 's',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/scheduler$Uuid" : '/api/scheduler'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestScheduler
    }
}
Function Set-AVIRestScheduler {
<#
    .SYNOPSIS
        Configure Avi Scheduler Object API
 
    .EXAMPLE
        $object = Get-AviRestScheduler
        $object.name = 'New name'
        Set-AviRestScheduler $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestScheduler')]$Scheduler
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Scheduler.uuid
        $global:body = ConvertTo-JSON $Scheduler -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/scheduler/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Scheduler.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestScheduler
        }
    }
}
Function New-AVIRestScheduler {
<#
    .SYNOPSIS
        Configure Avi Scheduler Object API
 
    .EXAMPLE
        New-AviRestScheduler
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestScheduler')]$Scheduler
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/scheduler"
            Body = ConvertTo-JSON $Scheduler -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Scheduler.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestScheduler
        }
    }
}
Function New-AVIRestSchedulerObject {
<#
    .SYNOPSIS
        Configure Avi Scheduler Object API
 
    .EXAMPLE
        New-AviRestScheduler
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestScheduler')
        $result
    }
}
Function Remove-AVIRestScheduler {
<#
    .SYNOPSIS
        Configure Avi Scheduler Object API
 
    .EXAMPLE
        Get-AviRestScheduler | Remove-AviRestScheduler
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Scheduler')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Scheduler',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestScheduler')]$Scheduler,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Scheduler') {
            $uuid = $Scheduler.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/scheduler/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Scheduler.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestScpoolserverstateinfo {
<#
    .SYNOPSIS
        Configure Avi SCPoolServerStateInfo Object API
 
    .EXAMPLE
        Get-AviRestScpoolserverstateinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 's',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/scpoolserverstateinfo$Uuid" : '/api/scpoolserverstateinfo'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestScpoolserverstateinfo
    }
}
Function Set-AVIRestScpoolserverstateinfo {
<#
    .SYNOPSIS
        Configure Avi SCPoolServerStateInfo Object API
 
    .EXAMPLE
        $object = Get-AviRestScpoolserverstateinfo
        $object.name = 'New name'
        Set-AviRestScpoolserverstateinfo $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestScpoolserverstateinfo')]$Scpoolserverstateinfo
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Scpoolserverstateinfo.uuid
        $global:body = ConvertTo-JSON $Scpoolserverstateinfo -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/scpoolserverstateinfo/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Scpoolserverstateinfo.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestScpoolserverstateinfo
        }
    }
}
Function New-AVIRestScpoolserverstateinfo {
<#
    .SYNOPSIS
        Configure Avi SCPoolServerStateInfo Object API
 
    .EXAMPLE
        New-AviRestScpoolserverstateinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestScpoolserverstateinfo')]$Scpoolserverstateinfo
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/scpoolserverstateinfo"
            Body = ConvertTo-JSON $Scpoolserverstateinfo -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Scpoolserverstateinfo.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestScpoolserverstateinfo
        }
    }
}
Function New-AVIRestScpoolserverstateinfoObject {
<#
    .SYNOPSIS
        Configure Avi SCPoolServerStateInfo Object API
 
    .EXAMPLE
        New-AviRestScpoolserverstateinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestScpoolserverstateinfo')
        $result
    }
}
Function Remove-AVIRestScpoolserverstateinfo {
<#
    .SYNOPSIS
        Configure Avi SCPoolServerStateInfo Object API
 
    .EXAMPLE
        Get-AviRestScpoolserverstateinfo | Remove-AviRestScpoolserverstateinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Scpoolserverstateinfo')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Scpoolserverstateinfo',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestScpoolserverstateinfo')]$Scpoolserverstateinfo,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Scpoolserverstateinfo') {
            $uuid = $Scpoolserverstateinfo.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/scpoolserverstateinfo/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Scpoolserverstateinfo.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestScvsstateinfo {
<#
    .SYNOPSIS
        Configure Avi SCVsStateInfo Object API
 
    .EXAMPLE
        Get-AviRestScvsstateinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 's',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/scvsstateinfo$Uuid" : '/api/scvsstateinfo'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestScvsstateinfo
    }
}
Function Set-AVIRestScvsstateinfo {
<#
    .SYNOPSIS
        Configure Avi SCVsStateInfo Object API
 
    .EXAMPLE
        $object = Get-AviRestScvsstateinfo
        $object.name = 'New name'
        Set-AviRestScvsstateinfo $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestScvsstateinfo')]$Scvsstateinfo
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Scvsstateinfo.uuid
        $global:body = ConvertTo-JSON $Scvsstateinfo -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/scvsstateinfo/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Scvsstateinfo.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestScvsstateinfo
        }
    }
}
Function New-AVIRestScvsstateinfo {
<#
    .SYNOPSIS
        Configure Avi SCVsStateInfo Object API
 
    .EXAMPLE
        New-AviRestScvsstateinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestScvsstateinfo')]$Scvsstateinfo
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/scvsstateinfo"
            Body = ConvertTo-JSON $Scvsstateinfo -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Scvsstateinfo.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestScvsstateinfo
        }
    }
}
Function New-AVIRestScvsstateinfoObject {
<#
    .SYNOPSIS
        Configure Avi SCVsStateInfo Object API
 
    .EXAMPLE
        New-AviRestScvsstateinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestScvsstateinfo')
        $result
    }
}
Function Remove-AVIRestScvsstateinfo {
<#
    .SYNOPSIS
        Configure Avi SCVsStateInfo Object API
 
    .EXAMPLE
        Get-AviRestScvsstateinfo | Remove-AviRestScvsstateinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Scvsstateinfo')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Scvsstateinfo',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestScvsstateinfo')]$Scvsstateinfo,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Scvsstateinfo') {
            $uuid = $Scvsstateinfo.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/scvsstateinfo/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Scvsstateinfo.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestSecurechannelavailablelocalips {
<#
    .SYNOPSIS
        Configure Avi SecureChannelAvailableLocalIPs Object API
 
    .EXAMPLE
        Get-AviRestSecurechannelavailablelocalips
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 's',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/securechannelavailablelocalips$Uuid" : '/api/securechannelavailablelocalips'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestSecurechannelavailablelocalips
    }
}
Function Set-AVIRestSecurechannelavailablelocalips {
<#
    .SYNOPSIS
        Configure Avi SecureChannelAvailableLocalIPs Object API
 
    .EXAMPLE
        $object = Get-AviRestSecurechannelavailablelocalips
        $object.name = 'New name'
        Set-AviRestSecurechannelavailablelocalips $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSecurechannelavailablelocalips')]$Securechannelavailablelocalips
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Securechannelavailablelocalips.uuid
        $global:body = ConvertTo-JSON $Securechannelavailablelocalips -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/securechannelavailablelocalips/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Securechannelavailablelocalips.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestSecurechannelavailablelocalips
        }
    }
}
Function New-AVIRestSecurechannelavailablelocalips {
<#
    .SYNOPSIS
        Configure Avi SecureChannelAvailableLocalIPs Object API
 
    .EXAMPLE
        New-AviRestSecurechannelavailablelocalips
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSecurechannelavailablelocalips')]$Securechannelavailablelocalips
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/securechannelavailablelocalips"
            Body = ConvertTo-JSON $Securechannelavailablelocalips -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Securechannelavailablelocalips.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestSecurechannelavailablelocalips
        }
    }
}
Function New-AVIRestSecurechannelavailablelocalipsObject {
<#
    .SYNOPSIS
        Configure Avi SecureChannelAvailableLocalIPs Object API
 
    .EXAMPLE
        New-AviRestSecurechannelavailablelocalips
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestSecurechannelavailablelocalips')
        $result
    }
}
Function Remove-AVIRestSecurechannelavailablelocalips {
<#
    .SYNOPSIS
        Configure Avi SecureChannelAvailableLocalIPs Object API
 
    .EXAMPLE
        Get-AviRestSecurechannelavailablelocalips | Remove-AviRestSecurechannelavailablelocalips
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Securechannelavailablelocalips')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Securechannelavailablelocalips',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSecurechannelavailablelocalips')]$Securechannelavailablelocalips,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Securechannelavailablelocalips') {
            $uuid = $Securechannelavailablelocalips.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/securechannelavailablelocalips/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Securechannelavailablelocalips.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestSecurechannelmapping {
<#
    .SYNOPSIS
        Configure Avi SecureChannelMapping Object API
 
    .EXAMPLE
        Get-AviRestSecurechannelmapping
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 's',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/securechannelmapping$Uuid" : '/api/securechannelmapping'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestSecurechannelmapping
    }
}
Function Set-AVIRestSecurechannelmapping {
<#
    .SYNOPSIS
        Configure Avi SecureChannelMapping Object API
 
    .EXAMPLE
        $object = Get-AviRestSecurechannelmapping
        $object.name = 'New name'
        Set-AviRestSecurechannelmapping $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSecurechannelmapping')]$Securechannelmapping
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Securechannelmapping.uuid
        $global:body = ConvertTo-JSON $Securechannelmapping -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/securechannelmapping/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Securechannelmapping.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestSecurechannelmapping
        }
    }
}
Function New-AVIRestSecurechannelmapping {
<#
    .SYNOPSIS
        Configure Avi SecureChannelMapping Object API
 
    .EXAMPLE
        New-AviRestSecurechannelmapping
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSecurechannelmapping')]$Securechannelmapping
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/securechannelmapping"
            Body = ConvertTo-JSON $Securechannelmapping -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Securechannelmapping.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestSecurechannelmapping
        }
    }
}
Function New-AVIRestSecurechannelmappingObject {
<#
    .SYNOPSIS
        Configure Avi SecureChannelMapping Object API
 
    .EXAMPLE
        New-AviRestSecurechannelmapping
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestSecurechannelmapping')
        $result
    }
}
Function Remove-AVIRestSecurechannelmapping {
<#
    .SYNOPSIS
        Configure Avi SecureChannelMapping Object API
 
    .EXAMPLE
        Get-AviRestSecurechannelmapping | Remove-AviRestSecurechannelmapping
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Securechannelmapping')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Securechannelmapping',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSecurechannelmapping')]$Securechannelmapping,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Securechannelmapping') {
            $uuid = $Securechannelmapping.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/securechannelmapping/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Securechannelmapping.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestSecurechanneltoken {
<#
    .SYNOPSIS
        Configure Avi SecureChannelToken Object API
 
    .EXAMPLE
        Get-AviRestSecurechanneltoken
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 's',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/securechanneltoken$Uuid" : '/api/securechanneltoken'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestSecurechanneltoken
    }
}
Function Set-AVIRestSecurechanneltoken {
<#
    .SYNOPSIS
        Configure Avi SecureChannelToken Object API
 
    .EXAMPLE
        $object = Get-AviRestSecurechanneltoken
        $object.name = 'New name'
        Set-AviRestSecurechanneltoken $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSecurechanneltoken')]$Securechanneltoken
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Securechanneltoken.uuid
        $global:body = ConvertTo-JSON $Securechanneltoken -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/securechanneltoken/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Securechanneltoken.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestSecurechanneltoken
        }
    }
}
Function New-AVIRestSecurechanneltoken {
<#
    .SYNOPSIS
        Configure Avi SecureChannelToken Object API
 
    .EXAMPLE
        New-AviRestSecurechanneltoken
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSecurechanneltoken')]$Securechanneltoken
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/securechanneltoken"
            Body = ConvertTo-JSON $Securechanneltoken -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Securechanneltoken.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestSecurechanneltoken
        }
    }
}
Function New-AVIRestSecurechanneltokenObject {
<#
    .SYNOPSIS
        Configure Avi SecureChannelToken Object API
 
    .EXAMPLE
        New-AviRestSecurechanneltoken
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestSecurechanneltoken')
        $result
    }
}
Function Remove-AVIRestSecurechanneltoken {
<#
    .SYNOPSIS
        Configure Avi SecureChannelToken Object API
 
    .EXAMPLE
        Get-AviRestSecurechanneltoken | Remove-AviRestSecurechanneltoken
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Securechanneltoken')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Securechanneltoken',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSecurechanneltoken')]$Securechanneltoken,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Securechanneltoken') {
            $uuid = $Securechanneltoken.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/securechanneltoken/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Securechanneltoken.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestSecuritymanagerdata {
<#
    .SYNOPSIS
        Configure Avi SecurityManagerData Object API
 
    .EXAMPLE
        Get-AviRestSecuritymanagerdata
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 's',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/securitymanagerdata$Uuid" : '/api/securitymanagerdata'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestSecuritymanagerdata
    }
}
Function Set-AVIRestSecuritymanagerdata {
<#
    .SYNOPSIS
        Configure Avi SecurityManagerData Object API
 
    .EXAMPLE
        $object = Get-AviRestSecuritymanagerdata
        $object.name = 'New name'
        Set-AviRestSecuritymanagerdata $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSecuritymanagerdata')]$Securitymanagerdata
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Securitymanagerdata.uuid
        $global:body = ConvertTo-JSON $Securitymanagerdata -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/securitymanagerdata/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Securitymanagerdata.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestSecuritymanagerdata
        }
    }
}
Function New-AVIRestSecuritymanagerdata {
<#
    .SYNOPSIS
        Configure Avi SecurityManagerData Object API
 
    .EXAMPLE
        New-AviRestSecuritymanagerdata
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSecuritymanagerdata')]$Securitymanagerdata
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/securitymanagerdata"
            Body = ConvertTo-JSON $Securitymanagerdata -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Securitymanagerdata.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestSecuritymanagerdata
        }
    }
}
Function New-AVIRestSecuritymanagerdataObject {
<#
    .SYNOPSIS
        Configure Avi SecurityManagerData Object API
 
    .EXAMPLE
        New-AviRestSecuritymanagerdata
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestSecuritymanagerdata')
        $result
    }
}
Function Remove-AVIRestSecuritymanagerdata {
<#
    .SYNOPSIS
        Configure Avi SecurityManagerData Object API
 
    .EXAMPLE
        Get-AviRestSecuritymanagerdata | Remove-AviRestSecuritymanagerdata
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Securitymanagerdata')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Securitymanagerdata',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSecuritymanagerdata')]$Securitymanagerdata,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Securitymanagerdata') {
            $uuid = $Securitymanagerdata.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/securitymanagerdata/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Securitymanagerdata.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestSecuritypolicy {
<#
    .SYNOPSIS
        Configure Avi SecurityPolicy Object API
 
    .EXAMPLE
        Get-AviRestSecuritypolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 's',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/securitypolicy$Uuid" : '/api/securitypolicy'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestSecuritypolicy
    }
}
Function Set-AVIRestSecuritypolicy {
<#
    .SYNOPSIS
        Configure Avi SecurityPolicy Object API
 
    .EXAMPLE
        $object = Get-AviRestSecuritypolicy
        $object.name = 'New name'
        Set-AviRestSecuritypolicy $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSecuritypolicy')]$Securitypolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Securitypolicy.uuid
        $global:body = ConvertTo-JSON $Securitypolicy -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/securitypolicy/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Securitypolicy.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestSecuritypolicy
        }
    }
}
Function New-AVIRestSecuritypolicy {
<#
    .SYNOPSIS
        Configure Avi SecurityPolicy Object API
 
    .EXAMPLE
        New-AviRestSecuritypolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSecuritypolicy')]$Securitypolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/securitypolicy"
            Body = ConvertTo-JSON $Securitypolicy -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Securitypolicy.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestSecuritypolicy
        }
    }
}
Function New-AVIRestSecuritypolicyObject {
<#
    .SYNOPSIS
        Configure Avi SecurityPolicy Object API
 
    .EXAMPLE
        New-AviRestSecuritypolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestSecuritypolicy')
        $result
    }
}
Function Remove-AVIRestSecuritypolicy {
<#
    .SYNOPSIS
        Configure Avi SecurityPolicy Object API
 
    .EXAMPLE
        Get-AviRestSecuritypolicy | Remove-AviRestSecuritypolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Securitypolicy')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Securitypolicy',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSecuritypolicy')]$Securitypolicy,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Securitypolicy') {
            $uuid = $Securitypolicy.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/securitypolicy/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Securitypolicy.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestSeproperties {
<#
    .SYNOPSIS
        Configure Avi SeProperties Object API
 
    .EXAMPLE
        Get-AviRestSeproperties
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = '',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/$Uuid" : '/api/'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestSeproperties
    }
}
Function Set-AVIRestSeproperties {
<#
    .SYNOPSIS
        Configure Avi SeProperties Object API
 
    .EXAMPLE
        $object = Get-AviRestSeproperties
        $object.name = 'New name'
        Set-AviRestSeproperties $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSeproperties')]$Seproperties
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Seproperties.uuid
        $global:body = ConvertTo-JSON $Seproperties -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/seproperties"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Seproperties.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestSeproperties
        }
    }
}
Function Get-AVIRestServerautoscalepolicy {
<#
    .SYNOPSIS
        Configure Avi ServerAutoScalePolicy Object API
 
    .EXAMPLE
        Get-AviRestServerautoscalepolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 's',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/serverautoscalepolicy$Uuid" : '/api/serverautoscalepolicy'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestServerautoscalepolicy
    }
}
Function Set-AVIRestServerautoscalepolicy {
<#
    .SYNOPSIS
        Configure Avi ServerAutoScalePolicy Object API
 
    .EXAMPLE
        $object = Get-AviRestServerautoscalepolicy
        $object.name = 'New name'
        Set-AviRestServerautoscalepolicy $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServerautoscalepolicy')]$Serverautoscalepolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Serverautoscalepolicy.uuid
        $global:body = ConvertTo-JSON $Serverautoscalepolicy -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/serverautoscalepolicy/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Serverautoscalepolicy.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestServerautoscalepolicy
        }
    }
}
Function New-AVIRestServerautoscalepolicy {
<#
    .SYNOPSIS
        Configure Avi ServerAutoScalePolicy Object API
 
    .EXAMPLE
        New-AviRestServerautoscalepolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServerautoscalepolicy')]$Serverautoscalepolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serverautoscalepolicy"
            Body = ConvertTo-JSON $Serverautoscalepolicy -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Serverautoscalepolicy.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServerautoscalepolicy
        }
    }
}
Function New-AVIRestServerautoscalepolicyObject {
<#
    .SYNOPSIS
        Configure Avi ServerAutoScalePolicy Object API
 
    .EXAMPLE
        New-AviRestServerautoscalepolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServerautoscalepolicy')
        $result
    }
}
Function Remove-AVIRestServerautoscalepolicy {
<#
    .SYNOPSIS
        Configure Avi ServerAutoScalePolicy Object API
 
    .EXAMPLE
        Get-AviRestServerautoscalepolicy | Remove-AviRestServerautoscalepolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Serverautoscalepolicy')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Serverautoscalepolicy',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServerautoscalepolicy')]$Serverautoscalepolicy,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Serverautoscalepolicy') {
            $uuid = $Serverautoscalepolicy.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/serverautoscalepolicy/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Serverautoscalepolicy.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestServiceengine {
<#
    .SYNOPSIS
        Configure Avi ServiceEngine Object API
 
    .EXAMPLE
        Get-AviRestServiceengine
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'runtime,runtime/detail,internal,ipstat,arpstat,icmpstat,mbufstats,mallocstats,shmallocstats,seassertstats/dp,seassertstats/ag,sevshbstats,sevssplacement,cpu,cpu/detail,meminfo,interface,bgp,bgp/debug,bgp/advertised_routes,bgp/peer_status,bgp/peer_info,bgp/running_config,bgp/peer_state,bfd/running_config,bfd/session_status,interfacesummary,interface/lacp,lldp,route,ip6route,arptable,httpstats,seruminsertionstats,selogstats,seauthstats,vnicdb,vnicdbhistory,graphdb,seagent,resourcemap,consistenthash,appmap,shardclientevents,rteringstat,sehmprobedisable,flowtablestat,flowtable,vshash,flowtable_remote,tcp-flows,sctp-flows,tcp-flows/detail,sctp-flows/detail,metrics,metrics/detail,metrics/debug,metrics/debug/summary,dosstat,memdist,placement,reservedvs,microservice,ndtable,ip6stat,icmp6stat,natstat,nat-flows,network-service,natpolicystats,ratelimiting/rl/internal,ratelimiting/msf/internal,routestat,route-flows,objsync,resolverdb,resolverdbsummary,botuacacheruntime,botuacachestatsruntime,placement/summary,placement/detail,adaptiveevents',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/serviceengine$Uuid" : '/api/serviceengine'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestServiceengine
    }
}
Function Set-AVIRestServiceengine {
<#
    .SYNOPSIS
        Configure Avi ServiceEngine Object API
 
    .EXAMPLE
        $object = Get-AviRestServiceengine
        $object.name = 'New name'
        Set-AviRestServiceengine $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengine')]$Serviceengine
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Serviceengine.uuid
        $global:body = ConvertTo-JSON $Serviceengine -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/serviceengine/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Serviceengine.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengine
        }
    }
}
Function New-AVIRestServiceengine {
<#
    .SYNOPSIS
        Configure Avi ServiceEngine Object API
 
    .EXAMPLE
        New-AviRestServiceengine
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengine')]$Serviceengine
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceengine"
            Body = ConvertTo-JSON $Serviceengine -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Serviceengine.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengine
        }
    }
}
Function New-AVIRestServiceengineClear {
<#
    .SYNOPSIS
        Configure Avi ServiceEngine Object API
 
    .EXAMPLE
        New-AviRestServiceengineClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengineClear')]$ServiceengineClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceengine/clear"
            Body = ConvertTo-JSON $ServiceengineClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceengineClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengineClear
        }
    }
}
Function New-AVIRestServiceengineObject {
<#
    .SYNOPSIS
        Configure Avi ServiceEngine Object API
 
    .EXAMPLE
        New-AviRestServiceengine
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceengine')
        $result
    }
}
Function New-AVIRestServiceengineClearObject {
<#
    .SYNOPSIS
        Configure Avi ServiceEngine Object API
 
    .EXAMPLE
        New-AviRestServiceengineClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{
  "se_uuid": ""
}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceengineClear')
        $result
    }
}
Function Invoke-AVIRestServiceengineReboot {
<#
    .SYNOPSIS
        Configure Avi ServiceEngine Object API
 
    .EXAMPLE
        Invoke-AviRestServiceengineReboot
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengineReboot')]$ServiceengineReboot
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $ServiceengineReboot.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceengine/${uuid}/reboot"
            Body = ConvertTo-JSON $ServiceengineReboot -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceengineReboot.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengineReboot
        }
    }
}
Function Invoke-AVIRestServiceengineForcedelete {
<#
    .SYNOPSIS
        Configure Avi ServiceEngine Object API
 
    .EXAMPLE
        Invoke-AviRestServiceengineForcedelete
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengineForcedelete')]$ServiceengineForcedelete
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $ServiceengineForcedelete.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceengine/${uuid}/forcedelete"
            Body = ConvertTo-JSON $ServiceengineForcedelete -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceengineForcedelete.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengineForcedelete
        }
    }
}
Function Invoke-AVIRestServiceengineSwitchover {
<#
    .SYNOPSIS
        Configure Avi ServiceEngine Object API
 
    .EXAMPLE
        Invoke-AviRestServiceengineSwitchover
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengineSwitchover')]$ServiceengineSwitchover
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $ServiceengineSwitchover.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceengine/${uuid}/switchover"
            Body = ConvertTo-JSON $ServiceengineSwitchover -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceengineSwitchover.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengineSwitchover
        }
    }
}
Function Invoke-AVIRestServiceengineFaultinjectExhaust_mbufClear {
<#
    .SYNOPSIS
        Configure Avi ServiceEngine Object API
 
    .EXAMPLE
        Invoke-AviRestServiceengineFaultinjectExhaust_mbufClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengineFaultinjectExhaust_mbufClear')]$ServiceengineFaultinjectExhaust_mbufClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $ServiceengineFaultinjectExhaust_mbufClear.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceengine/${uuid}/faultinject/exhaust_mbuf/clear"
            Body = ConvertTo-JSON $ServiceengineFaultinjectExhaust_mbufClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceengineFaultinjectExhaust_mbufClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengineFaultinjectExhaust_mbufClear
        }
    }
}
Function Invoke-AVIRestServiceengineFaultinjectExhaust_mclClear {
<#
    .SYNOPSIS
        Configure Avi ServiceEngine Object API
 
    .EXAMPLE
        Invoke-AviRestServiceengineFaultinjectExhaust_mclClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengineFaultinjectExhaust_mclClear')]$ServiceengineFaultinjectExhaust_mclClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $ServiceengineFaultinjectExhaust_mclClear.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceengine/${uuid}/faultinject/exhaust_mcl/clear"
            Body = ConvertTo-JSON $ServiceengineFaultinjectExhaust_mclClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceengineFaultinjectExhaust_mclClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengineFaultinjectExhaust_mclClear
        }
    }
}
Function Invoke-AVIRestServiceengineFaultinjectExhaust_mcl_smallClear {
<#
    .SYNOPSIS
        Configure Avi ServiceEngine Object API
 
    .EXAMPLE
        Invoke-AviRestServiceengineFaultinjectExhaust_mcl_smallClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengineFaultinjectExhaust_mcl_smallClear')]$ServiceengineFaultinjectExhaust_mcl_smallClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $ServiceengineFaultinjectExhaust_mcl_smallClear.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceengine/${uuid}/faultinject/exhaust_mcl_small/clear"
            Body = ConvertTo-JSON $ServiceengineFaultinjectExhaust_mcl_smallClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceengineFaultinjectExhaust_mcl_smallClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengineFaultinjectExhaust_mcl_smallClear
        }
    }
}
Function Invoke-AVIRestServiceengineFaultinjectExhaust_connClear {
<#
    .SYNOPSIS
        Configure Avi ServiceEngine Object API
 
    .EXAMPLE
        Invoke-AviRestServiceengineFaultinjectExhaust_connClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengineFaultinjectExhaust_connClear')]$ServiceengineFaultinjectExhaust_connClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $ServiceengineFaultinjectExhaust_connClear.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceengine/${uuid}/faultinject/exhaust_conn/clear"
            Body = ConvertTo-JSON $ServiceengineFaultinjectExhaust_connClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceengineFaultinjectExhaust_connClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengineFaultinjectExhaust_connClear
        }
    }
}
Function Invoke-AVIRestServiceengineFaultinjectExhaust_shm_connClear {
<#
    .SYNOPSIS
        Configure Avi ServiceEngine Object API
 
    .EXAMPLE
        Invoke-AviRestServiceengineFaultinjectExhaust_shm_connClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengineFaultinjectExhaust_shm_connClear')]$ServiceengineFaultinjectExhaust_shm_connClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $ServiceengineFaultinjectExhaust_shm_connClear.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceengine/${uuid}/faultinject/exhaust_shm_conn/clear"
            Body = ConvertTo-JSON $ServiceengineFaultinjectExhaust_shm_connClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceengineFaultinjectExhaust_shm_connClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengineFaultinjectExhaust_shm_connClear
        }
    }
}
Function Invoke-AVIRestServiceengineFaultinjectExhaust_cfgClear {
<#
    .SYNOPSIS
        Configure Avi ServiceEngine Object API
 
    .EXAMPLE
        Invoke-AviRestServiceengineFaultinjectExhaust_cfgClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengineFaultinjectExhaust_cfgClear')]$ServiceengineFaultinjectExhaust_cfgClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $ServiceengineFaultinjectExhaust_cfgClear.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceengine/${uuid}/faultinject/exhaust_cfg/clear"
            Body = ConvertTo-JSON $ServiceengineFaultinjectExhaust_cfgClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceengineFaultinjectExhaust_cfgClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengineFaultinjectExhaust_cfgClear
        }
    }
}
Function Invoke-AVIRestServiceengineFaultinjectExhaust_shm_cfgClear {
<#
    .SYNOPSIS
        Configure Avi ServiceEngine Object API
 
    .EXAMPLE
        Invoke-AviRestServiceengineFaultinjectExhaust_shm_cfgClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengineFaultinjectExhaust_shm_cfgClear')]$ServiceengineFaultinjectExhaust_shm_cfgClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $ServiceengineFaultinjectExhaust_shm_cfgClear.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceengine/${uuid}/faultinject/exhaust_shm_cfg/clear"
            Body = ConvertTo-JSON $ServiceengineFaultinjectExhaust_shm_cfgClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceengineFaultinjectExhaust_shm_cfgClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengineFaultinjectExhaust_shm_cfgClear
        }
    }
}
Function Invoke-AVIRestServiceengineFaultinjectSefaultClear {
<#
    .SYNOPSIS
        Configure Avi ServiceEngine Object API
 
    .EXAMPLE
        Invoke-AviRestServiceengineFaultinjectSefaultClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengineFaultinjectSefaultClear')]$ServiceengineFaultinjectSefaultClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $ServiceengineFaultinjectSefaultClear.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceengine/${uuid}/faultinject/sefault/clear"
            Body = ConvertTo-JSON $ServiceengineFaultinjectSefaultClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceengineFaultinjectSefaultClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengineFaultinjectSefaultClear
        }
    }
}
Function New-AVIRestServiceengineFaultinjectExhaust_mbufClearObject {
<#
    .SYNOPSIS
        Configure Avi ServiceEngine Object API
 
    .EXAMPLE
        New-AviRestServiceengineFaultinjectExhaust_mbufClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{
  "se_uuid": ""
}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceengineFaultinjectExhaust_mbufClear')
        $result
    }
}
Function New-AVIRestServiceengineFaultinjectExhaust_mclClearObject {
<#
    .SYNOPSIS
        Configure Avi ServiceEngine Object API
 
    .EXAMPLE
        New-AviRestServiceengineFaultinjectExhaust_mclClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{
  "se_uuid": ""
}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceengineFaultinjectExhaust_mclClear')
        $result
    }
}
Function New-AVIRestServiceengineFaultinjectExhaust_mcl_smallClearObject {
<#
    .SYNOPSIS
        Configure Avi ServiceEngine Object API
 
    .EXAMPLE
        New-AviRestServiceengineFaultinjectExhaust_mcl_smallClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{
  "se_uuid": ""
}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceengineFaultinjectExhaust_mcl_smallClear')
        $result
    }
}
Function New-AVIRestServiceengineFaultinjectExhaust_connClearObject {
<#
    .SYNOPSIS
        Configure Avi ServiceEngine Object API
 
    .EXAMPLE
        New-AviRestServiceengineFaultinjectExhaust_connClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{
  "se_uuid": ""
}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceengineFaultinjectExhaust_connClear')
        $result
    }
}
Function New-AVIRestServiceengineFaultinjectExhaust_shm_connClearObject {
<#
    .SYNOPSIS
        Configure Avi ServiceEngine Object API
 
    .EXAMPLE
        New-AviRestServiceengineFaultinjectExhaust_shm_connClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{
  "se_uuid": ""
}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceengineFaultinjectExhaust_shm_connClear')
        $result
    }
}
Function New-AVIRestServiceengineFaultinjectExhaust_cfgClearObject {
<#
    .SYNOPSIS
        Configure Avi ServiceEngine Object API
 
    .EXAMPLE
        New-AviRestServiceengineFaultinjectExhaust_cfgClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{
  "se_uuid": ""
}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceengineFaultinjectExhaust_cfgClear')
        $result
    }
}
Function New-AVIRestServiceengineFaultinjectExhaust_shm_cfgClearObject {
<#
    .SYNOPSIS
        Configure Avi ServiceEngine Object API
 
    .EXAMPLE
        New-AviRestServiceengineFaultinjectExhaust_shm_cfgClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{
  "se_uuid": ""
}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceengineFaultinjectExhaust_shm_cfgClear')
        $result
    }
}
Function New-AVIRestServiceengineFaultinjectSefaultClearObject {
<#
    .SYNOPSIS
        Configure Avi ServiceEngine Object API
 
    .EXAMPLE
        New-AviRestServiceengineFaultinjectSefaultClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{
  "se_uuid": ""
}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceengineFaultinjectSefaultClear')
        $result
    }
}
Function Remove-AVIRestServiceengine {
<#
    .SYNOPSIS
        Configure Avi ServiceEngine Object API
 
    .EXAMPLE
        Get-AviRestServiceengine | Remove-AviRestServiceengine
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Serviceengine')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Serviceengine',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengine')]$Serviceengine,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Serviceengine') {
            $uuid = $Serviceengine.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/serviceengine/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Serviceengine.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestServiceenginegroup {
<#
    .SYNOPSIS
        Configure Avi ServiceEngineGroup Object API
 
    .EXAMPLE
        Get-AviRestServiceenginegroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'runtime,placement/summary,placement/detail,placement/ineligible',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/serviceenginegroup$Uuid" : '/api/serviceenginegroup'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestServiceenginegroup
    }
}
Function Set-AVIRestServiceenginegroup {
<#
    .SYNOPSIS
        Configure Avi ServiceEngineGroup Object API
 
    .EXAMPLE
        $object = Get-AviRestServiceenginegroup
        $object.name = 'New name'
        Set-AviRestServiceenginegroup $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceenginegroup')]$Serviceenginegroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Serviceenginegroup.uuid
        $global:body = ConvertTo-JSON $Serviceenginegroup -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/serviceenginegroup/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Serviceenginegroup.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceenginegroup
        }
    }
}
Function New-AVIRestServiceenginegroup {
<#
    .SYNOPSIS
        Configure Avi ServiceEngineGroup Object API
 
    .EXAMPLE
        New-AviRestServiceenginegroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceenginegroup')]$Serviceenginegroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceenginegroup"
            Body = ConvertTo-JSON $Serviceenginegroup -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Serviceenginegroup.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceenginegroup
        }
    }
}
Function New-AVIRestServiceenginegroupClear {
<#
    .SYNOPSIS
        Configure Avi ServiceEngineGroup Object API
 
    .EXAMPLE
        New-AviRestServiceenginegroupClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceenginegroupClear')]$ServiceenginegroupClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceenginegroup/clear"
            Body = ConvertTo-JSON $ServiceenginegroupClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceenginegroupClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceenginegroupClear
        }
    }
}
Function New-AVIRestServiceenginegroupObject {
<#
    .SYNOPSIS
        Configure Avi ServiceEngineGroup Object API
 
    .EXAMPLE
        New-AviRestServiceenginegroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceenginegroup')
        $result
    }
}
Function Invoke-AVIRestServiceenginegroupRedistribute {
<#
    .SYNOPSIS
        Configure Avi ServiceEngineGroup Object API
 
    .EXAMPLE
        Invoke-AviRestServiceenginegroupRedistribute
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceenginegroupRedistribute')]$ServiceenginegroupRedistribute
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $ServiceenginegroupRedistribute.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceenginegroup/${uuid}/redistribute"
            Body = ConvertTo-JSON $ServiceenginegroupRedistribute -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceenginegroupRedistribute.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceenginegroupRedistribute
        }
    }
}
Function Remove-AVIRestServiceenginegroup {
<#
    .SYNOPSIS
        Configure Avi ServiceEngineGroup Object API
 
    .EXAMPLE
        Get-AviRestServiceenginegroup | Remove-AviRestServiceenginegroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Serviceenginegroup')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Serviceenginegroup',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceenginegroup')]$Serviceenginegroup,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Serviceenginegroup') {
            $uuid = $Serviceenginegroup.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/serviceenginegroup/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Serviceenginegroup.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestServiceenginegroupInventory {
<#
    .SYNOPSIS
        Configure Avi ServiceEngineGroupInventory Object API
 
    .EXAMPLE
        Get-AviRestServiceenginegroupInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = '/upgradestatussummary/{uuid},/serviceenginegroup/{uuid}',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/serviceenginegroup-inventory$Uuid" : '/api/serviceenginegroup-inventory'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestServiceenginegroupInventory
    }
}
Function Set-AVIRestServiceenginegroupInventory {
<#
    .SYNOPSIS
        Configure Avi ServiceEngineGroupInventory Object API
 
    .EXAMPLE
        $object = Get-AviRestServiceenginegroupInventory
        $object.name = 'New name'
        Set-AviRestServiceenginegroupInventory $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceenginegroupInventory')]$ServiceenginegroupInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $ServiceenginegroupInventory.uuid
        $global:body = ConvertTo-JSON $ServiceenginegroupInventory -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/serviceenginegroup-inventory/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($ServiceenginegroupInventory.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceenginegroupInventory
        }
    }
}
Function Set-AVIRestUpgradestatussummary {
<#
    .SYNOPSIS
        Configure Avi ServiceEngineGroupInventory Object API
 
    .EXAMPLE
        $object = Get-AviRestUpgradestatussummary
        $object.name = 'New name'
        Set-AviRestUpgradestatussummary $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUpgradestatussummary')]$Upgradestatussummary
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Upgradestatussummary.uuid
        $global:body = ConvertTo-JSON $Upgradestatussummary -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/upgradestatussummary/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Upgradestatussummary.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestUpgradestatussummary
        }
    }
}
Function Set-AVIRestServiceenginegroup {
<#
    .SYNOPSIS
        Configure Avi ServiceEngineGroupInventory Object API
 
    .EXAMPLE
        $object = Get-AviRestServiceenginegroup
        $object.name = 'New name'
        Set-AviRestServiceenginegroup $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceenginegroup')]$Serviceenginegroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Serviceenginegroup.uuid
        $global:body = ConvertTo-JSON $Serviceenginegroup -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/serviceenginegroup/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Serviceenginegroup.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceenginegroup
        }
    }
}
Function New-AVIRestServiceenginegroupInventory {
<#
    .SYNOPSIS
        Configure Avi ServiceEngineGroupInventory Object API
 
    .EXAMPLE
        New-AviRestServiceenginegroupInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceenginegroupInventory')]$ServiceenginegroupInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceenginegroup-inventory"
            Body = ConvertTo-JSON $ServiceenginegroupInventory -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceenginegroupInventory.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceenginegroupInventory
        }
    }
}
Function New-AVIRestUpgradestatussummary {
<#
    .SYNOPSIS
        Configure Avi ServiceEngineGroupInventory Object API
 
    .EXAMPLE
        New-AviRestUpgradestatussummary
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUpgradestatussummary')]$Upgradestatussummary
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/upgradestatussummary"
            Body = ConvertTo-JSON $Upgradestatussummary -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Upgradestatussummary.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestUpgradestatussummary
        }
    }
}
Function New-AVIRestServiceenginegroup {
<#
    .SYNOPSIS
        Configure Avi ServiceEngineGroupInventory Object API
 
    .EXAMPLE
        New-AviRestServiceenginegroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceenginegroup')]$Serviceenginegroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceenginegroup"
            Body = ConvertTo-JSON $Serviceenginegroup -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Serviceenginegroup.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceenginegroup
        }
    }
}
Function New-AVIRestServiceenginegroupInventoryObject {
<#
    .SYNOPSIS
        Configure Avi ServiceEngineGroupInventory Object API
 
    .EXAMPLE
        New-AviRestServiceenginegroupInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceenginegroupInventory')
        $result
    }
}
Function New-AVIRestUpgradestatussummaryObject {
<#
    .SYNOPSIS
        Configure Avi ServiceEngineGroupInventory Object API
 
    .EXAMPLE
        New-AviRestUpgradestatussummary
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestUpgradestatussummary')
        $result
    }
}
Function New-AVIRestServiceenginegroupObject {
<#
    .SYNOPSIS
        Configure Avi ServiceEngineGroupInventory Object API
 
    .EXAMPLE
        New-AviRestServiceenginegroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceenginegroup')
        $result
    }
}
Function Remove-AVIRestServiceenginegroupInventory {
<#
    .SYNOPSIS
        Configure Avi ServiceEngineGroupInventory Object API
 
    .EXAMPLE
        Get-AviRestServiceenginegroupInventory | Remove-AviRestServiceenginegroupInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'ServiceenginegroupInventory')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'ServiceenginegroupInventory',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceenginegroupInventory')]$ServiceenginegroupInventory,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'ServiceenginegroupInventory') {
            $uuid = $ServiceenginegroupInventory.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/serviceenginegroup-inventory/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($ServiceenginegroupInventory.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestUpgradestatussummary {
<#
    .SYNOPSIS
        Configure Avi ServiceEngineGroupInventory Object API
 
    .EXAMPLE
        Get-AviRestUpgradestatussummary | Remove-AviRestUpgradestatussummary
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Upgradestatussummary')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Upgradestatussummary',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUpgradestatussummary')]$Upgradestatussummary,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Upgradestatussummary') {
            $uuid = $Upgradestatussummary.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/upgradestatussummary/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Upgradestatussummary.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Remove-AVIRestServiceenginegroup {
<#
    .SYNOPSIS
        Configure Avi ServiceEngineGroupInventory Object API
 
    .EXAMPLE
        Get-AviRestServiceenginegroup | Remove-AviRestServiceenginegroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Serviceenginegroup')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Serviceenginegroup',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceenginegroup')]$Serviceenginegroup,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Serviceenginegroup') {
            $uuid = $Serviceenginegroup.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/serviceenginegroup/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Serviceenginegroup.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestServiceengineInventory {
<#
    .SYNOPSIS
        Configure Avi ServiceEngineInventory Object API
 
    .EXAMPLE
        Get-AviRestServiceengineInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 's',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/serviceengine-inventory$Uuid" : '/api/serviceengine-inventory'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestServiceengineInventory
    }
}
Function Set-AVIRestServiceengineInventory {
<#
    .SYNOPSIS
        Configure Avi ServiceEngineInventory Object API
 
    .EXAMPLE
        $object = Get-AviRestServiceengineInventory
        $object.name = 'New name'
        Set-AviRestServiceengineInventory $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengineInventory')]$ServiceengineInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $ServiceengineInventory.uuid
        $global:body = ConvertTo-JSON $ServiceengineInventory -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/serviceengine-inventory/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($ServiceengineInventory.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengineInventory
        }
    }
}
Function New-AVIRestServiceengineInventory {
<#
    .SYNOPSIS
        Configure Avi ServiceEngineInventory Object API
 
    .EXAMPLE
        New-AviRestServiceengineInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengineInventory')]$ServiceengineInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceengine-inventory"
            Body = ConvertTo-JSON $ServiceengineInventory -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($ServiceengineInventory.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceengineInventory
        }
    }
}
Function New-AVIRestServiceengineInventoryObject {
<#
    .SYNOPSIS
        Configure Avi ServiceEngineInventory Object API
 
    .EXAMPLE
        New-AviRestServiceengineInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceengineInventory')
        $result
    }
}
Function Remove-AVIRestServiceengineInventory {
<#
    .SYNOPSIS
        Configure Avi ServiceEngineInventory Object API
 
    .EXAMPLE
        Get-AviRestServiceengineInventory | Remove-AviRestServiceengineInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'ServiceengineInventory')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'ServiceengineInventory',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceengineInventory')]$ServiceengineInventory,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'ServiceengineInventory') {
            $uuid = $ServiceengineInventory.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/serviceengine-inventory/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($ServiceengineInventory.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestServiceenginepolicy {
<#
    .SYNOPSIS
        Configure Avi ServiceEnginePolicy Object API
 
    .EXAMPLE
        Get-AviRestServiceenginepolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 's',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '18.2.4'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/serviceenginepolicy/{uuid}$Uuid" : '/api/serviceenginepolicy/{uuid}'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestServiceenginepolicy
    }
}
Function Set-AVIRestServiceenginepolicy {
<#
    .SYNOPSIS
        Configure Avi ServiceEnginePolicy Object API
 
    .EXAMPLE
        $object = Get-AviRestServiceenginepolicy
        $object.name = 'New name'
        Set-AviRestServiceenginepolicy $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceenginepolicy')]$Serviceenginepolicy
    )
    Begin {
        $swaggerVersion = '18.2.4'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Serviceenginepolicy.uuid
        $global:body = ConvertTo-JSON $Serviceenginepolicy -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/serviceenginepolicy/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Serviceenginepolicy.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceenginepolicy
        }
    }
}
Function New-AVIRestServiceenginepolicy {
<#
    .SYNOPSIS
        Configure Avi ServiceEnginePolicy Object API
 
    .EXAMPLE
        New-AviRestServiceenginepolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceenginepolicy')]$Serviceenginepolicy
    )
    Begin {
        $swaggerVersion = '18.2.4'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/serviceenginepolicy"
            Body = ConvertTo-JSON $Serviceenginepolicy -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Serviceenginepolicy.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestServiceenginepolicy
        }
    }
}
Function New-AVIRestServiceenginepolicyObject {
<#
    .SYNOPSIS
        Configure Avi ServiceEnginePolicy Object API
 
    .EXAMPLE
        New-AviRestServiceenginepolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '18.2.4'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestServiceenginepolicy')
        $result
    }
}
Function Remove-AVIRestServiceenginepolicy {
<#
    .SYNOPSIS
        Configure Avi ServiceEnginePolicy Object API
 
    .EXAMPLE
        Get-AviRestServiceenginepolicy | Remove-AviRestServiceenginepolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Serviceenginepolicy')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Serviceenginepolicy',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestServiceenginepolicy')]$Serviceenginepolicy,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '18.2.4'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Serviceenginepolicy') {
            $uuid = $Serviceenginepolicy.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/serviceenginepolicy/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Serviceenginepolicy.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestSiteversion {
<#
    .SYNOPSIS
        Configure Avi SiteVersion Object API
 
    .EXAMPLE
        Get-AviRestSiteversion
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 's',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/siteversion$Uuid" : '/api/siteversion'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestSiteversion
    }
}
Function Set-AVIRestSiteversion {
<#
    .SYNOPSIS
        Configure Avi SiteVersion Object API
 
    .EXAMPLE
        $object = Get-AviRestSiteversion
        $object.name = 'New name'
        Set-AviRestSiteversion $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSiteversion')]$Siteversion
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Siteversion.uuid
        $global:body = ConvertTo-JSON $Siteversion -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/siteversion/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Siteversion.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestSiteversion
        }
    }
}
Function New-AVIRestSiteversion {
<#
    .SYNOPSIS
        Configure Avi SiteVersion Object API
 
    .EXAMPLE
        New-AviRestSiteversion
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSiteversion')]$Siteversion
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/siteversion"
            Body = ConvertTo-JSON $Siteversion -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Siteversion.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestSiteversion
        }
    }
}
Function New-AVIRestSiteversionObject {
<#
    .SYNOPSIS
        Configure Avi SiteVersion Object API
 
    .EXAMPLE
        New-AviRestSiteversion
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestSiteversion')
        $result
    }
}
Function Remove-AVIRestSiteversion {
<#
    .SYNOPSIS
        Configure Avi SiteVersion Object API
 
    .EXAMPLE
        Get-AviRestSiteversion | Remove-AviRestSiteversion
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Siteversion')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Siteversion',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSiteversion')]$Siteversion,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Siteversion') {
            $uuid = $Siteversion.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/siteversion/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Siteversion.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestSnmptrapprofile {
<#
    .SYNOPSIS
        Configure Avi SnmpTrapProfile Object API
 
    .EXAMPLE
        Get-AviRestSnmptrapprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 's',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/snmptrapprofile$Uuid" : '/api/snmptrapprofile'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestSnmptrapprofile
    }
}
Function Set-AVIRestSnmptrapprofile {
<#
    .SYNOPSIS
        Configure Avi SnmpTrapProfile Object API
 
    .EXAMPLE
        $object = Get-AviRestSnmptrapprofile
        $object.name = 'New name'
        Set-AviRestSnmptrapprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSnmptrapprofile')]$Snmptrapprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Snmptrapprofile.uuid
        $global:body = ConvertTo-JSON $Snmptrapprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/snmptrapprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Snmptrapprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestSnmptrapprofile
        }
    }
}
Function New-AVIRestSnmptrapprofile {
<#
    .SYNOPSIS
        Configure Avi SnmpTrapProfile Object API
 
    .EXAMPLE
        New-AviRestSnmptrapprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSnmptrapprofile')]$Snmptrapprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/snmptrapprofile"
            Body = ConvertTo-JSON $Snmptrapprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Snmptrapprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestSnmptrapprofile
        }
    }
}
Function New-AVIRestSnmptrapprofileObject {
<#
    .SYNOPSIS
        Configure Avi SnmpTrapProfile Object API
 
    .EXAMPLE
        New-AviRestSnmptrapprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestSnmptrapprofile')
        $result
    }
}
Function Invoke-AVIRestSnmptrapprofileTestsnmptrap {
<#
    .SYNOPSIS
        Configure Avi SnmpTrapProfile Object API
 
    .EXAMPLE
        Invoke-AviRestSnmptrapprofileTestsnmptrap
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSnmptrapprofileTestsnmptrap')]$SnmptrapprofileTestsnmptrap
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $SnmptrapprofileTestsnmptrap.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/snmptrapprofile/${uuid}/testsnmptrap"
            Body = ConvertTo-JSON $SnmptrapprofileTestsnmptrap -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($SnmptrapprofileTestsnmptrap.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestSnmptrapprofileTestsnmptrap
        }
    }
}
Function Remove-AVIRestSnmptrapprofile {
<#
    .SYNOPSIS
        Configure Avi SnmpTrapProfile Object API
 
    .EXAMPLE
        Get-AviRestSnmptrapprofile | Remove-AviRestSnmptrapprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Snmptrapprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Snmptrapprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSnmptrapprofile')]$Snmptrapprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Snmptrapprofile') {
            $uuid = $Snmptrapprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/snmptrapprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Snmptrapprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestSslkeyandcertificate {
<#
    .SYNOPSIS
        Configure Avi SSLKeyAndCertificate Object API
 
    .EXAMPLE
        Get-AviRestSslkeyandcertificate
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'federated_info',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/sslkeyandcertificate$Uuid" : '/api/sslkeyandcertificate'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestSslkeyandcertificate
    }
}
Function Set-AVIRestSslkeyandcertificate {
<#
    .SYNOPSIS
        Configure Avi SSLKeyAndCertificate Object API
 
    .EXAMPLE
        $object = Get-AviRestSslkeyandcertificate
        $object.name = 'New name'
        Set-AviRestSslkeyandcertificate $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSslkeyandcertificate')]$Sslkeyandcertificate
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Sslkeyandcertificate.uuid
        $global:body = ConvertTo-JSON $Sslkeyandcertificate -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/sslkeyandcertificate/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Sslkeyandcertificate.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestSslkeyandcertificate
        }
    }
}
Function New-AVIRestSslkeyandcertificate {
<#
    .SYNOPSIS
        Configure Avi SSLKeyAndCertificate Object API
 
    .EXAMPLE
        New-AviRestSslkeyandcertificate
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSslkeyandcertificate')]$Sslkeyandcertificate
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/sslkeyandcertificate"
            Body = ConvertTo-JSON $Sslkeyandcertificate -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Sslkeyandcertificate.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestSslkeyandcertificate
        }
    }
}
Function New-AVIRestSslkeyandcertificateObject {
<#
    .SYNOPSIS
        Configure Avi SSLKeyAndCertificate Object API
 
    .EXAMPLE
        New-AviRestSslkeyandcertificate
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestSslkeyandcertificate')
        $result
    }
}
Function Invoke-AVIRestSslkeyandcertificateRenew {
<#
    .SYNOPSIS
        Configure Avi SSLKeyAndCertificate Object API
 
    .EXAMPLE
        Invoke-AviRestSslkeyandcertificateRenew
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSslkeyandcertificateRenew')]$SslkeyandcertificateRenew
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $SslkeyandcertificateRenew.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/sslkeyandcertificate/${uuid}/renew"
            Body = ConvertTo-JSON $SslkeyandcertificateRenew -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($SslkeyandcertificateRenew.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestSslkeyandcertificateRenew
        }
    }
}
Function Remove-AVIRestSslkeyandcertificate {
<#
    .SYNOPSIS
        Configure Avi SSLKeyAndCertificate Object API
 
    .EXAMPLE
        Get-AviRestSslkeyandcertificate | Remove-AviRestSslkeyandcertificate
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Sslkeyandcertificate')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Sslkeyandcertificate',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSslkeyandcertificate')]$Sslkeyandcertificate,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Sslkeyandcertificate') {
            $uuid = $Sslkeyandcertificate.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/sslkeyandcertificate/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Sslkeyandcertificate.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestSslprofile {
<#
    .SYNOPSIS
        Configure Avi SSLProfile Object API
 
    .EXAMPLE
        Get-AviRestSslprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'federated_info',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/sslprofile$Uuid" : '/api/sslprofile'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestSslprofile
    }
}
Function Set-AVIRestSslprofile {
<#
    .SYNOPSIS
        Configure Avi SSLProfile Object API
 
    .EXAMPLE
        $object = Get-AviRestSslprofile
        $object.name = 'New name'
        Set-AviRestSslprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSslprofile')]$Sslprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Sslprofile.uuid
        $global:body = ConvertTo-JSON $Sslprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/sslprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Sslprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestSslprofile
        }
    }
}
Function New-AVIRestSslprofile {
<#
    .SYNOPSIS
        Configure Avi SSLProfile Object API
 
    .EXAMPLE
        New-AviRestSslprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSslprofile')]$Sslprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/sslprofile"
            Body = ConvertTo-JSON $Sslprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Sslprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestSslprofile
        }
    }
}
Function New-AVIRestSslprofileObject {
<#
    .SYNOPSIS
        Configure Avi SSLProfile Object API
 
    .EXAMPLE
        New-AviRestSslprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestSslprofile')
        $result
    }
}
Function Remove-AVIRestSslprofile {
<#
    .SYNOPSIS
        Configure Avi SSLProfile Object API
 
    .EXAMPLE
        Get-AviRestSslprofile | Remove-AviRestSslprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Sslprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Sslprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSslprofile')]$Sslprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Sslprofile') {
            $uuid = $Sslprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/sslprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Sslprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestSsopolicy {
<#
    .SYNOPSIS
        Configure Avi SSOPolicy Object API
 
    .EXAMPLE
        Get-AviRestSsopolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 's',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/ssopolicy$Uuid" : '/api/ssopolicy'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestSsopolicy
    }
}
Function Set-AVIRestSsopolicy {
<#
    .SYNOPSIS
        Configure Avi SSOPolicy Object API
 
    .EXAMPLE
        $object = Get-AviRestSsopolicy
        $object.name = 'New name'
        Set-AviRestSsopolicy $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSsopolicy')]$Ssopolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Ssopolicy.uuid
        $global:body = ConvertTo-JSON $Ssopolicy -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/ssopolicy/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Ssopolicy.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestSsopolicy
        }
    }
}
Function New-AVIRestSsopolicy {
<#
    .SYNOPSIS
        Configure Avi SSOPolicy Object API
 
    .EXAMPLE
        New-AviRestSsopolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSsopolicy')]$Ssopolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/ssopolicy"
            Body = ConvertTo-JSON $Ssopolicy -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Ssopolicy.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestSsopolicy
        }
    }
}
Function New-AVIRestSsopolicyObject {
<#
    .SYNOPSIS
        Configure Avi SSOPolicy Object API
 
    .EXAMPLE
        New-AviRestSsopolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestSsopolicy')
        $result
    }
}
Function Remove-AVIRestSsopolicy {
<#
    .SYNOPSIS
        Configure Avi SSOPolicy Object API
 
    .EXAMPLE
        Get-AviRestSsopolicy | Remove-AviRestSsopolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Ssopolicy')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Ssopolicy',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSsopolicy')]$Ssopolicy,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Ssopolicy') {
            $uuid = $Ssopolicy.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/ssopolicy/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Ssopolicy.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestStatediffoperation {
<#
    .SYNOPSIS
        Configure Avi StatediffOperation Object API
 
    .EXAMPLE
        Get-AviRestStatediffoperation
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 's',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/statediffoperation$Uuid" : '/api/statediffoperation'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestStatediffoperation
    }
}
Function Set-AVIRestStatediffoperation {
<#
    .SYNOPSIS
        Configure Avi StatediffOperation Object API
 
    .EXAMPLE
        $object = Get-AviRestStatediffoperation
        $object.name = 'New name'
        Set-AviRestStatediffoperation $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestStatediffoperation')]$Statediffoperation
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Statediffoperation.uuid
        $global:body = ConvertTo-JSON $Statediffoperation -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/statediffoperation/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Statediffoperation.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestStatediffoperation
        }
    }
}
Function New-AVIRestStatediffoperation {
<#
    .SYNOPSIS
        Configure Avi StatediffOperation Object API
 
    .EXAMPLE
        New-AviRestStatediffoperation
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestStatediffoperation')]$Statediffoperation
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/statediffoperation"
            Body = ConvertTo-JSON $Statediffoperation -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Statediffoperation.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestStatediffoperation
        }
    }
}
Function New-AVIRestStatediffoperationObject {
<#
    .SYNOPSIS
        Configure Avi StatediffOperation Object API
 
    .EXAMPLE
        New-AviRestStatediffoperation
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestStatediffoperation')
        $result
    }
}
Function Remove-AVIRestStatediffoperation {
<#
    .SYNOPSIS
        Configure Avi StatediffOperation Object API
 
    .EXAMPLE
        Get-AviRestStatediffoperation | Remove-AviRestStatediffoperation
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Statediffoperation')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Statediffoperation',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestStatediffoperation')]$Statediffoperation,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Statediffoperation') {
            $uuid = $Statediffoperation.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/statediffoperation/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Statediffoperation.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestStatediffoperation {
<#
    .SYNOPSIS
        Configure Avi StatediffSnapshot Object API
 
    .EXAMPLE
        Get-AviRestStatediffoperation
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 's',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/statediffoperation$Uuid" : '/api/statediffoperation'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestStatediffoperation
    }
}
Function Set-AVIRestStatediffoperation {
<#
    .SYNOPSIS
        Configure Avi StatediffSnapshot Object API
 
    .EXAMPLE
        $object = Get-AviRestStatediffoperation
        $object.name = 'New name'
        Set-AviRestStatediffoperation $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestStatediffoperation')]$Statediffoperation
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Statediffoperation.uuid
        $global:body = ConvertTo-JSON $Statediffoperation -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/statediffoperation/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Statediffoperation.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestStatediffoperation
        }
    }
}
Function New-AVIRestStatediffoperation {
<#
    .SYNOPSIS
        Configure Avi StatediffSnapshot Object API
 
    .EXAMPLE
        New-AviRestStatediffoperation
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestStatediffoperation')]$Statediffoperation
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/statediffoperation"
            Body = ConvertTo-JSON $Statediffoperation -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Statediffoperation.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestStatediffoperation
        }
    }
}
Function Remove-AVIRestStatediffoperation {
<#
    .SYNOPSIS
        Configure Avi StatediffSnapshot Object API
 
    .EXAMPLE
        Get-AviRestStatediffoperation | Remove-AviRestStatediffoperation
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Statediffoperation')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Statediffoperation',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestStatediffoperation')]$Statediffoperation,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Statediffoperation') {
            $uuid = $Statediffoperation.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/statediffoperation/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Statediffoperation.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestStringgroup {
<#
    .SYNOPSIS
        Configure Avi StringGroup Object API
 
    .EXAMPLE
        Get-AviRestStringgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 's',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/stringgroup$Uuid" : '/api/stringgroup'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestStringgroup
    }
}
Function Set-AVIRestStringgroup {
<#
    .SYNOPSIS
        Configure Avi StringGroup Object API
 
    .EXAMPLE
        $object = Get-AviRestStringgroup
        $object.name = 'New name'
        Set-AviRestStringgroup $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestStringgroup')]$Stringgroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Stringgroup.uuid
        $global:body = ConvertTo-JSON $Stringgroup -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/stringgroup/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Stringgroup.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestStringgroup
        }
    }
}
Function New-AVIRestStringgroup {
<#
    .SYNOPSIS
        Configure Avi StringGroup Object API
 
    .EXAMPLE
        New-AviRestStringgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestStringgroup')]$Stringgroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/stringgroup"
            Body = ConvertTo-JSON $Stringgroup -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Stringgroup.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestStringgroup
        }
    }
}
Function New-AVIRestStringgroupObject {
<#
    .SYNOPSIS
        Configure Avi StringGroup Object API
 
    .EXAMPLE
        New-AviRestStringgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestStringgroup')
        $result
    }
}
Function Remove-AVIRestStringgroup {
<#
    .SYNOPSIS
        Configure Avi StringGroup Object API
 
    .EXAMPLE
        Get-AviRestStringgroup | Remove-AviRestStringgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Stringgroup')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Stringgroup',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestStringgroup')]$Stringgroup,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Stringgroup') {
            $uuid = $Stringgroup.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/stringgroup/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Stringgroup.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestSystemconfiguration {
<#
    .SYNOPSIS
        Configure Avi SystemConfiguration Object API
 
    .EXAMPLE
        Get-AviRestSystemconfiguration
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = '',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/$Uuid" : '/api/'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestSystemconfiguration
    }
}
Function Set-AVIRestSystemconfiguration {
<#
    .SYNOPSIS
        Configure Avi SystemConfiguration Object API
 
    .EXAMPLE
        $object = Get-AviRestSystemconfiguration
        $object.name = 'New name'
        Set-AviRestSystemconfiguration $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSystemconfiguration')]$Systemconfiguration
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Systemconfiguration.uuid
        $global:body = ConvertTo-JSON $Systemconfiguration -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/systemconfiguration"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Systemconfiguration.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestSystemconfiguration
        }
    }
}
Function New-AVIRestSystemconfigurationSystestemail {
<#
    .SYNOPSIS
        Configure Avi SystemConfiguration Object API
 
    .EXAMPLE
        New-AviRestSystemconfigurationSystestemail
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSystemconfigurationSystestemail')]$SystemconfigurationSystestemail
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/systemconfiguration/systestemail"
            Body = ConvertTo-JSON $SystemconfigurationSystestemail -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($SystemconfigurationSystestemail.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestSystemconfigurationSystestemail
        }
    }
}
Function New-AVIRestSystemconfigurationSystestemailObject {
<#
    .SYNOPSIS
        Configure Avi SystemConfiguration Object API
 
    .EXAMPLE
        New-AviRestSystemconfigurationSystestemail
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{
  "subject": "",
  "text": "",
  "to_emails": ""
}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{
  "cc_emails": "",
  "subject": "",
  "text": "",
  "to_emails": ""
}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestSystemconfigurationSystestemail')
        $result
    }
}
Function Get-AVIRestSystemlimits {
<#
    .SYNOPSIS
        Configure Avi SystemLimits Object API
 
    .EXAMPLE
        Get-AviRestSystemlimits
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 's',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/systemlimits$Uuid" : '/api/systemlimits'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestSystemlimits
    }
}
Function Set-AVIRestSystemlimits {
<#
    .SYNOPSIS
        Configure Avi SystemLimits Object API
 
    .EXAMPLE
        $object = Get-AviRestSystemlimits
        $object.name = 'New name'
        Set-AviRestSystemlimits $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSystemlimits')]$Systemlimits
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Systemlimits.uuid
        $global:body = ConvertTo-JSON $Systemlimits -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/systemlimits/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Systemlimits.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestSystemlimits
        }
    }
}
Function New-AVIRestSystemlimits {
<#
    .SYNOPSIS
        Configure Avi SystemLimits Object API
 
    .EXAMPLE
        New-AviRestSystemlimits
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSystemlimits')]$Systemlimits
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/systemlimits"
            Body = ConvertTo-JSON $Systemlimits -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Systemlimits.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestSystemlimits
        }
    }
}
Function New-AVIRestSystemlimitsObject {
<#
    .SYNOPSIS
        Configure Avi SystemLimits Object API
 
    .EXAMPLE
        New-AviRestSystemlimits
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestSystemlimits')
        $result
    }
}
Function Remove-AVIRestSystemlimits {
<#
    .SYNOPSIS
        Configure Avi SystemLimits Object API
 
    .EXAMPLE
        Get-AviRestSystemlimits | Remove-AviRestSystemlimits
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Systemlimits')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Systemlimits',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestSystemlimits')]$Systemlimits,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Systemlimits') {
            $uuid = $Systemlimits.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/systemlimits/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Systemlimits.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestTenant {
<#
    .SYNOPSIS
        Configure Avi Tenant Object API
 
    .EXAMPLE
        Get-AviRestTenant
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 't',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/tenant$Uuid" : '/api/tenant'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestTenant
    }
}
Function Set-AVIRestTenant {
<#
    .SYNOPSIS
        Configure Avi Tenant Object API
 
    .EXAMPLE
        $object = Get-AviRestTenant
        $object.name = 'New name'
        Set-AviRestTenant $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTenant')]$Tenant
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Tenant.uuid
        $global:body = ConvertTo-JSON $Tenant -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/tenant/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Tenant.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestTenant
        }
    }
}
Function New-AVIRestTenant {
<#
    .SYNOPSIS
        Configure Avi Tenant Object API
 
    .EXAMPLE
        New-AviRestTenant
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTenant')]$Tenant
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/tenant"
            Body = ConvertTo-JSON $Tenant -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Tenant.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestTenant
        }
    }
}
Function New-AVIRestTenantObject {
<#
    .SYNOPSIS
        Configure Avi Tenant Object API
 
    .EXAMPLE
        New-AviRestTenant
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestTenant')
        $result
    }
}
Function Remove-AVIRestTenant {
<#
    .SYNOPSIS
        Configure Avi Tenant Object API
 
    .EXAMPLE
        Get-AviRestTenant | Remove-AviRestTenant
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Tenant')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Tenant',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTenant')]$Tenant,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Tenant') {
            $uuid = $Tenant.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/tenant/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Tenant.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestTenantsystemconfiguration {
<#
    .SYNOPSIS
        Configure Avi TenantSystemConfiguration Object API
 
    .EXAMPLE
        Get-AviRestTenantsystemconfiguration
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 't',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/tenantsystemconfiguration$Uuid" : '/api/tenantsystemconfiguration'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestTenantsystemconfiguration
    }
}
Function Set-AVIRestTenantsystemconfiguration {
<#
    .SYNOPSIS
        Configure Avi TenantSystemConfiguration Object API
 
    .EXAMPLE
        $object = Get-AviRestTenantsystemconfiguration
        $object.name = 'New name'
        Set-AviRestTenantsystemconfiguration $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTenantsystemconfiguration')]$Tenantsystemconfiguration
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Tenantsystemconfiguration.uuid
        $global:body = ConvertTo-JSON $Tenantsystemconfiguration -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/tenantsystemconfiguration/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Tenantsystemconfiguration.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestTenantsystemconfiguration
        }
    }
}
Function New-AVIRestTenantsystemconfiguration {
<#
    .SYNOPSIS
        Configure Avi TenantSystemConfiguration Object API
 
    .EXAMPLE
        New-AviRestTenantsystemconfiguration
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTenantsystemconfiguration')]$Tenantsystemconfiguration
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/tenantsystemconfiguration"
            Body = ConvertTo-JSON $Tenantsystemconfiguration -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Tenantsystemconfiguration.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestTenantsystemconfiguration
        }
    }
}
Function New-AVIRestTenantsystemconfigurationObject {
<#
    .SYNOPSIS
        Configure Avi TenantSystemConfiguration Object API
 
    .EXAMPLE
        New-AviRestTenantsystemconfiguration
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestTenantsystemconfiguration')
        $result
    }
}
Function Remove-AVIRestTenantsystemconfiguration {
<#
    .SYNOPSIS
        Configure Avi TenantSystemConfiguration Object API
 
    .EXAMPLE
        Get-AviRestTenantsystemconfiguration | Remove-AviRestTenantsystemconfiguration
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Tenantsystemconfiguration')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Tenantsystemconfiguration',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTenantsystemconfiguration')]$Tenantsystemconfiguration,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Tenantsystemconfiguration') {
            $uuid = $Tenantsystemconfiguration.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/tenantsystemconfiguration/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Tenantsystemconfiguration.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestTestsedatastorelevel1 {
<#
    .SYNOPSIS
        Configure Avi TestSeDatastoreLevel1 Object API
 
    .EXAMPLE
        Get-AviRestTestsedatastorelevel1
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 't',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/testsedatastorelevel1$Uuid" : '/api/testsedatastorelevel1'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestTestsedatastorelevel1
    }
}
Function Set-AVIRestTestsedatastorelevel1 {
<#
    .SYNOPSIS
        Configure Avi TestSeDatastoreLevel1 Object API
 
    .EXAMPLE
        $object = Get-AviRestTestsedatastorelevel1
        $object.name = 'New name'
        Set-AviRestTestsedatastorelevel1 $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTestsedatastorelevel1')]$Testsedatastorelevel1
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Testsedatastorelevel1.uuid
        $global:body = ConvertTo-JSON $Testsedatastorelevel1 -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/testsedatastorelevel1/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Testsedatastorelevel1.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestTestsedatastorelevel1
        }
    }
}
Function New-AVIRestTestsedatastorelevel1 {
<#
    .SYNOPSIS
        Configure Avi TestSeDatastoreLevel1 Object API
 
    .EXAMPLE
        New-AviRestTestsedatastorelevel1
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTestsedatastorelevel1')]$Testsedatastorelevel1
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/testsedatastorelevel1"
            Body = ConvertTo-JSON $Testsedatastorelevel1 -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Testsedatastorelevel1.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestTestsedatastorelevel1
        }
    }
}
Function New-AVIRestTestsedatastorelevel1Object {
<#
    .SYNOPSIS
        Configure Avi TestSeDatastoreLevel1 Object API
 
    .EXAMPLE
        New-AviRestTestsedatastorelevel1
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestTestsedatastorelevel1')
        $result
    }
}
Function Remove-AVIRestTestsedatastorelevel1 {
<#
    .SYNOPSIS
        Configure Avi TestSeDatastoreLevel1 Object API
 
    .EXAMPLE
        Get-AviRestTestsedatastorelevel1 | Remove-AviRestTestsedatastorelevel1
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Testsedatastorelevel1')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Testsedatastorelevel1',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTestsedatastorelevel1')]$Testsedatastorelevel1,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Testsedatastorelevel1') {
            $uuid = $Testsedatastorelevel1.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/testsedatastorelevel1/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Testsedatastorelevel1.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestTestsedatastorelevel2 {
<#
    .SYNOPSIS
        Configure Avi TestSeDatastoreLevel2 Object API
 
    .EXAMPLE
        Get-AviRestTestsedatastorelevel2
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 't',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/testsedatastorelevel2$Uuid" : '/api/testsedatastorelevel2'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestTestsedatastorelevel2
    }
}
Function Set-AVIRestTestsedatastorelevel2 {
<#
    .SYNOPSIS
        Configure Avi TestSeDatastoreLevel2 Object API
 
    .EXAMPLE
        $object = Get-AviRestTestsedatastorelevel2
        $object.name = 'New name'
        Set-AviRestTestsedatastorelevel2 $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTestsedatastorelevel2')]$Testsedatastorelevel2
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Testsedatastorelevel2.uuid
        $global:body = ConvertTo-JSON $Testsedatastorelevel2 -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/testsedatastorelevel2/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Testsedatastorelevel2.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestTestsedatastorelevel2
        }
    }
}
Function New-AVIRestTestsedatastorelevel2 {
<#
    .SYNOPSIS
        Configure Avi TestSeDatastoreLevel2 Object API
 
    .EXAMPLE
        New-AviRestTestsedatastorelevel2
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTestsedatastorelevel2')]$Testsedatastorelevel2
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/testsedatastorelevel2"
            Body = ConvertTo-JSON $Testsedatastorelevel2 -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Testsedatastorelevel2.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestTestsedatastorelevel2
        }
    }
}
Function New-AVIRestTestsedatastorelevel2Object {
<#
    .SYNOPSIS
        Configure Avi TestSeDatastoreLevel2 Object API
 
    .EXAMPLE
        New-AviRestTestsedatastorelevel2
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestTestsedatastorelevel2')
        $result
    }
}
Function Remove-AVIRestTestsedatastorelevel2 {
<#
    .SYNOPSIS
        Configure Avi TestSeDatastoreLevel2 Object API
 
    .EXAMPLE
        Get-AviRestTestsedatastorelevel2 | Remove-AviRestTestsedatastorelevel2
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Testsedatastorelevel2')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Testsedatastorelevel2',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTestsedatastorelevel2')]$Testsedatastorelevel2,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Testsedatastorelevel2') {
            $uuid = $Testsedatastorelevel2.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/testsedatastorelevel2/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Testsedatastorelevel2.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestTestsedatastorelevel3 {
<#
    .SYNOPSIS
        Configure Avi TestSeDatastoreLevel3 Object API
 
    .EXAMPLE
        Get-AviRestTestsedatastorelevel3
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 't',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/testsedatastorelevel3$Uuid" : '/api/testsedatastorelevel3'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestTestsedatastorelevel3
    }
}
Function Set-AVIRestTestsedatastorelevel3 {
<#
    .SYNOPSIS
        Configure Avi TestSeDatastoreLevel3 Object API
 
    .EXAMPLE
        $object = Get-AviRestTestsedatastorelevel3
        $object.name = 'New name'
        Set-AviRestTestsedatastorelevel3 $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTestsedatastorelevel3')]$Testsedatastorelevel3
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Testsedatastorelevel3.uuid
        $global:body = ConvertTo-JSON $Testsedatastorelevel3 -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/testsedatastorelevel3/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Testsedatastorelevel3.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestTestsedatastorelevel3
        }
    }
}
Function New-AVIRestTestsedatastorelevel3 {
<#
    .SYNOPSIS
        Configure Avi TestSeDatastoreLevel3 Object API
 
    .EXAMPLE
        New-AviRestTestsedatastorelevel3
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTestsedatastorelevel3')]$Testsedatastorelevel3
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/testsedatastorelevel3"
            Body = ConvertTo-JSON $Testsedatastorelevel3 -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Testsedatastorelevel3.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestTestsedatastorelevel3
        }
    }
}
Function New-AVIRestTestsedatastorelevel3Object {
<#
    .SYNOPSIS
        Configure Avi TestSeDatastoreLevel3 Object API
 
    .EXAMPLE
        New-AviRestTestsedatastorelevel3
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestTestsedatastorelevel3')
        $result
    }
}
Function Remove-AVIRestTestsedatastorelevel3 {
<#
    .SYNOPSIS
        Configure Avi TestSeDatastoreLevel3 Object API
 
    .EXAMPLE
        Get-AviRestTestsedatastorelevel3 | Remove-AviRestTestsedatastorelevel3
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Testsedatastorelevel3')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Testsedatastorelevel3',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTestsedatastorelevel3')]$Testsedatastorelevel3,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Testsedatastorelevel3') {
            $uuid = $Testsedatastorelevel3.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/testsedatastorelevel3/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Testsedatastorelevel3.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestTrafficcloneprofile {
<#
    .SYNOPSIS
        Configure Avi TrafficCloneProfile Object API
 
    .EXAMPLE
        Get-AviRestTrafficcloneprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 't',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/trafficcloneprofile$Uuid" : '/api/trafficcloneprofile'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestTrafficcloneprofile
    }
}
Function Set-AVIRestTrafficcloneprofile {
<#
    .SYNOPSIS
        Configure Avi TrafficCloneProfile Object API
 
    .EXAMPLE
        $object = Get-AviRestTrafficcloneprofile
        $object.name = 'New name'
        Set-AviRestTrafficcloneprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTrafficcloneprofile')]$Trafficcloneprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Trafficcloneprofile.uuid
        $global:body = ConvertTo-JSON $Trafficcloneprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/trafficcloneprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Trafficcloneprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestTrafficcloneprofile
        }
    }
}
Function New-AVIRestTrafficcloneprofile {
<#
    .SYNOPSIS
        Configure Avi TrafficCloneProfile Object API
 
    .EXAMPLE
        New-AviRestTrafficcloneprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTrafficcloneprofile')]$Trafficcloneprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/trafficcloneprofile"
            Body = ConvertTo-JSON $Trafficcloneprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Trafficcloneprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestTrafficcloneprofile
        }
    }
}
Function New-AVIRestTrafficcloneprofileObject {
<#
    .SYNOPSIS
        Configure Avi TrafficCloneProfile Object API
 
    .EXAMPLE
        New-AviRestTrafficcloneprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestTrafficcloneprofile')
        $result
    }
}
Function Remove-AVIRestTrafficcloneprofile {
<#
    .SYNOPSIS
        Configure Avi TrafficCloneProfile Object API
 
    .EXAMPLE
        Get-AviRestTrafficcloneprofile | Remove-AviRestTrafficcloneprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Trafficcloneprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Trafficcloneprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestTrafficcloneprofile')]$Trafficcloneprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Trafficcloneprofile') {
            $uuid = $Trafficcloneprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/trafficcloneprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Trafficcloneprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestUpgradestatusinfo {
<#
    .SYNOPSIS
        Configure Avi UpgradeStatusInfo Object API
 
    .EXAMPLE
        Get-AviRestUpgradestatusinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'u',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/upgradestatusinfo$Uuid" : '/api/upgradestatusinfo'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestUpgradestatusinfo
    }
}
Function Set-AVIRestUpgradestatusinfo {
<#
    .SYNOPSIS
        Configure Avi UpgradeStatusInfo Object API
 
    .EXAMPLE
        $object = Get-AviRestUpgradestatusinfo
        $object.name = 'New name'
        Set-AviRestUpgradestatusinfo $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUpgradestatusinfo')]$Upgradestatusinfo
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Upgradestatusinfo.uuid
        $global:body = ConvertTo-JSON $Upgradestatusinfo -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/upgradestatusinfo/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Upgradestatusinfo.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestUpgradestatusinfo
        }
    }
}
Function New-AVIRestUpgradestatusinfo {
<#
    .SYNOPSIS
        Configure Avi UpgradeStatusInfo Object API
 
    .EXAMPLE
        New-AviRestUpgradestatusinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUpgradestatusinfo')]$Upgradestatusinfo
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/upgradestatusinfo"
            Body = ConvertTo-JSON $Upgradestatusinfo -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Upgradestatusinfo.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestUpgradestatusinfo
        }
    }
}
Function New-AVIRestUpgradestatusinfoObject {
<#
    .SYNOPSIS
        Configure Avi UpgradeStatusInfo Object API
 
    .EXAMPLE
        New-AviRestUpgradestatusinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestUpgradestatusinfo')
        $result
    }
}
Function Remove-AVIRestUpgradestatusinfo {
<#
    .SYNOPSIS
        Configure Avi UpgradeStatusInfo Object API
 
    .EXAMPLE
        Get-AviRestUpgradestatusinfo | Remove-AviRestUpgradestatusinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Upgradestatusinfo')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Upgradestatusinfo',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUpgradestatusinfo')]$Upgradestatusinfo,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Upgradestatusinfo') {
            $uuid = $Upgradestatusinfo.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/upgradestatusinfo/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Upgradestatusinfo.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestUpgradestatusinfo {
<#
    .SYNOPSIS
        Configure Avi UpgradeStatusSummary Object API
 
    .EXAMPLE
        Get-AviRestUpgradestatusinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'u',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/upgradestatusinfo$Uuid" : '/api/upgradestatusinfo'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestUpgradestatusinfo
    }
}
Function Set-AVIRestUpgradestatusinfo {
<#
    .SYNOPSIS
        Configure Avi UpgradeStatusSummary Object API
 
    .EXAMPLE
        $object = Get-AviRestUpgradestatusinfo
        $object.name = 'New name'
        Set-AviRestUpgradestatusinfo $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUpgradestatusinfo')]$Upgradestatusinfo
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Upgradestatusinfo.uuid
        $global:body = ConvertTo-JSON $Upgradestatusinfo -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/upgradestatusinfo/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Upgradestatusinfo.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestUpgradestatusinfo
        }
    }
}
Function New-AVIRestUpgradestatusinfo {
<#
    .SYNOPSIS
        Configure Avi UpgradeStatusSummary Object API
 
    .EXAMPLE
        New-AviRestUpgradestatusinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUpgradestatusinfo')]$Upgradestatusinfo
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/upgradestatusinfo"
            Body = ConvertTo-JSON $Upgradestatusinfo -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Upgradestatusinfo.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestUpgradestatusinfo
        }
    }
}
Function Remove-AVIRestUpgradestatusinfo {
<#
    .SYNOPSIS
        Configure Avi UpgradeStatusSummary Object API
 
    .EXAMPLE
        Get-AviRestUpgradestatusinfo | Remove-AviRestUpgradestatusinfo
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Upgradestatusinfo')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Upgradestatusinfo',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUpgradestatusinfo')]$Upgradestatusinfo,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Upgradestatusinfo') {
            $uuid = $Upgradestatusinfo.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/upgradestatusinfo/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Upgradestatusinfo.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestUser {
<#
    .SYNOPSIS
        Configure Avi User Object API
 
    .EXAMPLE
        Get-AviRestUser
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'u',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/user$Uuid" : '/api/user'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestUser
    }
}
Function Set-AVIRestUser {
<#
    .SYNOPSIS
        Configure Avi User Object API
 
    .EXAMPLE
        $object = Get-AviRestUser
        $object.name = 'New name'
        Set-AviRestUser $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUser')]$User
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $User.uuid
        $global:body = ConvertTo-JSON $User -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/user/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($User.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestUser
        }
    }
}
Function New-AVIRestUser {
<#
    .SYNOPSIS
        Configure Avi User Object API
 
    .EXAMPLE
        New-AviRestUser
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUser')]$User
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/user"
            Body = ConvertTo-JSON $User -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($User.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestUser
        }
    }
}
Function New-AVIRestUserObject {
<#
    .SYNOPSIS
        Configure Avi User Object API
 
    .EXAMPLE
        New-AviRestUser
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestUser')
        $result
    }
}
Function Remove-AVIRestUser {
<#
    .SYNOPSIS
        Configure Avi User Object API
 
    .EXAMPLE
        Get-AviRestUser | Remove-AviRestUser
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'User')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'User',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUser')]$User,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'User') {
            $uuid = $User.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/user/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($User.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestUseraccountprofile {
<#
    .SYNOPSIS
        Configure Avi UserAccountProfile Object API
 
    .EXAMPLE
        Get-AviRestUseraccountprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'u',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/useraccountprofile$Uuid" : '/api/useraccountprofile'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestUseraccountprofile
    }
}
Function Set-AVIRestUseraccountprofile {
<#
    .SYNOPSIS
        Configure Avi UserAccountProfile Object API
 
    .EXAMPLE
        $object = Get-AviRestUseraccountprofile
        $object.name = 'New name'
        Set-AviRestUseraccountprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUseraccountprofile')]$Useraccountprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Useraccountprofile.uuid
        $global:body = ConvertTo-JSON $Useraccountprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/useraccountprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Useraccountprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestUseraccountprofile
        }
    }
}
Function New-AVIRestUseraccountprofile {
<#
    .SYNOPSIS
        Configure Avi UserAccountProfile Object API
 
    .EXAMPLE
        New-AviRestUseraccountprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUseraccountprofile')]$Useraccountprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/useraccountprofile"
            Body = ConvertTo-JSON $Useraccountprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Useraccountprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestUseraccountprofile
        }
    }
}
Function New-AVIRestUseraccountprofileObject {
<#
    .SYNOPSIS
        Configure Avi UserAccountProfile Object API
 
    .EXAMPLE
        New-AviRestUseraccountprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestUseraccountprofile')
        $result
    }
}
Function Remove-AVIRestUseraccountprofile {
<#
    .SYNOPSIS
        Configure Avi UserAccountProfile Object API
 
    .EXAMPLE
        Get-AviRestUseraccountprofile | Remove-AviRestUseraccountprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Useraccountprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Useraccountprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUseraccountprofile')]$Useraccountprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Useraccountprofile') {
            $uuid = $Useraccountprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/useraccountprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Useraccountprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestUseractivity {
<#
    .SYNOPSIS
        Configure Avi UserActivity Object API
 
    .EXAMPLE
        Get-AviRestUseractivity
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'u',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/useractivity$Uuid" : '/api/useractivity'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestUseractivity
    }
}
Function Set-AVIRestUseractivity {
<#
    .SYNOPSIS
        Configure Avi UserActivity Object API
 
    .EXAMPLE
        $object = Get-AviRestUseractivity
        $object.name = 'New name'
        Set-AviRestUseractivity $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUseractivity')]$Useractivity
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Useractivity.uuid
        $global:body = ConvertTo-JSON $Useractivity -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/useractivity/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Useractivity.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestUseractivity
        }
    }
}
Function New-AVIRestUseractivity {
<#
    .SYNOPSIS
        Configure Avi UserActivity Object API
 
    .EXAMPLE
        New-AviRestUseractivity
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUseractivity')]$Useractivity
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/useractivity"
            Body = ConvertTo-JSON $Useractivity -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Useractivity.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestUseractivity
        }
    }
}
Function New-AVIRestUseractivityObject {
<#
    .SYNOPSIS
        Configure Avi UserActivity Object API
 
    .EXAMPLE
        New-AviRestUseractivity
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestUseractivity')
        $result
    }
}
Function Remove-AVIRestUseractivity {
<#
    .SYNOPSIS
        Configure Avi UserActivity Object API
 
    .EXAMPLE
        Get-AviRestUseractivity | Remove-AviRestUseractivity
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Useractivity')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Useractivity',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestUseractivity')]$Useractivity,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Useractivity') {
            $uuid = $Useractivity.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/useractivity/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Useractivity.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestVcenterserver {
<#
    .SYNOPSIS
        Configure Avi VCenterServer Object API
 
    .EXAMPLE
        Get-AviRestVcenterserver
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'v',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/vcenterserver$Uuid" : '/api/vcenterserver'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestVcenterserver
    }
}
Function Set-AVIRestVcenterserver {
<#
    .SYNOPSIS
        Configure Avi VCenterServer Object API
 
    .EXAMPLE
        $object = Get-AviRestVcenterserver
        $object.name = 'New name'
        Set-AviRestVcenterserver $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVcenterserver')]$Vcenterserver
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Vcenterserver.uuid
        $global:body = ConvertTo-JSON $Vcenterserver -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/vcenterserver/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Vcenterserver.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVcenterserver
        }
    }
}
Function New-AVIRestVcenterserver {
<#
    .SYNOPSIS
        Configure Avi VCenterServer Object API
 
    .EXAMPLE
        New-AviRestVcenterserver
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVcenterserver')]$Vcenterserver
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vcenterserver"
            Body = ConvertTo-JSON $Vcenterserver -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Vcenterserver.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVcenterserver
        }
    }
}
Function New-AVIRestVcenterserverObject {
<#
    .SYNOPSIS
        Configure Avi VCenterServer Object API
 
    .EXAMPLE
        New-AviRestVcenterserver
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVcenterserver')
        $result
    }
}
Function Remove-AVIRestVcenterserver {
<#
    .SYNOPSIS
        Configure Avi VCenterServer Object API
 
    .EXAMPLE
        Get-AviRestVcenterserver | Remove-AviRestVcenterserver
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Vcenterserver')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Vcenterserver',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVcenterserver')]$Vcenterserver,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Vcenterserver') {
            $uuid = $Vcenterserver.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/vcenterserver/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Vcenterserver.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestVimgrvcenterdatacenters {
<#
    .SYNOPSIS
        Configure Avi VIDCInfo Object API
 
    .EXAMPLE
        Get-AviRestVimgrvcenterdatacenters
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'v',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/vimgrvcenterdatacenters$Uuid" : '/api/vimgrvcenterdatacenters'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenterdatacenters
    }
}
Function Set-AVIRestVimgrvcenterdatacenters {
<#
    .SYNOPSIS
        Configure Avi VIDCInfo Object API
 
    .EXAMPLE
        $object = Get-AviRestVimgrvcenterdatacenters
        $object.name = 'New name'
        Set-AviRestVimgrvcenterdatacenters $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenterdatacenters')]$Vimgrvcenterdatacenters
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Vimgrvcenterdatacenters.uuid
        $global:body = ConvertTo-JSON $Vimgrvcenterdatacenters -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/vimgrvcenterdatacenters/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrvcenterdatacenters.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenterdatacenters
        }
    }
}
Function New-AVIRestVimgrvcenterdatacenters {
<#
    .SYNOPSIS
        Configure Avi VIDCInfo Object API
 
    .EXAMPLE
        New-AviRestVimgrvcenterdatacenters
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenterdatacenters')]$Vimgrvcenterdatacenters
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrvcenterdatacenters"
            Body = ConvertTo-JSON $Vimgrvcenterdatacenters -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrvcenterdatacenters.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenterdatacenters
        }
    }
}
Function Remove-AVIRestVimgrvcenterdatacenters {
<#
    .SYNOPSIS
        Configure Avi VIDCInfo Object API
 
    .EXAMPLE
        Get-AviRestVimgrvcenterdatacenters | Remove-AviRestVimgrvcenterdatacenters
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Vimgrvcenterdatacenters')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Vimgrvcenterdatacenters',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenterdatacenters')]$Vimgrvcenterdatacenters,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Vimgrvcenterdatacenters') {
            $uuid = $Vimgrvcenterdatacenters.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/vimgrvcenterdatacenters/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrvcenterdatacenters.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestVimgrclusterruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrClusterRuntime Object API
 
    .EXAMPLE
        Get-AviRestVimgrclusterruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'v',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/vimgrclusterruntime$Uuid" : '/api/vimgrclusterruntime'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestVimgrclusterruntime
    }
}
Function Set-AVIRestVimgrclusterruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrClusterRuntime Object API
 
    .EXAMPLE
        $object = Get-AviRestVimgrclusterruntime
        $object.name = 'New name'
        Set-AviRestVimgrclusterruntime $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrclusterruntime')]$Vimgrclusterruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Vimgrclusterruntime.uuid
        $global:body = ConvertTo-JSON $Vimgrclusterruntime -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/vimgrclusterruntime/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrclusterruntime.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrclusterruntime
        }
    }
}
Function New-AVIRestVimgrclusterruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrClusterRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrclusterruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrclusterruntime')]$Vimgrclusterruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrclusterruntime"
            Body = ConvertTo-JSON $Vimgrclusterruntime -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrclusterruntime.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrclusterruntime
        }
    }
}
Function New-AVIRestVimgrclusterruntimeObject {
<#
    .SYNOPSIS
        Configure Avi VIMgrClusterRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrclusterruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVimgrclusterruntime')
        $result
    }
}
Function Remove-AVIRestVimgrclusterruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrClusterRuntime Object API
 
    .EXAMPLE
        Get-AviRestVimgrclusterruntime | Remove-AviRestVimgrclusterruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Vimgrclusterruntime')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Vimgrclusterruntime',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrclusterruntime')]$Vimgrclusterruntime,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Vimgrclusterruntime') {
            $uuid = $Vimgrclusterruntime.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/vimgrclusterruntime/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrclusterruntime.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestVimgrcontrollerruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrControllerRuntime Object API
 
    .EXAMPLE
        Get-AviRestVimgrcontrollerruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'v',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/vimgrcontrollerruntime$Uuid" : '/api/vimgrcontrollerruntime'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestVimgrcontrollerruntime
    }
}
Function Set-AVIRestVimgrcontrollerruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrControllerRuntime Object API
 
    .EXAMPLE
        $object = Get-AviRestVimgrcontrollerruntime
        $object.name = 'New name'
        Set-AviRestVimgrcontrollerruntime $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrcontrollerruntime')]$Vimgrcontrollerruntime
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Vimgrcontrollerruntime.uuid
        $global:body = ConvertTo-JSON $Vimgrcontrollerruntime -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/vimgrcontrollerruntime/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrcontrollerruntime.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrcontrollerruntime
        }
    }
}
Function New-AVIRestVimgrcontrollerruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrControllerRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrcontrollerruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrcontrollerruntime')]$Vimgrcontrollerruntime
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrcontrollerruntime"
            Body = ConvertTo-JSON $Vimgrcontrollerruntime -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrcontrollerruntime.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrcontrollerruntime
        }
    }
}
Function New-AVIRestVimgrcontrollerruntimeObject {
<#
    .SYNOPSIS
        Configure Avi VIMgrControllerRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrcontrollerruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVimgrcontrollerruntime')
        $result
    }
}
Function Remove-AVIRestVimgrcontrollerruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrControllerRuntime Object API
 
    .EXAMPLE
        Get-AviRestVimgrcontrollerruntime | Remove-AviRestVimgrcontrollerruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Vimgrcontrollerruntime')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Vimgrcontrollerruntime',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrcontrollerruntime')]$Vimgrcontrollerruntime,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Vimgrcontrollerruntime') {
            $uuid = $Vimgrcontrollerruntime.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/vimgrcontrollerruntime/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrcontrollerruntime.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestVimgrdcruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrDCRuntime Object API
 
    .EXAMPLE
        Get-AviRestVimgrdcruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'v',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/vimgrdcruntime$Uuid" : '/api/vimgrdcruntime'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestVimgrdcruntime
    }
}
Function Set-AVIRestVimgrdcruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrDCRuntime Object API
 
    .EXAMPLE
        $object = Get-AviRestVimgrdcruntime
        $object.name = 'New name'
        Set-AviRestVimgrdcruntime $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrdcruntime')]$Vimgrdcruntime
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Vimgrdcruntime.uuid
        $global:body = ConvertTo-JSON $Vimgrdcruntime -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/vimgrdcruntime/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrdcruntime.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrdcruntime
        }
    }
}
Function New-AVIRestVimgrdcruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrDCRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrdcruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrdcruntime')]$Vimgrdcruntime
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrdcruntime"
            Body = ConvertTo-JSON $Vimgrdcruntime -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrdcruntime.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrdcruntime
        }
    }
}
Function New-AVIRestVimgrdcruntimeObject {
<#
    .SYNOPSIS
        Configure Avi VIMgrDCRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrdcruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVimgrdcruntime')
        $result
    }
}
Function Remove-AVIRestVimgrdcruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrDCRuntime Object API
 
    .EXAMPLE
        Get-AviRestVimgrdcruntime | Remove-AviRestVimgrdcruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Vimgrdcruntime')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Vimgrdcruntime',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrdcruntime')]$Vimgrdcruntime,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Vimgrdcruntime') {
            $uuid = $Vimgrdcruntime.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/vimgrdcruntime/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrdcruntime.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestVimgrhostruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrHostRuntime Object API
 
    .EXAMPLE
        Get-AviRestVimgrhostruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'v',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/vimgrhostruntime$Uuid" : '/api/vimgrhostruntime'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestVimgrhostruntime
    }
}
Function Set-AVIRestVimgrhostruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrHostRuntime Object API
 
    .EXAMPLE
        $object = Get-AviRestVimgrhostruntime
        $object.name = 'New name'
        Set-AviRestVimgrhostruntime $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrhostruntime')]$Vimgrhostruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Vimgrhostruntime.uuid
        $global:body = ConvertTo-JSON $Vimgrhostruntime -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/vimgrhostruntime/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrhostruntime.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrhostruntime
        }
    }
}
Function New-AVIRestVimgrhostruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrHostRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrhostruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrhostruntime')]$Vimgrhostruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrhostruntime"
            Body = ConvertTo-JSON $Vimgrhostruntime -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrhostruntime.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrhostruntime
        }
    }
}
Function New-AVIRestVimgrhostruntimeGetquarantinedhosts {
<#
    .SYNOPSIS
        Configure Avi VIMgrHostRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrhostruntimeGetquarantinedhosts
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrhostruntimeGetquarantinedhosts')]$VimgrhostruntimeGetquarantinedhosts
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrhostruntime/getquarantinedhosts"
            Body = ConvertTo-JSON $VimgrhostruntimeGetquarantinedhosts -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VimgrhostruntimeGetquarantinedhosts.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrhostruntimeGetquarantinedhosts
        }
    }
}
Function New-AVIRestVimgrhostruntimeObject {
<#
    .SYNOPSIS
        Configure Avi VIMgrHostRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrhostruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVimgrhostruntime')
        $result
    }
}
Function Invoke-AVIRestVimgrhostruntimeAccessible {
<#
    .SYNOPSIS
        Configure Avi VIMgrHostRuntime Object API
 
    .EXAMPLE
        Invoke-AviRestVimgrhostruntimeAccessible
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrhostruntimeAccessible')]$VimgrhostruntimeAccessible
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $VimgrhostruntimeAccessible.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrhostruntime/${uuid}/accessible"
            Body = ConvertTo-JSON $VimgrhostruntimeAccessible -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VimgrhostruntimeAccessible.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrhostruntimeAccessible
        }
    }
}
Function Remove-AVIRestVimgrhostruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrHostRuntime Object API
 
    .EXAMPLE
        Get-AviRestVimgrhostruntime | Remove-AviRestVimgrhostruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Vimgrhostruntime')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Vimgrhostruntime',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrhostruntime')]$Vimgrhostruntime,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Vimgrhostruntime') {
            $uuid = $Vimgrhostruntime.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/vimgrhostruntime/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrhostruntime.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestVimgrnwruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrNWRuntime Object API
 
    .EXAMPLE
        Get-AviRestVimgrnwruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'v',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/vimgrnwruntime$Uuid" : '/api/vimgrnwruntime'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestVimgrnwruntime
    }
}
Function Set-AVIRestVimgrnwruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrNWRuntime Object API
 
    .EXAMPLE
        $object = Get-AviRestVimgrnwruntime
        $object.name = 'New name'
        Set-AviRestVimgrnwruntime $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrnwruntime')]$Vimgrnwruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Vimgrnwruntime.uuid
        $global:body = ConvertTo-JSON $Vimgrnwruntime -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/vimgrnwruntime/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrnwruntime.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrnwruntime
        }
    }
}
Function New-AVIRestVimgrnwruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrNWRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrnwruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrnwruntime')]$Vimgrnwruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrnwruntime"
            Body = ConvertTo-JSON $Vimgrnwruntime -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrnwruntime.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrnwruntime
        }
    }
}
Function New-AVIRestVimgrnwruntimeObject {
<#
    .SYNOPSIS
        Configure Avi VIMgrNWRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrnwruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVimgrnwruntime')
        $result
    }
}
Function Remove-AVIRestVimgrnwruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrNWRuntime Object API
 
    .EXAMPLE
        Get-AviRestVimgrnwruntime | Remove-AviRestVimgrnwruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Vimgrnwruntime')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Vimgrnwruntime',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrnwruntime')]$Vimgrnwruntime,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Vimgrnwruntime') {
            $uuid = $Vimgrnwruntime.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/vimgrnwruntime/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrnwruntime.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestVimgrsevmruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrSEVMRuntime Object API
 
    .EXAMPLE
        Get-AviRestVimgrsevmruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'v',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/vimgrsevmruntime$Uuid" : '/api/vimgrsevmruntime'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestVimgrsevmruntime
    }
}
Function Set-AVIRestVimgrsevmruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrSEVMRuntime Object API
 
    .EXAMPLE
        $object = Get-AviRestVimgrsevmruntime
        $object.name = 'New name'
        Set-AviRestVimgrsevmruntime $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrsevmruntime')]$Vimgrsevmruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Vimgrsevmruntime.uuid
        $global:body = ConvertTo-JSON $Vimgrsevmruntime -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/vimgrsevmruntime/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrsevmruntime.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrsevmruntime
        }
    }
}
Function New-AVIRestVimgrsevmruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrSEVMRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrsevmruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrsevmruntime')]$Vimgrsevmruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrsevmruntime"
            Body = ConvertTo-JSON $Vimgrsevmruntime -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrsevmruntime.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrsevmruntime
        }
    }
}
Function New-AVIRestVimgrsevmruntimeObject {
<#
    .SYNOPSIS
        Configure Avi VIMgrSEVMRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrsevmruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVimgrsevmruntime')
        $result
    }
}
Function Remove-AVIRestVimgrsevmruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrSEVMRuntime Object API
 
    .EXAMPLE
        Get-AviRestVimgrsevmruntime | Remove-AviRestVimgrsevmruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Vimgrsevmruntime')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Vimgrsevmruntime',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrsevmruntime')]$Vimgrsevmruntime,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Vimgrsevmruntime') {
            $uuid = $Vimgrsevmruntime.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/vimgrsevmruntime/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrsevmruntime.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestVimgrvcenterruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrVcenterRuntime Object API
 
    .EXAMPLE
        Get-AviRestVimgrvcenterruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'subfolders,datastores,hostresources,networksubnetvms,redis',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/vimgrvcenterruntime$Uuid" : '/api/vimgrvcenterruntime'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenterruntime
    }
}
Function Set-AVIRestVimgrvcenterruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrVcenterRuntime Object API
 
    .EXAMPLE
        $object = Get-AviRestVimgrvcenterruntime
        $object.name = 'New name'
        Set-AviRestVimgrvcenterruntime $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenterruntime')]$Vimgrvcenterruntime
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Vimgrvcenterruntime.uuid
        $global:body = ConvertTo-JSON $Vimgrvcenterruntime -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/vimgrvcenterruntime/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrvcenterruntime.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenterruntime
        }
    }
}
Function New-AVIRestVimgrvcenterruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrVcenterRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrvcenterruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenterruntime')]$Vimgrvcenterruntime
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrvcenterruntime"
            Body = ConvertTo-JSON $Vimgrvcenterruntime -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrvcenterruntime.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenterruntime
        }
    }
}
Function New-AVIRestVimgrvcenterruntimeSpawn {
<#
    .SYNOPSIS
        Configure Avi VIMgrVcenterRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrvcenterruntimeSpawn
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenterruntimeSpawn')]$VimgrvcenterruntimeSpawn
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrvcenterruntime/spawn"
            Body = ConvertTo-JSON $VimgrvcenterruntimeSpawn -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VimgrvcenterruntimeSpawn.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenterruntimeSpawn
        }
    }
}
Function New-AVIRestVimgrvcenterruntimeRemove {
<#
    .SYNOPSIS
        Configure Avi VIMgrVcenterRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrvcenterruntimeRemove
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenterruntimeRemove')]$VimgrvcenterruntimeRemove
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrvcenterruntime/remove"
            Body = ConvertTo-JSON $VimgrvcenterruntimeRemove -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VimgrvcenterruntimeRemove.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenterruntimeRemove
        }
    }
}
Function New-AVIRestVimgrvcenterruntimeSetmgmtip {
<#
    .SYNOPSIS
        Configure Avi VIMgrVcenterRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrvcenterruntimeSetmgmtip
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenterruntimeSetmgmtip')]$VimgrvcenterruntimeSetmgmtip
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrvcenterruntime/setmgmtip"
            Body = ConvertTo-JSON $VimgrvcenterruntimeSetmgmtip -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VimgrvcenterruntimeSetmgmtip.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenterruntimeSetmgmtip
        }
    }
}
Function New-AVIRestVimgrvcenterruntimeModifymgmtip {
<#
    .SYNOPSIS
        Configure Avi VIMgrVcenterRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrvcenterruntimeModifymgmtip
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenterruntimeModifymgmtip')]$VimgrvcenterruntimeModifymgmtip
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrvcenterruntime/modifymgmtip"
            Body = ConvertTo-JSON $VimgrvcenterruntimeModifymgmtip -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VimgrvcenterruntimeModifymgmtip.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenterruntimeModifymgmtip
        }
    }
}
Function New-AVIRestVimgrvcenterruntimeSetvnic {
<#
    .SYNOPSIS
        Configure Avi VIMgrVcenterRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrvcenterruntimeSetvnic
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenterruntimeSetvnic')]$VimgrvcenterruntimeSetvnic
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrvcenterruntime/setvnic"
            Body = ConvertTo-JSON $VimgrvcenterruntimeSetvnic -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VimgrvcenterruntimeSetvnic.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenterruntimeSetvnic
        }
    }
}
Function New-AVIRestVimgrvcenterruntimeModifyvnic {
<#
    .SYNOPSIS
        Configure Avi VIMgrVcenterRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrvcenterruntimeModifyvnic
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenterruntimeModifyvnic')]$VimgrvcenterruntimeModifyvnic
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrvcenterruntime/modifyvnic"
            Body = ConvertTo-JSON $VimgrvcenterruntimeModifyvnic -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VimgrvcenterruntimeModifyvnic.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenterruntimeModifyvnic
        }
    }
}
Function New-AVIRestVimgrvcenterruntimeRetrievevcenterdcnws {
<#
    .SYNOPSIS
        Configure Avi VIMgrVcenterRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrvcenterruntimeRetrievevcenterdcnws
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenterruntimeRetrievevcenterdcnws')]$VimgrvcenterruntimeRetrievevcenterdcnws
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrvcenterruntime/retrievevcenterdcnws"
            Body = ConvertTo-JSON $VimgrvcenterruntimeRetrievevcenterdcnws -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VimgrvcenterruntimeRetrievevcenterdcnws.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenterruntimeRetrievevcenterdcnws
        }
    }
}
Function New-AVIRestVimgrvcenterruntimeRediscover {
<#
    .SYNOPSIS
        Configure Avi VIMgrVcenterRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrvcenterruntimeRediscover
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenterruntimeRediscover')]$VimgrvcenterruntimeRediscover
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrvcenterruntime/rediscover"
            Body = ConvertTo-JSON $VimgrvcenterruntimeRediscover -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VimgrvcenterruntimeRediscover.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenterruntimeRediscover
        }
    }
}
Function New-AVIRestVimgrvcenterruntimeVerifylogin {
<#
    .SYNOPSIS
        Configure Avi VIMgrVcenterRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrvcenterruntimeVerifylogin
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenterruntimeVerifylogin')]$VimgrvcenterruntimeVerifylogin
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrvcenterruntime/verifylogin"
            Body = ConvertTo-JSON $VimgrvcenterruntimeVerifylogin -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VimgrvcenterruntimeVerifylogin.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenterruntimeVerifylogin
        }
    }
}
Function New-AVIRestVimgrvcenterruntimeOsverifylogin {
<#
    .SYNOPSIS
        Configure Avi VIMgrVcenterRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrvcenterruntimeOsverifylogin
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenterruntimeOsverifylogin')]$VimgrvcenterruntimeOsverifylogin
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrvcenterruntime/osverifylogin"
            Body = ConvertTo-JSON $VimgrvcenterruntimeOsverifylogin -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VimgrvcenterruntimeOsverifylogin.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenterruntimeOsverifylogin
        }
    }
}
Function New-AVIRestVimgrvcenterruntimeAwsverifylogin {
<#
    .SYNOPSIS
        Configure Avi VIMgrVcenterRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrvcenterruntimeAwsverifylogin
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenterruntimeAwsverifylogin')]$VimgrvcenterruntimeAwsverifylogin
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrvcenterruntime/awsverifylogin"
            Body = ConvertTo-JSON $VimgrvcenterruntimeAwsverifylogin -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VimgrvcenterruntimeAwsverifylogin.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenterruntimeAwsverifylogin
        }
    }
}
Function New-AVIRestVimgrvcenterruntimeFaultinject {
<#
    .SYNOPSIS
        Configure Avi VIMgrVcenterRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrvcenterruntimeFaultinject
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenterruntimeFaultinject')]$VimgrvcenterruntimeFaultinject
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrvcenterruntime/faultinject"
            Body = ConvertTo-JSON $VimgrvcenterruntimeFaultinject -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VimgrvcenterruntimeFaultinject.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenterruntimeFaultinject
        }
    }
}
Function New-AVIRestVimgrvcenterruntimeDeletenetwork {
<#
    .SYNOPSIS
        Configure Avi VIMgrVcenterRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrvcenterruntimeDeletenetwork
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenterruntimeDeletenetwork')]$VimgrvcenterruntimeDeletenetwork
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrvcenterruntime/deletenetwork"
            Body = ConvertTo-JSON $VimgrvcenterruntimeDeletenetwork -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VimgrvcenterruntimeDeletenetwork.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenterruntimeDeletenetwork
        }
    }
}
Function New-AVIRestVimgrvcenterruntimeVcenterstatus {
<#
    .SYNOPSIS
        Configure Avi VIMgrVcenterRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrvcenterruntimeVcenterstatus
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenterruntimeVcenterstatus')]$VimgrvcenterruntimeVcenterstatus
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrvcenterruntime/vcenterstatus"
            Body = ConvertTo-JSON $VimgrvcenterruntimeVcenterstatus -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VimgrvcenterruntimeVcenterstatus.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenterruntimeVcenterstatus
        }
    }
}
Function New-AVIRestVimgrvcenterruntimeVcenterdiag {
<#
    .SYNOPSIS
        Configure Avi VIMgrVcenterRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrvcenterruntimeVcenterdiag
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenterruntimeVcenterdiag')]$VimgrvcenterruntimeVcenterdiag
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrvcenterruntime/vcenterdiag"
            Body = ConvertTo-JSON $VimgrvcenterruntimeVcenterdiag -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VimgrvcenterruntimeVcenterdiag.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenterruntimeVcenterdiag
        }
    }
}
Function New-AVIRestVimgrvcenterruntimeControlleripsubnets {
<#
    .SYNOPSIS
        Configure Avi VIMgrVcenterRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrvcenterruntimeControlleripsubnets
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenterruntimeControlleripsubnets')]$VimgrvcenterruntimeControlleripsubnets
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrvcenterruntime/controlleripsubnets"
            Body = ConvertTo-JSON $VimgrvcenterruntimeControlleripsubnets -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VimgrvcenterruntimeControlleripsubnets.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenterruntimeControlleripsubnets
        }
    }
}
Function New-AVIRestVimgrvcenterruntimeGenevent {
<#
    .SYNOPSIS
        Configure Avi VIMgrVcenterRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrvcenterruntimeGenevent
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenterruntimeGenevent')]$VimgrvcenterruntimeGenevent
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrvcenterruntime/genevent"
            Body = ConvertTo-JSON $VimgrvcenterruntimeGenevent -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VimgrvcenterruntimeGenevent.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenterruntimeGenevent
        }
    }
}
Function New-AVIRestVimgrvcenterruntimeObject {
<#
    .SYNOPSIS
        Configure Avi VIMgrVcenterRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrvcenterruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVimgrvcenterruntime')
        $result
    }
}
Function New-AVIRestVimgrvcenterruntimeSetmgmtipObject {
<#
    .SYNOPSIS
        Configure Avi VIMgrVcenterRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrvcenterruntimeSetmgmtip
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{
  "ip_params": {
    "default_gw": "",
    "mgmt_ip_addr": "",
    "mgmt_ip_type": "",
    "mgmt_net_mask": ""
  },
  "sevm_uuid": ""
}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{
  "admin": {
    "name": "root",
    "password": "vmware",
    "privilege": "",
    "vcenter_url": "",
    "vi_mgr_token": ""
  },
  "all_vnic_connected": false,
  "cloud_uuid": "",
  "dc_uuid": "",
  "ip_params": {
    "default_gw": "",
    "mgmt_ip_addr": "",
    "mgmt_ip_type": "",
    "mgmt_net_mask": ""
  },
  "power_on": true,
  "rm_cookie": "",
  "sevm_uuid": ""
}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVimgrvcenterruntimeSetmgmtip')
        $result
    }
}
Function New-AVIRestVimgrvcenterruntimeSetvnicObject {
<#
    .SYNOPSIS
        Configure Avi VIMgrVcenterRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrvcenterruntimeSetvnic
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{
  "sevm_uuid": ""
}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{
  "cloud_uuid": "",
  "dc_uuid": "",
  "rm_cookie": "",
  "sevm_uuid": "",
  "vcenter_admin": {
    "name": "root",
    "password": "vmware",
    "privilege": "",
    "vcenter_url": "",
    "vi_mgr_token": ""
  },
  "vcenter_sevm_mor": "",
  "vcenter_vnic_info": [
    {
      "mac_addr": "",
      "vcenter_portgroup": "",
      "vcenter_vnic_nw": ""
    }
  ]
}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVimgrvcenterruntimeSetvnic')
        $result
    }
}
Function New-AVIRestVimgrvcenterruntimeRediscoverObject {
<#
    .SYNOPSIS
        Configure Avi VIMgrVcenterRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrvcenterruntimeRediscover
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{
  "cloud": ""
}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{
  "cloud": ""
}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVimgrvcenterruntimeRediscover')
        $result
    }
}
Function New-AVIRestVimgrvcenterruntimeFaultinjectObject {
<#
    .SYNOPSIS
        Configure Avi VIMgrVcenterRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrvcenterruntimeFaultinject
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{
  "api": "",
  "count": 0
}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{
  "api": "",
  "cloud_uuid": "",
  "count": 0,
  "network_uuid": "",
  "status": "SEVM_CREATE_FAILURE"
}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVimgrvcenterruntimeFaultinject')
        $result
    }
}
Function New-AVIRestVimgrvcenterruntimeDeletenetworkObject {
<#
    .SYNOPSIS
        Configure Avi VIMgrVcenterRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrvcenterruntimeDeletenetwork
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{
  "cloud_uuid": "",
  "datacenter": "",
  "network_uuid": "",
  "vcenter_url": ""
}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVimgrvcenterruntimeDeletenetwork')
        $result
    }
}
Function Invoke-AVIRestVimgrvcenterruntimeGetnetworks {
<#
    .SYNOPSIS
        Configure Avi VIMgrVcenterRuntime Object API
 
    .EXAMPLE
        Invoke-AviRestVimgrvcenterruntimeGetnetworks
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenterruntimeGetnetworks')]$VimgrvcenterruntimeGetnetworks
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $VimgrvcenterruntimeGetnetworks.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrvcenterruntime/${uuid}/getnetworks"
            Body = ConvertTo-JSON $VimgrvcenterruntimeGetnetworks -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VimgrvcenterruntimeGetnetworks.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenterruntimeGetnetworks
        }
    }
}
Function Remove-AVIRestVimgrvcenterruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrVcenterRuntime Object API
 
    .EXAMPLE
        Get-AviRestVimgrvcenterruntime | Remove-AviRestVimgrvcenterruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Vimgrvcenterruntime')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Vimgrvcenterruntime',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenterruntime')]$Vimgrvcenterruntime,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '22.1.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Vimgrvcenterruntime') {
            $uuid = $Vimgrvcenterruntime.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/vimgrvcenterruntime/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrvcenterruntime.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestVimgrvmruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrVMRuntime Object API
 
    .EXAMPLE
        Get-AviRestVimgrvmruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'v',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/vimgrvmruntime$Uuid" : '/api/vimgrvmruntime'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestVimgrvmruntime
    }
}
Function Set-AVIRestVimgrvmruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrVMRuntime Object API
 
    .EXAMPLE
        $object = Get-AviRestVimgrvmruntime
        $object.name = 'New name'
        Set-AviRestVimgrvmruntime $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvmruntime')]$Vimgrvmruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Vimgrvmruntime.uuid
        $global:body = ConvertTo-JSON $Vimgrvmruntime -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/vimgrvmruntime/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrvmruntime.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvmruntime
        }
    }
}
Function New-AVIRestVimgrvmruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrVMRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrvmruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvmruntime')]$Vimgrvmruntime
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrvmruntime"
            Body = ConvertTo-JSON $Vimgrvmruntime -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrvmruntime.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvmruntime
        }
    }
}
Function New-AVIRestVimgrvmruntimeObject {
<#
    .SYNOPSIS
        Configure Avi VIMgrVMRuntime Object API
 
    .EXAMPLE
        New-AviRestVimgrvmruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVimgrvmruntime')
        $result
    }
}
Function Remove-AVIRestVimgrvmruntime {
<#
    .SYNOPSIS
        Configure Avi VIMgrVMRuntime Object API
 
    .EXAMPLE
        Get-AviRestVimgrvmruntime | Remove-AviRestVimgrvmruntime
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Vimgrvmruntime')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Vimgrvmruntime',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvmruntime')]$Vimgrvmruntime,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Vimgrvmruntime') {
            $uuid = $Vimgrvmruntime.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/vimgrvmruntime/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrvmruntime.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestVimgrvcenternetworks {
<#
    .SYNOPSIS
        Configure Avi VIPGNameInfo Object API
 
    .EXAMPLE
        Get-AviRestVimgrvcenternetworks
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'v',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/vimgrvcenternetworks$Uuid" : '/api/vimgrvcenternetworks'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenternetworks
    }
}
Function Set-AVIRestVimgrvcenternetworks {
<#
    .SYNOPSIS
        Configure Avi VIPGNameInfo Object API
 
    .EXAMPLE
        $object = Get-AviRestVimgrvcenternetworks
        $object.name = 'New name'
        Set-AviRestVimgrvcenternetworks $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenternetworks')]$Vimgrvcenternetworks
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Vimgrvcenternetworks.uuid
        $global:body = ConvertTo-JSON $Vimgrvcenternetworks -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/vimgrvcenternetworks/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrvcenternetworks.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenternetworks
        }
    }
}
Function New-AVIRestVimgrvcenternetworks {
<#
    .SYNOPSIS
        Configure Avi VIPGNameInfo Object API
 
    .EXAMPLE
        New-AviRestVimgrvcenternetworks
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenternetworks')]$Vimgrvcenternetworks
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vimgrvcenternetworks"
            Body = ConvertTo-JSON $Vimgrvcenternetworks -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrvcenternetworks.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVimgrvcenternetworks
        }
    }
}
Function Remove-AVIRestVimgrvcenternetworks {
<#
    .SYNOPSIS
        Configure Avi VIPGNameInfo Object API
 
    .EXAMPLE
        Get-AviRestVimgrvcenternetworks | Remove-AviRestVimgrvcenternetworks
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Vimgrvcenternetworks')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Vimgrvcenternetworks',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVimgrvcenternetworks')]$Vimgrvcenternetworks,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Vimgrvcenternetworks') {
            $uuid = $Vimgrvcenternetworks.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/vimgrvcenternetworks/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Vimgrvcenternetworks.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestVirtualservice {
<#
    .SYNOPSIS
        Configure Avi VirtualService Object API
 
    .EXAMPLE
        Get-AviRestVirtualservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'runtime,runtime/detail,runtime/internal,udpstat,tcpstat,sctpstat,traffic_clone_stats,dosstat,connections,httpconnections,httpconnections/detail,httpstats,authstats,httppolicyset,httppolicysetstats,dnspolicystats,networksecuritypolicystats,networksecuritypolicy/detail,candidatesehostlist,placement,keyval,keyvalsummary,keyvalsummaryobjsync,keyvaldispatch,keyvalsession,keyvalsessionsummary,sslsessioncache,cltrack,cltracksummary,client,clientsummary,dnstable,gslbservicedetail,gslbserviceinternal,gslbservicealgostat,gslbservicehmonstat,geolocationinfo,geodbinternal,gslbsiteinternal,userdefineddatascriptcounters,l4policysetstats,sescaleoutstatus,scaleoutstatus,scaleoutstatus/detail,ssopolicystats,icapstats,outofbandstats,botstats,placement/summary,placement/detail,placement/status',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/virtualservice$Uuid" : '/api/virtualservice'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestVirtualservice
    }
}
Function Set-AVIRestVirtualservice {
<#
    .SYNOPSIS
        Configure Avi VirtualService Object API
 
    .EXAMPLE
        $object = Get-AviRestVirtualservice
        $object.name = 'New name'
        Set-AviRestVirtualservice $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVirtualservice')]$Virtualservice
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Virtualservice.uuid
        $global:body = ConvertTo-JSON $Virtualservice -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/virtualservice/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Virtualservice.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVirtualservice
        }
    }
}
Function New-AVIRestVirtualservice {
<#
    .SYNOPSIS
        Configure Avi VirtualService Object API
 
    .EXAMPLE
        New-AviRestVirtualservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVirtualservice')]$Virtualservice
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/virtualservice"
            Body = ConvertTo-JSON $Virtualservice -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Virtualservice.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVirtualservice
        }
    }
}
Function New-AVIRestVirtualserviceClear {
<#
    .SYNOPSIS
        Configure Avi VirtualService Object API
 
    .EXAMPLE
        New-AviRestVirtualserviceClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVirtualserviceClear')]$VirtualserviceClear
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/virtualservice/clear"
            Body = ConvertTo-JSON $VirtualserviceClear -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VirtualserviceClear.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVirtualserviceClear
        }
    }
}
Function New-AVIRestVirtualserviceObject {
<#
    .SYNOPSIS
        Configure Avi VirtualService Object API
 
    .EXAMPLE
        New-AviRestVirtualservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVirtualservice')
        $result
    }
}
Function New-AVIRestVirtualserviceClearObject {
<#
    .SYNOPSIS
        Configure Avi VirtualService Object API
 
    .EXAMPLE
        New-AviRestVirtualserviceClear
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{
  "ip_addr": "",
  "port": 0
}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVirtualserviceClear')
        $result
    }
}
Function Invoke-AVIRestVirtualserviceScaleout {
<#
    .SYNOPSIS
        Configure Avi VirtualService Object API
 
    .EXAMPLE
        Invoke-AviRestVirtualserviceScaleout
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVirtualserviceScaleout')]$VirtualserviceScaleout
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $VirtualserviceScaleout.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/virtualservice/${uuid}/scaleout"
            Body = ConvertTo-JSON $VirtualserviceScaleout -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VirtualserviceScaleout.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVirtualserviceScaleout
        }
    }
}
Function Invoke-AVIRestVirtualserviceScalein {
<#
    .SYNOPSIS
        Configure Avi VirtualService Object API
 
    .EXAMPLE
        Invoke-AviRestVirtualserviceScalein
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVirtualserviceScalein')]$VirtualserviceScalein
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $VirtualserviceScalein.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/virtualservice/${uuid}/scalein"
            Body = ConvertTo-JSON $VirtualserviceScalein -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VirtualserviceScalein.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVirtualserviceScalein
        }
    }
}
Function Invoke-AVIRestVirtualserviceMigrate {
<#
    .SYNOPSIS
        Configure Avi VirtualService Object API
 
    .EXAMPLE
        Invoke-AviRestVirtualserviceMigrate
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVirtualserviceMigrate')]$VirtualserviceMigrate
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $VirtualserviceMigrate.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/virtualservice/${uuid}/migrate"
            Body = ConvertTo-JSON $VirtualserviceMigrate -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VirtualserviceMigrate.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVirtualserviceMigrate
        }
    }
}
Function Invoke-AVIRestVirtualserviceSwitchover {
<#
    .SYNOPSIS
        Configure Avi VirtualService Object API
 
    .EXAMPLE
        Invoke-AviRestVirtualserviceSwitchover
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVirtualserviceSwitchover')]$VirtualserviceSwitchover
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $VirtualserviceSwitchover.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/virtualservice/${uuid}/switchover"
            Body = ConvertTo-JSON $VirtualserviceSwitchover -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VirtualserviceSwitchover.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVirtualserviceSwitchover
        }
    }
}
Function Invoke-AVIRestVirtualserviceResync {
<#
    .SYNOPSIS
        Configure Avi VirtualService Object API
 
    .EXAMPLE
        Invoke-AviRestVirtualserviceResync
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVirtualserviceResync')]$VirtualserviceResync
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $VirtualserviceResync.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/virtualservice/${uuid}/resync"
            Body = ConvertTo-JSON $VirtualserviceResync -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VirtualserviceResync.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVirtualserviceResync
        }
    }
}
Function Invoke-AVIRestVirtualserviceRotatekeys {
<#
    .SYNOPSIS
        Configure Avi VirtualService Object API
 
    .EXAMPLE
        Invoke-AviRestVirtualserviceRotatekeys
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVirtualserviceRotatekeys')]$VirtualserviceRotatekeys
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $VirtualserviceRotatekeys.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/virtualservice/${uuid}/rotatekeys"
            Body = ConvertTo-JSON $VirtualserviceRotatekeys -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VirtualserviceRotatekeys.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVirtualserviceRotatekeys
        }
    }
}
Function Invoke-AVIRestVirtualserviceRetryplacement {
<#
    .SYNOPSIS
        Configure Avi VirtualService Object API
 
    .EXAMPLE
        Invoke-AviRestVirtualserviceRetryplacement
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVirtualserviceRetryplacement')]$VirtualserviceRetryplacement
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $VirtualserviceRetryplacement.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/virtualservice/${uuid}/retryplacement"
            Body = ConvertTo-JSON $VirtualserviceRetryplacement -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VirtualserviceRetryplacement.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVirtualserviceRetryplacement
        }
    }
}
Function Invoke-AVIRestVirtualserviceLogRecommendation {
<#
    .SYNOPSIS
        Configure Avi VirtualService Object API
 
    .EXAMPLE
        Invoke-AviRestVirtualserviceLogRecommendation
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVirtualserviceLogRecommendation')]$VirtualserviceLogRecommendation
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $VirtualserviceLogRecommendation.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/virtualservice/${uuid}/log-recommendation"
            Body = ConvertTo-JSON $VirtualserviceLogRecommendation -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VirtualserviceLogRecommendation.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVirtualserviceLogRecommendation
        }
    }
}
Function Invoke-AVIRestVirtualserviceApplyLogRecommendation {
<#
    .SYNOPSIS
        Configure Avi VirtualService Object API
 
    .EXAMPLE
        Invoke-AviRestVirtualserviceApplyLogRecommendation
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVirtualserviceApplyLogRecommendation')]$VirtualserviceApplyLogRecommendation
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $VirtualserviceApplyLogRecommendation.uuid
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/virtualservice/${uuid}/apply-log-recommendation"
            Body = ConvertTo-JSON $VirtualserviceApplyLogRecommendation -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VirtualserviceApplyLogRecommendation.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVirtualserviceApplyLogRecommendation
        }
    }
}
Function New-AVIRestVirtualserviceScaleoutObject {
<#
    .SYNOPSIS
        Configure Avi VirtualService Object API
 
    .EXAMPLE
        New-AviRestVirtualserviceScaleout
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{
  "vip_id": ""
}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{
  "admin_up": false,
  "new_vcpus": 0,
  "to_host_ref": "",
  "to_new_se": false,
  "to_se_ref": "",
  "uuid": "",
  "vip_id": ""
}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVirtualserviceScaleout')
        $result
    }
}
Function New-AVIRestVirtualserviceScaleinObject {
<#
    .SYNOPSIS
        Configure Avi VirtualService Object API
 
    .EXAMPLE
        New-AviRestVirtualserviceScalein
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{
  "vip_id": ""
}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{
  "admin_down": false,
  "from_se_ref": "",
  "scalein_primary": false,
  "uuid": "",
  "vip_id": ""
}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVirtualserviceScalein')
        $result
    }
}
Function New-AVIRestVirtualserviceMigrateObject {
<#
    .SYNOPSIS
        Configure Avi VirtualService Object API
 
    .EXAMPLE
        New-AviRestVirtualserviceMigrate
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{
  "vip_id": ""
}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{
  "from_se_ref": "",
  "new_vcpus": 0,
  "to_host_ref": "",
  "to_new_se": false,
  "to_se_ref": "",
  "uuid": "",
  "vip_id": ""
}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVirtualserviceMigrate')
        $result
    }
}
Function New-AVIRestVirtualserviceSwitchoverObject {
<#
    .SYNOPSIS
        Configure Avi VirtualService Object API
 
    .EXAMPLE
        New-AviRestVirtualserviceSwitchover
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{
  "vip_id": ""
}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{
  "se_uuid": "",
  "uuid": "",
  "vip_id": ""
}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVirtualserviceSwitchover')
        $result
    }
}
Function New-AVIRestVirtualserviceResyncObject {
<#
    .SYNOPSIS
        Configure Avi VirtualService Object API
 
    .EXAMPLE
        New-AviRestVirtualserviceResync
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{
  "se_ref": [
    {}
  ],
  "uuid": ""
}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVirtualserviceResync')
        $result
    }
}
Function New-AVIRestVirtualserviceRetryplacementObject {
<#
    .SYNOPSIS
        Configure Avi VirtualService Object API
 
    .EXAMPLE
        New-AviRestVirtualserviceRetryplacement
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{
  "vip_id": ""
}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{
  "all_east_west": false,
  "uuid": "",
  "vip_id": ""
}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVirtualserviceRetryplacement')
        $result
    }
}
Function New-AVIRestVirtualserviceLogRecommendationObject {
<#
    .SYNOPSIS
        Configure Avi VirtualService Object API
 
    .EXAMPLE
        New-AviRestVirtualserviceLogRecommendation
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVirtualserviceLogRecommendation')
        $result
    }
}
Function New-AVIRestVirtualserviceApplyLogRecommendationObject {
<#
    .SYNOPSIS
        Configure Avi VirtualService Object API
 
    .EXAMPLE
        New-AviRestVirtualserviceApplyLogRecommendation
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{
  "actions": [
    {
      "data": "",
      "url_ref": ""
    }
  ]
}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVirtualserviceApplyLogRecommendation')
        $result
    }
}
Function Remove-AVIRestVirtualservice {
<#
    .SYNOPSIS
        Configure Avi VirtualService Object API
 
    .EXAMPLE
        Get-AviRestVirtualservice | Remove-AviRestVirtualservice
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Virtualservice')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Virtualservice',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVirtualservice')]$Virtualservice,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Virtualservice') {
            $uuid = $Virtualservice.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/virtualservice/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Virtualservice.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestVrfcontext {
<#
    .SYNOPSIS
        Configure Avi VrfContext Object API
 
    .EXAMPLE
        Get-AviRestVrfcontext
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'v',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/vrfcontext$Uuid" : '/api/vrfcontext'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestVrfcontext
    }
}
Function Set-AVIRestVrfcontext {
<#
    .SYNOPSIS
        Configure Avi VrfContext Object API
 
    .EXAMPLE
        $object = Get-AviRestVrfcontext
        $object.name = 'New name'
        Set-AviRestVrfcontext $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVrfcontext')]$Vrfcontext
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Vrfcontext.uuid
        $global:body = ConvertTo-JSON $Vrfcontext -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/vrfcontext/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Vrfcontext.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVrfcontext
        }
    }
}
Function New-AVIRestVrfcontext {
<#
    .SYNOPSIS
        Configure Avi VrfContext Object API
 
    .EXAMPLE
        New-AviRestVrfcontext
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVrfcontext')]$Vrfcontext
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vrfcontext"
            Body = ConvertTo-JSON $Vrfcontext -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Vrfcontext.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVrfcontext
        }
    }
}
Function New-AVIRestVrfcontextObject {
<#
    .SYNOPSIS
        Configure Avi VrfContext Object API
 
    .EXAMPLE
        New-AviRestVrfcontext
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVrfcontext')
        $result
    }
}
Function Remove-AVIRestVrfcontext {
<#
    .SYNOPSIS
        Configure Avi VrfContext Object API
 
    .EXAMPLE
        Get-AviRestVrfcontext | Remove-AviRestVrfcontext
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Vrfcontext')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Vrfcontext',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVrfcontext')]$Vrfcontext,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Vrfcontext') {
            $uuid = $Vrfcontext.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/vrfcontext/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Vrfcontext.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestVsdatascriptset {
<#
    .SYNOPSIS
        Configure Avi VSDataScriptSet Object API
 
    .EXAMPLE
        Get-AviRestVsdatascriptset
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'v',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/vsdatascriptset$Uuid" : '/api/vsdatascriptset'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestVsdatascriptset
    }
}
Function Set-AVIRestVsdatascriptset {
<#
    .SYNOPSIS
        Configure Avi VSDataScriptSet Object API
 
    .EXAMPLE
        $object = Get-AviRestVsdatascriptset
        $object.name = 'New name'
        Set-AviRestVsdatascriptset $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVsdatascriptset')]$Vsdatascriptset
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Vsdatascriptset.uuid
        $global:body = ConvertTo-JSON $Vsdatascriptset -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/vsdatascriptset/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Vsdatascriptset.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVsdatascriptset
        }
    }
}
Function New-AVIRestVsdatascriptset {
<#
    .SYNOPSIS
        Configure Avi VSDataScriptSet Object API
 
    .EXAMPLE
        New-AviRestVsdatascriptset
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVsdatascriptset')]$Vsdatascriptset
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vsdatascriptset"
            Body = ConvertTo-JSON $Vsdatascriptset -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Vsdatascriptset.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVsdatascriptset
        }
    }
}
Function New-AVIRestVsdatascriptsetObject {
<#
    .SYNOPSIS
        Configure Avi VSDataScriptSet Object API
 
    .EXAMPLE
        New-AviRestVsdatascriptset
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVsdatascriptset')
        $result
    }
}
Function Remove-AVIRestVsdatascriptset {
<#
    .SYNOPSIS
        Configure Avi VSDataScriptSet Object API
 
    .EXAMPLE
        Get-AviRestVsdatascriptset | Remove-AviRestVsdatascriptset
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Vsdatascriptset')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Vsdatascriptset',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVsdatascriptset')]$Vsdatascriptset,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Vsdatascriptset') {
            $uuid = $Vsdatascriptset.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/vsdatascriptset/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Vsdatascriptset.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestVsgs {
<#
    .SYNOPSIS
        Configure Avi VsGs Object API
 
    .EXAMPLE
        Get-AviRestVsgs
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'v',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/vsgs$Uuid" : '/api/vsgs'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestVsgs
    }
}
Function Set-AVIRestVsgs {
<#
    .SYNOPSIS
        Configure Avi VsGs Object API
 
    .EXAMPLE
        $object = Get-AviRestVsgs
        $object.name = 'New name'
        Set-AviRestVsgs $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVsgs')]$Vsgs
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Vsgs.uuid
        $global:body = ConvertTo-JSON $Vsgs -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/vsgs/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Vsgs.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVsgs
        }
    }
}
Function New-AVIRestVsgs {
<#
    .SYNOPSIS
        Configure Avi VsGs Object API
 
    .EXAMPLE
        New-AviRestVsgs
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVsgs')]$Vsgs
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vsgs"
            Body = ConvertTo-JSON $Vsgs -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Vsgs.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVsgs
        }
    }
}
Function New-AVIRestVsgsObject {
<#
    .SYNOPSIS
        Configure Avi VsGs Object API
 
    .EXAMPLE
        New-AviRestVsgs
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVsgs')
        $result
    }
}
Function Remove-AVIRestVsgs {
<#
    .SYNOPSIS
        Configure Avi VsGs Object API
 
    .EXAMPLE
        Get-AviRestVsgs | Remove-AviRestVsgs
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Vsgs')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Vsgs',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVsgs')]$Vsgs,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Vsgs') {
            $uuid = $Vsgs.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/vsgs/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Vsgs.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestVirtualserviceInventory {
<#
    .SYNOPSIS
        Configure Avi VsInventory Object API
 
    .EXAMPLE
        Get-AviRestVirtualserviceInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'v',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/virtualservice-inventory$Uuid" : '/api/virtualservice-inventory'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestVirtualserviceInventory
    }
}
Function Set-AVIRestVirtualserviceInventory {
<#
    .SYNOPSIS
        Configure Avi VsInventory Object API
 
    .EXAMPLE
        $object = Get-AviRestVirtualserviceInventory
        $object.name = 'New name'
        Set-AviRestVirtualserviceInventory $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVirtualserviceInventory')]$VirtualserviceInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $VirtualserviceInventory.uuid
        $global:body = ConvertTo-JSON $VirtualserviceInventory -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/virtualservice-inventory/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($VirtualserviceInventory.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVirtualserviceInventory
        }
    }
}
Function New-AVIRestVirtualserviceInventory {
<#
    .SYNOPSIS
        Configure Avi VsInventory Object API
 
    .EXAMPLE
        New-AviRestVirtualserviceInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVirtualserviceInventory')]$VirtualserviceInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/virtualservice-inventory"
            Body = ConvertTo-JSON $VirtualserviceInventory -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VirtualserviceInventory.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVirtualserviceInventory
        }
    }
}
Function Remove-AVIRestVirtualserviceInventory {
<#
    .SYNOPSIS
        Configure Avi VsInventory Object API
 
    .EXAMPLE
        Get-AviRestVirtualserviceInventory | Remove-AviRestVirtualserviceInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'VirtualserviceInventory')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'VirtualserviceInventory',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVirtualserviceInventory')]$VirtualserviceInventory,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'VirtualserviceInventory') {
            $uuid = $VirtualserviceInventory.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/virtualservice-inventory/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($VirtualserviceInventory.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestVsvip {
<#
    .SYNOPSIS
        Configure Avi VsVip Object API
 
    .EXAMPLE
        Get-AviRestVsvip
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'v',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/vsvip$Uuid" : '/api/vsvip'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestVsvip
    }
}
Function Set-AVIRestVsvip {
<#
    .SYNOPSIS
        Configure Avi VsVip Object API
 
    .EXAMPLE
        $object = Get-AviRestVsvip
        $object.name = 'New name'
        Set-AviRestVsvip $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVsvip')]$Vsvip
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Vsvip.uuid
        $global:body = ConvertTo-JSON $Vsvip -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/vsvip/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Vsvip.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVsvip
        }
    }
}
Function New-AVIRestVsvip {
<#
    .SYNOPSIS
        Configure Avi VsVip Object API
 
    .EXAMPLE
        New-AviRestVsvip
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVsvip')]$Vsvip
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vsvip"
            Body = ConvertTo-JSON $Vsvip -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Vsvip.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVsvip
        }
    }
}
Function New-AVIRestVsvipObject {
<#
    .SYNOPSIS
        Configure Avi VsVip Object API
 
    .EXAMPLE
        New-AviRestVsvip
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVsvip')
        $result
    }
}
Function Remove-AVIRestVsvip {
<#
    .SYNOPSIS
        Configure Avi VsVip Object API
 
    .EXAMPLE
        Get-AviRestVsvip | Remove-AviRestVsvip
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Vsvip')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Vsvip',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVsvip')]$Vsvip,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Vsvip') {
            $uuid = $Vsvip.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/vsvip/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Vsvip.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestVsvipInventory {
<#
    .SYNOPSIS
        Configure Avi VsvipInventory Object API
 
    .EXAMPLE
        Get-AviRestVsvipInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'v',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/vsvip-inventory$Uuid" : '/api/vsvip-inventory'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestVsvipInventory
    }
}
Function Set-AVIRestVsvipInventory {
<#
    .SYNOPSIS
        Configure Avi VsvipInventory Object API
 
    .EXAMPLE
        $object = Get-AviRestVsvipInventory
        $object.name = 'New name'
        Set-AviRestVsvipInventory $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVsvipInventory')]$VsvipInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $VsvipInventory.uuid
        $global:body = ConvertTo-JSON $VsvipInventory -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/vsvip-inventory/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($VsvipInventory.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestVsvipInventory
        }
    }
}
Function New-AVIRestVsvipInventory {
<#
    .SYNOPSIS
        Configure Avi VsvipInventory Object API
 
    .EXAMPLE
        New-AviRestVsvipInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVsvipInventory')]$VsvipInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/vsvip-inventory"
            Body = ConvertTo-JSON $VsvipInventory -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($VsvipInventory.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestVsvipInventory
        }
    }
}
Function New-AVIRestVsvipInventoryObject {
<#
    .SYNOPSIS
        Configure Avi VsvipInventory Object API
 
    .EXAMPLE
        New-AviRestVsvipInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestVsvipInventory')
        $result
    }
}
Function Remove-AVIRestVsvipInventory {
<#
    .SYNOPSIS
        Configure Avi VsvipInventory Object API
 
    .EXAMPLE
        Get-AviRestVsvipInventory | Remove-AviRestVsvipInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'VsvipInventory')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'VsvipInventory',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestVsvipInventory')]$VsvipInventory,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'VsvipInventory') {
            $uuid = $VsvipInventory.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/vsvip-inventory/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($VsvipInventory.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestWafapplicationsignatureprovider {
<#
    .SYNOPSIS
        Configure Avi WafApplicationSignatureProvider Object API
 
    .EXAMPLE
        Get-AviRestWafapplicationsignatureprovider
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'w',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/wafapplicationsignatureprovider$Uuid" : '/api/wafapplicationsignatureprovider'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestWafapplicationsignatureprovider
    }
}
Function Set-AVIRestWafapplicationsignatureprovider {
<#
    .SYNOPSIS
        Configure Avi WafApplicationSignatureProvider Object API
 
    .EXAMPLE
        $object = Get-AviRestWafapplicationsignatureprovider
        $object.name = 'New name'
        Set-AviRestWafapplicationsignatureprovider $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafapplicationsignatureprovider')]$Wafapplicationsignatureprovider
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Wafapplicationsignatureprovider.uuid
        $global:body = ConvertTo-JSON $Wafapplicationsignatureprovider -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/wafapplicationsignatureprovider/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Wafapplicationsignatureprovider.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestWafapplicationsignatureprovider
        }
    }
}
Function New-AVIRestWafapplicationsignatureprovider {
<#
    .SYNOPSIS
        Configure Avi WafApplicationSignatureProvider Object API
 
    .EXAMPLE
        New-AviRestWafapplicationsignatureprovider
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafapplicationsignatureprovider')]$Wafapplicationsignatureprovider
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/wafapplicationsignatureprovider"
            Body = ConvertTo-JSON $Wafapplicationsignatureprovider -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Wafapplicationsignatureprovider.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestWafapplicationsignatureprovider
        }
    }
}
Function New-AVIRestWafapplicationsignatureproviderObject {
<#
    .SYNOPSIS
        Configure Avi WafApplicationSignatureProvider Object API
 
    .EXAMPLE
        New-AviRestWafapplicationsignatureprovider
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestWafapplicationsignatureprovider')
        $result
    }
}
Function Remove-AVIRestWafapplicationsignatureprovider {
<#
    .SYNOPSIS
        Configure Avi WafApplicationSignatureProvider Object API
 
    .EXAMPLE
        Get-AviRestWafapplicationsignatureprovider | Remove-AviRestWafapplicationsignatureprovider
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Wafapplicationsignatureprovider')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Wafapplicationsignatureprovider',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafapplicationsignatureprovider')]$Wafapplicationsignatureprovider,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Wafapplicationsignatureprovider') {
            $uuid = $Wafapplicationsignatureprovider.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/wafapplicationsignatureprovider/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Wafapplicationsignatureprovider.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestWafcrs {
<#
    .SYNOPSIS
        Configure Avi WafCRS Object API
 
    .EXAMPLE
        Get-AviRestWafcrs
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'w',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/wafcrs$Uuid" : '/api/wafcrs'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestWafcrs
    }
}
Function Set-AVIRestWafcrs {
<#
    .SYNOPSIS
        Configure Avi WafCRS Object API
 
    .EXAMPLE
        $object = Get-AviRestWafcrs
        $object.name = 'New name'
        Set-AviRestWafcrs $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafcrs')]$Wafcrs
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Wafcrs.uuid
        $global:body = ConvertTo-JSON $Wafcrs -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/wafcrs/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Wafcrs.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestWafcrs
        }
    }
}
Function New-AVIRestWafcrs {
<#
    .SYNOPSIS
        Configure Avi WafCRS Object API
 
    .EXAMPLE
        New-AviRestWafcrs
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafcrs')]$Wafcrs
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/wafcrs"
            Body = ConvertTo-JSON $Wafcrs -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Wafcrs.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestWafcrs
        }
    }
}
Function New-AVIRestWafcrsObject {
<#
    .SYNOPSIS
        Configure Avi WafCRS Object API
 
    .EXAMPLE
        New-AviRestWafcrs
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestWafcrs')
        $result
    }
}
Function Remove-AVIRestWafcrs {
<#
    .SYNOPSIS
        Configure Avi WafCRS Object API
 
    .EXAMPLE
        Get-AviRestWafcrs | Remove-AviRestWafcrs
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Wafcrs')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Wafcrs',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafcrs')]$Wafcrs,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Wafcrs') {
            $uuid = $Wafcrs.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/wafcrs/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Wafcrs.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestWafpolicy {
<#
    .SYNOPSIS
        Configure Avi WafPolicy Object API
 
    .EXAMPLE
        Get-AviRestWafpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'w',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/wafpolicy$Uuid" : '/api/wafpolicy'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestWafpolicy
    }
}
Function Set-AVIRestWafpolicy {
<#
    .SYNOPSIS
        Configure Avi WafPolicy Object API
 
    .EXAMPLE
        $object = Get-AviRestWafpolicy
        $object.name = 'New name'
        Set-AviRestWafpolicy $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafpolicy')]$Wafpolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Wafpolicy.uuid
        $global:body = ConvertTo-JSON $Wafpolicy -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/wafpolicy/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Wafpolicy.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestWafpolicy
        }
    }
}
Function Set-AVIRestWafpolicyUpdateCrsRules {
<#
    .SYNOPSIS
        Configure Avi WafPolicy Object API
 
    .EXAMPLE
        $object = Get-AviRestWafpolicyUpdateCrsRules
        $object.name = 'New name'
        Set-AviRestWafpolicyUpdateCrsRules $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafpolicyUpdateCrsRules')]$WafpolicyUpdateCrsRules
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $WafpolicyUpdateCrsRules.uuid
        $global:body = ConvertTo-JSON $WafpolicyUpdateCrsRules -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/wafpolicy/${uuid}/update-crs-rules"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($WafpolicyUpdateCrsRules.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestWafpolicyUpdateCrsRules
        }
    }
}
Function New-AVIRestWafpolicy {
<#
    .SYNOPSIS
        Configure Avi WafPolicy Object API
 
    .EXAMPLE
        New-AviRestWafpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafpolicy')]$Wafpolicy
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/wafpolicy"
            Body = ConvertTo-JSON $Wafpolicy -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Wafpolicy.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestWafpolicy
        }
    }
}
Function New-AVIRestWafpolicyObject {
<#
    .SYNOPSIS
        Configure Avi WafPolicy Object API
 
    .EXAMPLE
        New-AviRestWafpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestWafpolicy')
        $result
    }
}
Function Remove-AVIRestWafpolicy {
<#
    .SYNOPSIS
        Configure Avi WafPolicy Object API
 
    .EXAMPLE
        Get-AviRestWafpolicy | Remove-AviRestWafpolicy
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Wafpolicy')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Wafpolicy',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafpolicy')]$Wafpolicy,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Wafpolicy') {
            $uuid = $Wafpolicy.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/wafpolicy/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Wafpolicy.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestWafpolicypsmgroup {
<#
    .SYNOPSIS
        Configure Avi WafPolicyPSMGroup Object API
 
    .EXAMPLE
        Get-AviRestWafpolicypsmgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'w',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/wafpolicypsmgroup$Uuid" : '/api/wafpolicypsmgroup'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestWafpolicypsmgroup
    }
}
Function Set-AVIRestWafpolicypsmgroup {
<#
    .SYNOPSIS
        Configure Avi WafPolicyPSMGroup Object API
 
    .EXAMPLE
        $object = Get-AviRestWafpolicypsmgroup
        $object.name = 'New name'
        Set-AviRestWafpolicypsmgroup $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafpolicypsmgroup')]$Wafpolicypsmgroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Wafpolicypsmgroup.uuid
        $global:body = ConvertTo-JSON $Wafpolicypsmgroup -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/wafpolicypsmgroup/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Wafpolicypsmgroup.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestWafpolicypsmgroup
        }
    }
}
Function New-AVIRestWafpolicypsmgroup {
<#
    .SYNOPSIS
        Configure Avi WafPolicyPSMGroup Object API
 
    .EXAMPLE
        New-AviRestWafpolicypsmgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafpolicypsmgroup')]$Wafpolicypsmgroup
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/wafpolicypsmgroup"
            Body = ConvertTo-JSON $Wafpolicypsmgroup -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Wafpolicypsmgroup.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestWafpolicypsmgroup
        }
    }
}
Function New-AVIRestWafpolicypsmgroupObject {
<#
    .SYNOPSIS
        Configure Avi WafPolicyPSMGroup Object API
 
    .EXAMPLE
        New-AviRestWafpolicypsmgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestWafpolicypsmgroup')
        $result
    }
}
Function Remove-AVIRestWafpolicypsmgroup {
<#
    .SYNOPSIS
        Configure Avi WafPolicyPSMGroup Object API
 
    .EXAMPLE
        Get-AviRestWafpolicypsmgroup | Remove-AviRestWafpolicypsmgroup
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Wafpolicypsmgroup')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Wafpolicypsmgroup',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafpolicypsmgroup')]$Wafpolicypsmgroup,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Wafpolicypsmgroup') {
            $uuid = $Wafpolicypsmgroup.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/wafpolicypsmgroup/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Wafpolicypsmgroup.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestWafpolicypsmgroupInventory {
<#
    .SYNOPSIS
        Configure Avi WafPolicyPSMGroupInventory Object API
 
    .EXAMPLE
        Get-AviRestWafpolicypsmgroupInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'w',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/wafpolicypsmgroup-inventory$Uuid" : '/api/wafpolicypsmgroup-inventory'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestWafpolicypsmgroupInventory
    }
}
Function Set-AVIRestWafpolicypsmgroupInventory {
<#
    .SYNOPSIS
        Configure Avi WafPolicyPSMGroupInventory Object API
 
    .EXAMPLE
        $object = Get-AviRestWafpolicypsmgroupInventory
        $object.name = 'New name'
        Set-AviRestWafpolicypsmgroupInventory $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafpolicypsmgroupInventory')]$WafpolicypsmgroupInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $WafpolicypsmgroupInventory.uuid
        $global:body = ConvertTo-JSON $WafpolicypsmgroupInventory -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/wafpolicypsmgroup-inventory/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($WafpolicypsmgroupInventory.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestWafpolicypsmgroupInventory
        }
    }
}
Function New-AVIRestWafpolicypsmgroupInventory {
<#
    .SYNOPSIS
        Configure Avi WafPolicyPSMGroupInventory Object API
 
    .EXAMPLE
        New-AviRestWafpolicypsmgroupInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafpolicypsmgroupInventory')]$WafpolicypsmgroupInventory
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/wafpolicypsmgroup-inventory"
            Body = ConvertTo-JSON $WafpolicypsmgroupInventory -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($WafpolicypsmgroupInventory.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestWafpolicypsmgroupInventory
        }
    }
}
Function New-AVIRestWafpolicypsmgroupInventoryObject {
<#
    .SYNOPSIS
        Configure Avi WafPolicyPSMGroupInventory Object API
 
    .EXAMPLE
        New-AviRestWafpolicypsmgroupInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestWafpolicypsmgroupInventory')
        $result
    }
}
Function Remove-AVIRestWafpolicypsmgroupInventory {
<#
    .SYNOPSIS
        Configure Avi WafPolicyPSMGroupInventory Object API
 
    .EXAMPLE
        Get-AviRestWafpolicypsmgroupInventory | Remove-AviRestWafpolicypsmgroupInventory
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'WafpolicypsmgroupInventory')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'WafpolicypsmgroupInventory',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafpolicypsmgroupInventory')]$WafpolicypsmgroupInventory,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'WafpolicypsmgroupInventory') {
            $uuid = $WafpolicypsmgroupInventory.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/wafpolicypsmgroup-inventory/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($WafpolicypsmgroupInventory.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestWafprofile {
<#
    .SYNOPSIS
        Configure Avi WafProfile Object API
 
    .EXAMPLE
        Get-AviRestWafprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'w',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/wafprofile$Uuid" : '/api/wafprofile'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestWafprofile
    }
}
Function Set-AVIRestWafprofile {
<#
    .SYNOPSIS
        Configure Avi WafProfile Object API
 
    .EXAMPLE
        $object = Get-AviRestWafprofile
        $object.name = 'New name'
        Set-AviRestWafprofile $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafprofile')]$Wafprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Wafprofile.uuid
        $global:body = ConvertTo-JSON $Wafprofile -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/wafprofile/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Wafprofile.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestWafprofile
        }
    }
}
Function New-AVIRestWafprofile {
<#
    .SYNOPSIS
        Configure Avi WafProfile Object API
 
    .EXAMPLE
        New-AviRestWafprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafprofile')]$Wafprofile
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/wafprofile"
            Body = ConvertTo-JSON $Wafprofile -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Wafprofile.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestWafprofile
        }
    }
}
Function New-AVIRestWafprofileObject {
<#
    .SYNOPSIS
        Configure Avi WafProfile Object API
 
    .EXAMPLE
        New-AviRestWafprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestWafprofile')
        $result
    }
}
Function Remove-AVIRestWafprofile {
<#
    .SYNOPSIS
        Configure Avi WafProfile Object API
 
    .EXAMPLE
        Get-AviRestWafprofile | Remove-AviRestWafprofile
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Wafprofile')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Wafprofile',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWafprofile')]$Wafprofile,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Wafprofile') {
            $uuid = $Wafprofile.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/wafprofile/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Wafprofile.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestWebapput {
<#
    .SYNOPSIS
        Configure Avi WebappUT Object API
 
    .EXAMPLE
        Get-AviRestWebapput
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'w',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/webapput$Uuid" : '/api/webapput'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestWebapput
    }
}
Function Set-AVIRestWebapput {
<#
    .SYNOPSIS
        Configure Avi WebappUT Object API
 
    .EXAMPLE
        $object = Get-AviRestWebapput
        $object.name = 'New name'
        Set-AviRestWebapput $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWebapput')]$Webapput
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Webapput.uuid
        $global:body = ConvertTo-JSON $Webapput -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/webapput/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Webapput.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestWebapput
        }
    }
}
Function New-AVIRestWebapput {
<#
    .SYNOPSIS
        Configure Avi WebappUT Object API
 
    .EXAMPLE
        New-AviRestWebapput
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWebapput')]$Webapput
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/webapput"
            Body = ConvertTo-JSON $Webapput -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Webapput.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestWebapput
        }
    }
}
Function New-AVIRestWebapputObject {
<#
    .SYNOPSIS
        Configure Avi WebappUT Object API
 
    .EXAMPLE
        New-AviRestWebapput
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestWebapput')
        $result
    }
}
Function Remove-AVIRestWebapput {
<#
    .SYNOPSIS
        Configure Avi WebappUT Object API
 
    .EXAMPLE
        Get-AviRestWebapput | Remove-AviRestWebapput
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Webapput')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Webapput',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWebapput')]$Webapput,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Webapput') {
            $uuid = $Webapput.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/webapput/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Webapput.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Function Get-AVIRestWebhook {
<#
    .SYNOPSIS
        Configure Avi Webhook Object API
 
    .EXAMPLE
        Get-AviRestWebhook
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
    DefaultParameterSetName = 'Filter',
    SupportsPaging=$true)]
    Param (
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$Name,
        [Parameter(
            Mandatory=$false,
            Position=0,
            ParameterSetName = 'Uuid',
            ValueFromPipelineByPropertyName = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid,
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string]$JoinResource = 'w',
        [Parameter(Mandatory=$false)]
        [Parameter(ParameterSetName = 'Uuid')]
        [Parameter(ParameterSetName = 'Filter')]
        [ValidateNotNullOrEmpty()]
        [string[]]$Fields
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'GET'
            Endpoint = $Uuid ? "/api/webhook$Uuid" : '/api/webhook'
        }
        Add-AVIRestParams $splat $PSBoundParameters $PsCmdlet.ParameterSetName
        Invoke-AVIRest @splat -OutputType AVIRestWebhook
    }
}
Function Set-AVIRestWebhook {
<#
    .SYNOPSIS
        Configure Avi Webhook Object API
 
    .EXAMPLE
        $object = Get-AviRestWebhook
        $object.name = 'New name'
        Set-AviRestWebhook $object
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Body')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Body',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWebhook')]$Webhook
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $uuid = $Webhook.uuid
        $global:body = ConvertTo-JSON $Webhook -Depth 100 -Compress
        $splat = @{
            Method = 'PUT'
            Endpoint = "/api/webhook/${uuid}"
            Body = $body
        }
        if ($pscmdlet.ShouldProcess("$($Webhook.name)", "PUT/EDIT")) {
            Invoke-AVIRest @splat -OutputType AVIRestWebhook
        }
    }
}
Function New-AVIRestWebhook {
<#
    .SYNOPSIS
        Configure Avi Webhook Object API
 
    .EXAMPLE
        New-AviRestWebhook
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Object')]
    Param (
        [Parameter(Mandatory=$true,ParameterSetName='Object')]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWebhook')]$Webhook
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        $splat = @{
            Method = 'POST'
            Endpoint = "/api/webhook"
            Body = ConvertTo-JSON $Webhook -Depth 100 -Compress
        }
        if ($pscmdlet.ShouldProcess("$($Webhook.name)", "POST")) {
            Invoke-AVIRest @splat -OutputType AVIRestWebhook
        }
    }
}
Function New-AVIRestWebhookObject {
<#
    .SYNOPSIS
        Configure Avi Webhook Object API
 
    .EXAMPLE
        New-AviRestWebhook
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    Param (
        [Switch]$MinRequired
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSBoundParameters.minRequired.isPresent) {
        $min = @'
{}
'@

        $result = $min | ConvertFrom-JSON -Depth 100
        }
        else {
    $full = @'
{}
'@

        $result = $full | ConvertFrom-JSON -Depth 100
        }
        $result.PSObject.TypeNames.Insert(0,'AVIRestWebhook')
        $result
    }
}
Function Remove-AVIRestWebhook {
<#
    .SYNOPSIS
        Configure Avi Webhook Object API
 
    .EXAMPLE
        Get-AviRestWebhook | Remove-AviRestWebhook
         
    .NOTES
        Author: Andy Grant
        Website: www.linkedin.com/in/andybgrant/
#>

    [CmdletBinding(
        ConfirmImpact = 'High',
        SupportsShouldProcess = $true,
        DefaultParameterSetName = 'Webhook')]
    Param (
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'Webhook',
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [PSTypeName('AVIRestWebhook')]$Webhook,
        [Parameter(
            Mandatory=$true,
            Position=0,
            ParameterSetName = 'uuid')]
        [ValidateNotNullOrEmpty()]
        [string]$Uuid
    )
    Begin {
        $swaggerVersion = '30.2.1'
        if ([version]$global:AVILbServerInfo.version.version -gt [version]$swaggerVersion) {
            $InvalidOperation = [System.Management.automation.ErrorRecord]::New(
                [System.Exception]::New("Requires AVI API revision [$swaggerVersion]"),0,
                [System.Management.Automation.ErrorCategory]::InvalidOperation,$PSCmdlet.CommandOrigin
            )
            $PSCmdlet.ThrowTerminatingError($InvalidOperation)
        }
    }
    Process {
        if ($PSCmdlet.ParameterSetName -eq 'Webhook') {
            $uuid = $Webhook.uuid
        }
        $splat = @{
            Method = 'DELETE'
            Endpoint = "/api/webhook/${uuid}"
        }
        if ($pscmdlet.ShouldProcess("$($Webhook.name)", "DELETE")) {
            Invoke-AVIRest @splat
        }
    }
}
Export-ModuleMember Connect-AVIRest,Disconnect-AVIRest,Get-AVIRestRef,Copy-AVIRestObject,Get-AVIRestActiongroupconfig,Set-AVIRestActiongroupconfig,New-AVIRestActiongroupconfig,New-AVIRestActiongroupconfigObject,Remove-AVIRestActiongroupconfig,Get-AVIRestAlbservicesconfig,Set-AVIRestAlbservicesconfig,New-AVIRestAlbservicesconfig,New-AVIRestAlbservicesconfigObject,Remove-AVIRestAlbservicesconfig,Get-AVIRestAlbservicesfileupload,Set-AVIRestAlbservicesfileupload,New-AVIRestAlbservicesfileupload,New-AVIRestAlbservicesfileuploadObject,Remove-AVIRestAlbservicesfileupload,Get-AVIRestAlbservicesjob,Set-AVIRestAlbservicesjob,New-AVIRestAlbservicesjob,New-AVIRestAlbservicesjobObject,Remove-AVIRestAlbservicesjob,Get-AVIRestAlert,Set-AVIRestAlert,Set-AVIRestDebugvirtualservice,Set-AVIRestUpgradestatusinfo,Set-AVIRestVirtualservice,Set-AVIRestAlbservicesfileupload,New-AVIRestAlert,New-AVIRestDebugvirtualservice,New-AVIRestUpgradestatusinfo,New-AVIRestVirtualservice,New-AVIRestAlbservicesfileupload,New-AVIRestAlertObject,New-AVIRestDebugvirtualserviceObject,New-AVIRestUpgradestatusinfoObject,New-AVIRestVirtualserviceObject,New-AVIRestAlbservicesfileuploadObject,Remove-AVIRestAlert,Remove-AVIRestDebugvirtualservice,Remove-AVIRestUpgradestatusinfo,Remove-AVIRestVirtualservice,Remove-AVIRestAlbservicesfileupload,Get-AVIRestAlertconfig,Set-AVIRestAlertconfig,New-AVIRestAlertconfig,New-AVIRestAlertconfigObject,Remove-AVIRestAlertconfig,Get-AVIRestAlertemailconfig,Set-AVIRestAlertemailconfig,New-AVIRestAlertemailconfig,New-AVIRestAlertemailconfigObject,Invoke-AVIRestAlertemailconfigTestemail,New-AVIRestAlertemailconfigTestemailObject,Remove-AVIRestAlertemailconfig,Get-AVIRestAlertobjectlist,Set-AVIRestAlertobjectlist,New-AVIRestAlertobjectlist,New-AVIRestAlertobjectlistObject,Remove-AVIRestAlertobjectlist,Get-AVIRestAlertscriptconfig,Set-AVIRestAlertscriptconfig,New-AVIRestAlertscriptconfig,New-AVIRestAlertscriptconfigObject,Remove-AVIRestAlertscriptconfig,Get-AVIRestAlertsyslogconfig,Set-AVIRestAlertsyslogconfig,New-AVIRestAlertsyslogconfig,New-AVIRestAlertsyslogconfigObject,Invoke-AVIRestAlertsyslogconfigTestsyslog,New-AVIRestAlertsyslogconfigTestsyslogObject,Remove-AVIRestAlertsyslogconfig,Get-AVIRestAnalyticsprofile,Set-AVIRestAnalyticsprofile,New-AVIRestAnalyticsprofile,New-AVIRestAnalyticsprofileObject,Remove-AVIRestAnalyticsprofile,Get-AVIRestAnalyticsAnomalyPool,Get-AVIRestApiclifsruntime,Set-AVIRestApiclifsruntime,New-AVIRestApiclifsruntime,New-AVIRestApiclifsruntimeObject,Remove-AVIRestApiclifsruntime,Get-AVIRestApplication,Set-AVIRestApplication,New-AVIRestApplication,New-AVIRestApplicationObject,Remove-AVIRestApplication,Get-AVIRestApplicationpersistenceprofile,Set-AVIRestApplicationpersistenceprofile,New-AVIRestApplicationpersistenceprofile,New-AVIRestApplicationpersistenceprofileObject,Remove-AVIRestApplicationpersistenceprofile,Get-AVIRestApplicationprofile,Set-AVIRestApplicationprofile,New-AVIRestApplicationprofile,New-AVIRestApplicationprofileObject,Remove-AVIRestApplicationprofile,Get-AVIRestAuthmappingprofile,Set-AVIRestAuthmappingprofile,New-AVIRestAuthmappingprofile,New-AVIRestAuthmappingprofileObject,Remove-AVIRestAuthmappingprofile,Get-AVIRestAuthprofile,Set-AVIRestAuthprofile,New-AVIRestAuthprofile,New-AVIRestAuthprofileObject,Remove-AVIRestAuthprofile,Get-AVIRestAutoscalelaunchconfig,Set-AVIRestAutoscalelaunchconfig,New-AVIRestAutoscalelaunchconfig,New-AVIRestAutoscalelaunchconfigObject,Remove-AVIRestAutoscalelaunchconfig,Get-AVIRestAvailabilityzone,Set-AVIRestAvailabilityzone,New-AVIRestAvailabilityzone,New-AVIRestAvailabilityzoneObject,Remove-AVIRestAvailabilityzone,Get-AVIRestNetworksecuritypolicy,Set-AVIRestNetworksecuritypolicy,Set-AVIRestFileobject,Set-AVIRestRole,Set-AVIRestTenant,Set-AVIRestUseractivity,Set-AVIRestUseraccountprofile,Set-AVIRestClusterclouddetails,Set-AVIRestApplicationprofile,Set-AVIRestPoolgroup,Set-AVIRestSslprofile,Set-AVIRestSslkeyandcertificate,Set-AVIRestPkiprofile,Set-AVIRestCertificatemanagementprofile,Set-AVIRestVrfcontext,Set-AVIRestWebapput,Set-AVIRestIcapprofile,Set-AVIRestLabelgroup,Set-AVIRestTrafficcloneprofile,Set-AVIRestGeodb,Set-AVIRestJobs,Set-AVIRestTestsedatastorelevel1,Set-AVIRestTestsedatastorelevel2,Set-AVIRestTestsedatastorelevel3,Set-AVIRestAnalyticsprofile,Set-AVIRestAlbservicesfileupload,Set-AVIRestSecurechannelmapping,Set-AVIRestSecurechannelavailablelocalips,Set-AVIRestSecurechanneltoken,Set-AVIRestMicroservice,Set-AVIRestCustomipamdnsprofile,Set-AVIRestJwtserverprofile,Set-AVIRestAuthprofile,Set-AVIRestAuthmappingprofile,Set-AVIRestWafpolicypsmgroup,Set-AVIRestBotdetectionpolicy,Set-AVIRestBotmapping,Set-AVIRestBotconfigconsolidator,Set-AVIRestBotipreputationtypemapping,Set-AVIRestDynamicdnsrecord,Set-AVIRestVsgs,Set-AVIRestServerautoscalepolicy,Set-AVIRestAutoscalelaunchconfig,Set-AVIRestControllerproperties,Set-AVIRestNetworkservice,Set-AVIRestLicensingStatus,Set-AVIRestAlbservicesconfig,Set-AVIRestPoolInventory,Set-AVIRestPoolgroupInventory,Set-AVIRestVsvipInventory,Set-AVIRestVirtualserviceInventory,Set-AVIRestServiceengineInventory,Set-AVIRestServiceenginegroupInventory,Set-AVIRestUpgradestatussummary,Set-AVIRestServiceenginegroup,Set-AVIRestNetworkInventory,Set-AVIRestNetworkruntime,Set-AVIRestVimgrnwruntime,Set-AVIRestCloudInventory,Set-AVIRestGslbInventory,Set-AVIRestGslbserviceInventory,Set-AVIRestWafpolicypsmgroupInventory,Set-AVIRestFederationcheckpointInventory,Set-AVIRestFederationcheckpoint,Set-AVIRestIpreputationdb,Set-AVIRestNetwork,Set-AVIRestIpaddrgroup,Set-AVIRestStringgroup,Set-AVIRestMicroservicegroup,Set-AVIRestWafcrs,Set-AVIRestSystemconfiguration,Set-AVIRestControllersite,Set-AVIRestCloudconnectoruser,Set-AVIRestSeproperties,Set-AVIRestCsrfpolicy,Set-AVIRestMemorybalancernotifier,Set-AVIRestVcenterserver,Set-AVIRestAvailabilityzone,Set-AVIRestNsxtsegmentruntime,Set-AVIRestStatediffoperation,Set-AVIRestApplicationpersistenceprofile,Set-AVIRestScvsstateinfo,Set-AVIRestScpoolserverstateinfo,Set-AVIRestAlbservicesjob,Set-AVIRestImage,Set-AVIRestCloud,Set-AVIRestCloudGc,Set-AVIRestCloudruntime,Set-AVIRestL4policyset,Set-AVIRestHealthmonitor,Set-AVIRestUpgradestatusinfo,Set-AVIRestCloudproperties,Set-AVIRestVsdatascriptset,Set-AVIRestControllerportalregistration,Set-AVIRestUser,Set-AVIRestNetworkprofile,Set-AVIRestDnspolicy,Set-AVIRestHardwaresecuritymodulegroup,Set-AVIRestLogcontroller,Set-AVIRestProtocolparser,Set-AVIRestScheduler,Set-AVIRestBackupconfiguration,Set-AVIRestVimgrsevmruntime,Set-AVIRestVimgrvmruntime,Set-AVIRestVimgrhostruntime,Set-AVIRestVimgrclusterruntime,Set-AVIRestVimgrvcenterdatacenters,Set-AVIRestVimgrvcenternetworks,Set-AVIRestServiceengine,Set-AVIRestWafpolicy,Set-AVIRestWafpolicyUpdateCrsRules,Set-AVIRestWafapplicationsignatureprovider,Set-AVIRestSsopolicy,Set-AVIRestNatpolicy,Set-AVIRestSiteversion,Set-AVIRestWebhook,Set-AVIRestPool,Set-AVIRestBackup,Set-AVIRestSecuritymanagerdata,Set-AVIRestVirtualservice,Set-AVIRestVsvip,Set-AVIRestIpamdnsproviderprofile,Set-AVIRestWafprofile,Set-AVIRestLicensingLedgerDetails,Set-AVIRestPingaccessagent,Set-AVIRestApplication,Set-AVIRestDebugserviceengine,Set-AVIRestDebugvirtualservice,Set-AVIRestPoolgroupdeploymentpolicy,Set-AVIRestHttppolicyset,Set-AVIRestSecuritypolicy,Set-AVIRestSnmptrapprofile,Set-AVIRestSystemlimits,Set-AVIRestPrioritylabels,Set-AVIRestGslb,Set-AVIRestGslbservice,Set-AVIRestGslbgeodbprofile,Set-AVIRestDebugcontroller,Set-AVIRestErrorpageprofile,Set-AVIRestErrorpagebody,Set-AVIRestAlertsyslogconfig,Set-AVIRestAlertemailconfig,Set-AVIRestAlertscriptconfig,Set-AVIRestAlertconfig,Set-AVIRestActiongroupconfig,Set-AVIRestAlertobjectlist,Set-AVIRestAlert,Set-AVIRestInventoryfaultconfig,Set-AVIRestTenantsystemconfiguration,New-AVIRestNetworksecuritypolicy,New-AVIRestFileobject,New-AVIRestRole,New-AVIRestTenant,New-AVIRestUseractivity,New-AVIRestUseraccountprofile,New-AVIRestClusterclouddetails,New-AVIRestApplicationprofile,New-AVIRestPoolgroup,New-AVIRestPoolgroupClear,New-AVIRestSslprofile,New-AVIRestSslkeyandcertificate,New-AVIRestPkiprofile,New-AVIRestCertificatemanagementprofile,New-AVIRestVrfcontext,New-AVIRestWebapput,New-AVIRestIcapprofile,New-AVIRestLabelgroup,New-AVIRestTrafficcloneprofile,New-AVIRestGeodb,New-AVIRestJobs,New-AVIRestTestsedatastorelevel1,New-AVIRestTestsedatastorelevel2,New-AVIRestTestsedatastorelevel3,New-AVIRestAnalyticsprofile,New-AVIRestAlbservicesfileupload,New-AVIRestSecurechannelmapping,New-AVIRestSecurechannelavailablelocalips,New-AVIRestSecurechanneltoken,New-AVIRestMicroservice,New-AVIRestCustomipamdnsprofile,New-AVIRestJwtserverprofile,New-AVIRestAuthprofile,New-AVIRestAuthmappingprofile,New-AVIRestWafpolicypsmgroup,New-AVIRestBotdetectionpolicy,New-AVIRestBotmapping,New-AVIRestBotconfigconsolidator,New-AVIRestBotipreputationtypemapping,New-AVIRestDynamicdnsrecord,New-AVIRestVsgs,New-AVIRestServerautoscalepolicy,New-AVIRestAutoscalelaunchconfig,New-AVIRestControllerproperties,New-AVIRestNetworkservice,New-AVIRestLicensingStatus,New-AVIRestAlbservicesconfig,New-AVIRestPoolInventory,New-AVIRestPoolgroupInventory,New-AVIRestVsvipInventory,New-AVIRestVirtualserviceInventory,New-AVIRestServiceengineInventory,New-AVIRestServiceenginegroupInventory,New-AVIRestUpgradestatussummary,New-AVIRestServiceenginegroup,New-AVIRestServiceenginegroupClear,New-AVIRestNetworkInventory,New-AVIRestNetworkruntime,New-AVIRestVimgrnwruntime,New-AVIRestCloudInventory,New-AVIRestGslbInventory,New-AVIRestGslbserviceInventory,New-AVIRestWafpolicypsmgroupInventory,New-AVIRestFederationcheckpointInventory,New-AVIRestFederationcheckpoint,New-AVIRestIpreputationdb,New-AVIRestNetwork,New-AVIRestIpaddrgroup,New-AVIRestStringgroup,New-AVIRestMicroservicegroup,New-AVIRestWafcrs,New-AVIRestSystemconfiguration,New-AVIRestSystemconfigurationSystestemail,New-AVIRestControllersite,New-AVIRestCloudconnectoruser,New-AVIRestSeproperties,New-AVIRestCsrfpolicy,New-AVIRestMemorybalancernotifier,New-AVIRestVcenterserver,New-AVIRestAvailabilityzone,New-AVIRestNsxtsegmentruntime,New-AVIRestStatediffoperation,New-AVIRestApplicationpersistenceprofile,New-AVIRestScvsstateinfo,New-AVIRestScpoolserverstateinfo,New-AVIRestAlbservicesjob,New-AVIRestImage,New-AVIRestCloud,New-AVIRestCloudList,New-AVIRestCloudruntime,New-AVIRestL4policyset,New-AVIRestHealthmonitor,New-AVIRestUpgradestatusinfo,New-AVIRestCloudproperties,New-AVIRestVsdatascriptset,New-AVIRestControllerportalregistration,New-AVIRestUser,New-AVIRestNetworkprofile,New-AVIRestDnspolicy,New-AVIRestHardwaresecuritymodulegroup,New-AVIRestLogcontroller,New-AVIRestProtocolparser,New-AVIRestScheduler,New-AVIRestBackupconfiguration,New-AVIRestVimgrsevmruntime,New-AVIRestVimgrvmruntime,New-AVIRestVimgrhostruntime,New-AVIRestVimgrhostruntimeGetquarantinedhosts,New-AVIRestVimgrclusterruntime,New-AVIRestVimgrvcenterdatacenters,New-AVIRestVimgrvcenternetworks,New-AVIRestServiceengine,New-AVIRestServiceengineClear,New-AVIRestWafpolicy,New-AVIRestWafapplicationsignatureprovider,New-AVIRestSsopolicy,New-AVIRestNatpolicy,New-AVIRestSiteversion,New-AVIRestWebhook,New-AVIRestPool,New-AVIRestPoolClear,New-AVIRestBackup,New-AVIRestSecuritymanagerdata,New-AVIRestVirtualservice,New-AVIRestVsvip,New-AVIRestIpamdnsproviderprofile,New-AVIRestWafprofile,New-AVIRestLicensingLedgerDetails,New-AVIRestPingaccessagent,New-AVIRestApplication,New-AVIRestDebugserviceengine,New-AVIRestDebugvirtualservice,New-AVIRestPoolgroupdeploymentpolicy,New-AVIRestHttppolicyset,New-AVIRestSecuritypolicy,New-AVIRestSnmptrapprofile,New-AVIRestSystemlimits,New-AVIRestPrioritylabels,New-AVIRestGslb,New-AVIRestGslbservice,New-AVIRestGslbgeodbprofile,New-AVIRestDebugcontroller,New-AVIRestErrorpageprofile,New-AVIRestErrorpagebody,New-AVIRestAlertsyslogconfig,New-AVIRestAlertemailconfig,New-AVIRestAlertscriptconfig,New-AVIRestAlertconfig,New-AVIRestActiongroupconfig,New-AVIRestAlertobjectlist,New-AVIRestAlert,New-AVIRestInventoryfaultconfig,New-AVIRestTenantsystemconfiguration,New-AVIRestNetworksecuritypolicyObject,New-AVIRestFileobjectObject,New-AVIRestRoleObject,New-AVIRestTenantObject,New-AVIRestUseractivityObject,New-AVIRestUseraccountprofileObject,New-AVIRestClusterclouddetailsObject,New-AVIRestApplicationprofileObject,New-AVIRestPoolgroupObject,New-AVIRestPoolgroupClearObject,New-AVIRestSslprofileObject,New-AVIRestSslkeyandcertificateObject,New-AVIRestPkiprofileObject,New-AVIRestCertificatemanagementprofileObject,New-AVIRestVrfcontextObject,New-AVIRestWebapputObject,New-AVIRestIcapprofileObject,New-AVIRestLabelgroupObject,New-AVIRestTrafficcloneprofileObject,New-AVIRestGeodbObject,New-AVIRestTestsedatastorelevel1Object,New-AVIRestTestsedatastorelevel2Object,New-AVIRestTestsedatastorelevel3Object,New-AVIRestAnalyticsprofileObject,New-AVIRestAlbservicesfileuploadObject,New-AVIRestSecurechannelmappingObject,New-AVIRestSecurechannelavailablelocalipsObject,New-AVIRestSecurechanneltokenObject,New-AVIRestMicroserviceObject,New-AVIRestCustomipamdnsprofileObject,New-AVIRestJwtserverprofileObject,New-AVIRestAuthprofileObject,New-AVIRestAuthmappingprofileObject,New-AVIRestWafpolicypsmgroupObject,New-AVIRestBotdetectionpolicyObject,New-AVIRestBotmappingObject,New-AVIRestBotconfigconsolidatorObject,New-AVIRestBotipreputationtypemappingObject,New-AVIRestDynamicdnsrecordObject,New-AVIRestVsgsObject,New-AVIRestServerautoscalepolicyObject,New-AVIRestAutoscalelaunchconfigObject,New-AVIRestControllerpropertiesObject,New-AVIRestNetworkserviceObject,New-AVIRestLicensingStatusObject,New-AVIRestAlbservicesconfigObject,New-AVIRestPoolInventoryObject,New-AVIRestPoolgroupInventoryObject,New-AVIRestVsvipInventoryObject,New-AVIRestServiceengineInventoryObject,New-AVIRestServiceenginegroupInventoryObject,New-AVIRestUpgradestatussummaryObject,New-AVIRestServiceenginegroupObject,New-AVIRestServiceenginegroupClearObject,New-AVIRestNetworkInventoryObject,New-AVIRestNetworkruntimeObject,New-AVIRestVimgrnwruntimeObject,New-AVIRestCloudInventoryObject,New-AVIRestGslbInventoryObject,New-AVIRestGslbserviceInventoryObject,New-AVIRestWafpolicypsmgroupInventoryObject,New-AVIRestFederationcheckpointInventoryObject,New-AVIRestFederationcheckpointObject,New-AVIRestIpreputationdbObject,New-AVIRestNetworkObject,New-AVIRestIpaddrgroupObject,New-AVIRestStringgroupObject,New-AVIRestMicroservicegroupObject,New-AVIRestWafcrsObject,New-AVIRestSystemconfigurationObject,New-AVIRestSystemconfigurationSystestemailObject,New-AVIRestControllersiteObject,New-AVIRestCloudconnectoruserObject,New-AVIRestSepropertiesObject,New-AVIRestCsrfpolicyObject,New-AVIRestVcenterserverObject,New-AVIRestAvailabilityzoneObject,New-AVIRestNsxtsegmentruntimeObject,New-AVIRestStatediffoperationObject,New-AVIRestApplicationpersistenceprofileObject,New-AVIRestScvsstateinfoObject,New-AVIRestScpoolserverstateinfoObject,New-AVIRestAlbservicesjobObject,New-AVIRestImageObject,New-AVIRestCloudObject,New-AVIRestCloudListObject,New-AVIRestCloudruntimeObject,New-AVIRestL4policysetObject,New-AVIRestHealthmonitorObject,New-AVIRestUpgradestatusinfoObject,New-AVIRestCloudpropertiesObject,New-AVIRestVsdatascriptsetObject,New-AVIRestControllerportalregistrationObject,New-AVIRestUserObject,New-AVIRestNetworkprofileObject,New-AVIRestDnspolicyObject,New-AVIRestHardwaresecuritymodulegroupObject,New-AVIRestLogcontrollerObject,New-AVIRestProtocolparserObject,New-AVIRestSchedulerObject,New-AVIRestBackupconfigurationObject,New-AVIRestVimgrsevmruntimeObject,New-AVIRestVimgrvmruntimeObject,New-AVIRestVimgrhostruntimeObject,New-AVIRestVimgrclusterruntimeObject,New-AVIRestServiceengineObject,New-AVIRestServiceengineClearObject,New-AVIRestWafpolicyObject,New-AVIRestWafapplicationsignatureproviderObject,New-AVIRestSsopolicyObject,New-AVIRestNatpolicyObject,New-AVIRestSiteversionObject,New-AVIRestWebhookObject,New-AVIRestPoolObject,New-AVIRestPoolClearObject,New-AVIRestBackupObject,New-AVIRestSecuritymanagerdataObject,New-AVIRestVirtualserviceObject,New-AVIRestVsvipObject,New-AVIRestIpamdnsproviderprofileObject,New-AVIRestWafprofileObject,New-AVIRestLicensingLedgerDetailsObject,New-AVIRestPingaccessagentObject,New-AVIRestApplicationObject,New-AVIRestDebugserviceengineObject,New-AVIRestDebugvirtualserviceObject,New-AVIRestPoolgroupdeploymentpolicyObject,New-AVIRestHttppolicysetObject,New-AVIRestSecuritypolicyObject,New-AVIRestSnmptrapprofileObject,New-AVIRestSystemlimitsObject,New-AVIRestPrioritylabelsObject,New-AVIRestGslbObject,New-AVIRestGslbserviceObject,New-AVIRestGslbgeodbprofileObject,New-AVIRestDebugcontrollerObject,New-AVIRestErrorpageprofileObject,New-AVIRestErrorpagebodyObject,New-AVIRestAlertsyslogconfigObject,New-AVIRestAlertemailconfigObject,New-AVIRestAlertscriptconfigObject,New-AVIRestAlertconfigObject,New-AVIRestActiongroupconfigObject,New-AVIRestAlertobjectlistObject,New-AVIRestAlertObject,New-AVIRestInventoryfaultconfigObject,New-AVIRestTenantsystemconfigurationObject,Invoke-AVIRestPoolgroupEnable_primary_poolClear,Invoke-AVIRestSslkeyandcertificateRenew,Invoke-AVIRestServiceenginegroupRedistribute,Invoke-AVIRestCloudconnectoruserTest,Invoke-AVIRestVimgrhostruntimeAccessible,Invoke-AVIRestServiceengineReboot,Invoke-AVIRestServiceengineForcedelete,Invoke-AVIRestServiceengineSwitchover,Invoke-AVIRestServiceengineFaultinjectExhaust_mbufClear,Invoke-AVIRestServiceengineFaultinjectExhaust_mclClear,Invoke-AVIRestServiceengineFaultinjectExhaust_mcl_smallClear,Invoke-AVIRestServiceengineFaultinjectExhaust_connClear,Invoke-AVIRestServiceengineFaultinjectExhaust_shm_connClear,Invoke-AVIRestServiceengineFaultinjectExhaust_cfgClear,Invoke-AVIRestServiceengineFaultinjectExhaust_shm_cfgClear,Invoke-AVIRestServiceengineFaultinjectSefaultClear,Invoke-AVIRestPoolScaleout,Invoke-AVIRestPoolScalein,Invoke-AVIRestPoolRuntimeStatsClear,Invoke-AVIRestPoolRuntimeRequest_queueClear,Invoke-AVIRestPoolConnpoolstatsClear,Invoke-AVIRestSnmptrapprofileTestsnmptrap,Invoke-AVIRestAlertsyslogconfigTestsyslog,Invoke-AVIRestAlertemailconfigTestemail,New-AVIRestPoolgroupEnable_primary_poolClearObject,New-AVIRestSslkeyandcertificateRenewObject,New-AVIRestCloudconnectoruserTestObject,New-AVIRestServiceengineRebootObject,New-AVIRestServiceengineSwitchoverObject,New-AVIRestServiceengineFaultinjectExhaust_mbufClearObject,New-AVIRestServiceengineFaultinjectExhaust_mclClearObject,New-AVIRestServiceengineFaultinjectExhaust_mcl_smallClearObject,New-AVIRestServiceengineFaultinjectExhaust_connClearObject,New-AVIRestServiceengineFaultinjectExhaust_shm_connClearObject,New-AVIRestServiceengineFaultinjectExhaust_cfgClearObject,New-AVIRestServiceengineFaultinjectExhaust_shm_cfgClearObject,New-AVIRestServiceengineFaultinjectSefaultClearObject,New-AVIRestPoolScaleoutObject,New-AVIRestPoolScaleinObject,New-AVIRestPoolRuntimeStatsClearObject,New-AVIRestPoolRuntimeRequest_queueClearObject,New-AVIRestPoolConnpoolstatsClearObject,New-AVIRestAlertsyslogconfigTestsyslogObject,New-AVIRestAlertemailconfigTestemailObject,Remove-AVIRestNetworksecuritypolicy,Remove-AVIRestFileobject,Remove-AVIRestRole,Remove-AVIRestTenant,Remove-AVIRestUseractivity,Remove-AVIRestUseraccountprofile,Remove-AVIRestClusterclouddetails,Remove-AVIRestApplicationprofile,Remove-AVIRestPoolgroup,Remove-AVIRestSslprofile,Remove-AVIRestSslkeyandcertificate,Remove-AVIRestPkiprofile,Remove-AVIRestCertificatemanagementprofile,Remove-AVIRestVrfcontext,Remove-AVIRestWebapput,Remove-AVIRestIcapprofile,Remove-AVIRestLabelgroup,Remove-AVIRestTrafficcloneprofile,Remove-AVIRestGeodb,Remove-AVIRestJobs,Remove-AVIRestTestsedatastorelevel1,Remove-AVIRestTestsedatastorelevel2,Remove-AVIRestTestsedatastorelevel3,Remove-AVIRestAnalyticsprofile,Remove-AVIRestAlbservicesfileupload,Remove-AVIRestSecurechannelmapping,Remove-AVIRestSecurechannelavailablelocalips,Remove-AVIRestSecurechanneltoken,Remove-AVIRestMicroservice,Remove-AVIRestCustomipamdnsprofile,Remove-AVIRestJwtserverprofile,Remove-AVIRestAuthprofile,Remove-AVIRestAuthmappingprofile,Remove-AVIRestWafpolicypsmgroup,Remove-AVIRestBotdetectionpolicy,Remove-AVIRestBotmapping,Remove-AVIRestBotconfigconsolidator,Remove-AVIRestBotipreputationtypemapping,Remove-AVIRestDynamicdnsrecord,Remove-AVIRestVsgs,Remove-AVIRestServerautoscalepolicy,Remove-AVIRestAutoscalelaunchconfig,Remove-AVIRestControllerproperties,Remove-AVIRestNetworkservice,Remove-AVIRestLicensingStatus,Remove-AVIRestAlbservicesconfig,Remove-AVIRestPoolInventory,Remove-AVIRestPoolgroupInventory,Remove-AVIRestVsvipInventory,Remove-AVIRestVirtualserviceInventory,Remove-AVIRestServiceengineInventory,Remove-AVIRestServiceenginegroupInventory,Remove-AVIRestUpgradestatussummary,Remove-AVIRestServiceenginegroup,Remove-AVIRestNetworkInventory,Remove-AVIRestNetworkruntime,Remove-AVIRestVimgrnwruntime,Remove-AVIRestCloudInventory,Remove-AVIRestGslbInventory,Remove-AVIRestGslbserviceInventory,Remove-AVIRestWafpolicypsmgroupInventory,Remove-AVIRestFederationcheckpointInventory,Remove-AVIRestFederationcheckpoint,Remove-AVIRestIpreputationdb,Remove-AVIRestNetwork,Remove-AVIRestIpaddrgroup,Remove-AVIRestStringgroup,Remove-AVIRestMicroservicegroup,Remove-AVIRestWafcrs,Remove-AVIRestSystemconfiguration,Remove-AVIRestControllersite,Remove-AVIRestCloudconnectoruser,Remove-AVIRestSeproperties,Remove-AVIRestCsrfpolicy,Remove-AVIRestMemorybalancernotifier,Remove-AVIRestVcenterserver,Remove-AVIRestAvailabilityzone,Remove-AVIRestNsxtsegmentruntime,Remove-AVIRestStatediffoperation,Remove-AVIRestApplicationpersistenceprofile,Remove-AVIRestScvsstateinfo,Remove-AVIRestScpoolserverstateinfo,Remove-AVIRestAlbservicesjob,Remove-AVIRestImage,Remove-AVIRestCloud,Remove-AVIRestCloudruntime,Remove-AVIRestL4policyset,Remove-AVIRestHealthmonitor,Remove-AVIRestUpgradestatusinfo,Remove-AVIRestCloudproperties,Remove-AVIRestVsdatascriptset,Remove-AVIRestControllerportalregistration,Remove-AVIRestUser,Remove-AVIRestNetworkprofile,Remove-AVIRestDnspolicy,Remove-AVIRestHardwaresecuritymodulegroup,Remove-AVIRestLogcontroller,Remove-AVIRestProtocolparser,Remove-AVIRestScheduler,Remove-AVIRestBackupconfiguration,Remove-AVIRestVimgrsevmruntime,Remove-AVIRestVimgrvmruntime,Remove-AVIRestVimgrhostruntime,Remove-AVIRestVimgrclusterruntime,Remove-AVIRestVimgrvcenterdatacenters,Remove-AVIRestVimgrvcenternetworks,Remove-AVIRestServiceengine,Remove-AVIRestWafpolicy,Remove-AVIRestWafapplicationsignatureprovider,Remove-AVIRestSsopolicy,Remove-AVIRestNatpolicy,Remove-AVIRestSiteversion,Remove-AVIRestWebhook,Remove-AVIRestPool,Remove-AVIRestBackup,Remove-AVIRestSecuritymanagerdata,Remove-AVIRestVirtualservice,Remove-AVIRestVsvip,Remove-AVIRestIpamdnsproviderprofile,Remove-AVIRestWafprofile,Remove-AVIRestLicensingLedgerDetails,Remove-AVIRestPingaccessagent,Remove-AVIRestApplication,Remove-AVIRestDebugserviceengine,Remove-AVIRestDebugvirtualservice,Remove-AVIRestPoolgroupdeploymentpolicy,Remove-AVIRestHttppolicyset,Remove-AVIRestSecuritypolicy,Remove-AVIRestSnmptrapprofile,Remove-AVIRestSystemlimits,Remove-AVIRestPrioritylabels,Remove-AVIRestGslb,Remove-AVIRestGslbservice,Remove-AVIRestGslbgeodbprofile,Remove-AVIRestDebugcontroller,Remove-AVIRestErrorpageprofile,Remove-AVIRestErrorpagebody,Remove-AVIRestAlertsyslogconfig,Remove-AVIRestAlertemailconfig,Remove-AVIRestAlertscriptconfig,Remove-AVIRestAlertconfig,Remove-AVIRestActiongroupconfig,Remove-AVIRestAlertobjectlist,Remove-AVIRestAlert,Remove-AVIRestInventoryfaultconfig,Remove-AVIRestTenantsystemconfiguration,Get-AVIRestBackup,Set-AVIRestBackup,New-AVIRestBackup,New-AVIRestBackupObject,Remove-AVIRestBackup,Get-AVIRestBackupconfiguration,Set-AVIRestBackupconfiguration,New-AVIRestBackupconfiguration,New-AVIRestBackupconfigurationObject,Remove-AVIRestBackupconfiguration,Get-AVIRestBotconfigconsolidator,Set-AVIRestBotconfigconsolidator,New-AVIRestBotconfigconsolidator,New-AVIRestBotconfigconsolidatorObject,Remove-AVIRestBotconfigconsolidator,Get-AVIRestBotdetectionpolicy,Set-AVIRestBotdetectionpolicy,New-AVIRestBotdetectionpolicy,New-AVIRestBotdetectionpolicyObject,Remove-AVIRestBotdetectionpolicy,Get-AVIRestBotipreputationtypemapping,Set-AVIRestBotipreputationtypemapping,New-AVIRestBotipreputationtypemapping,New-AVIRestBotipreputationtypemappingObject,Remove-AVIRestBotipreputationtypemapping,Get-AVIRestBotmapping,Set-AVIRestBotmapping,New-AVIRestBotmapping,New-AVIRestBotmappingObject,Remove-AVIRestBotmapping,Get-AVIRestCertificatemanagementprofile,Set-AVIRestCertificatemanagementprofile,New-AVIRestCertificatemanagementprofile,New-AVIRestCertificatemanagementprofileObject,Remove-AVIRestCertificatemanagementprofile,Get-AVIRestCloud,Set-AVIRestCloud,Set-AVIRestCloudGc,New-AVIRestCloud,New-AVIRestCloudList,New-AVIRestCloudObject,Remove-AVIRestCloud,Get-AVIRestCloudconnectoruser,Set-AVIRestCloudconnectoruser,New-AVIRestCloudconnectoruser,New-AVIRestCloudconnectoruserObject,Invoke-AVIRestCloudconnectoruserTest,New-AVIRestCloudconnectoruserTestObject,Remove-AVIRestCloudconnectoruser,Get-AVIRestCloudInventory,Set-AVIRestCloudInventory,New-AVIRestCloudInventory,New-AVIRestCloudInventoryObject,Remove-AVIRestCloudInventory,Get-AVIRestCloudproperties,Set-AVIRestCloudproperties,Set-AVIRestControllerproperties,New-AVIRestCloudproperties,New-AVIRestControllerproperties,New-AVIRestCloudpropertiesObject,New-AVIRestControllerpropertiesObject,Remove-AVIRestCloudproperties,Remove-AVIRestControllerproperties,Get-AVIRestCloudruntime,Set-AVIRestCloudruntime,New-AVIRestCloudruntime,New-AVIRestCloudruntimeObject,Remove-AVIRestCloudruntime,Get-AVIRestCluster,Set-AVIRestCluster,New-AVIRestCluster,New-AVIRestClusterObject,Remove-AVIRestCluster,Get-AVIRestClusterclouddetails,Set-AVIRestClusterclouddetails,New-AVIRestClusterclouddetails,New-AVIRestClusterclouddetailsObject,Remove-AVIRestClusterclouddetails,Get-AVIRestLicense,Set-AVIRestLicense,New-AVIRestLicense,New-AVIRestLicenseObject,Remove-AVIRestLicense,Get-AVIRestControllerportalregistration,Set-AVIRestControllerportalregistration,New-AVIRestControllerportalregistration,New-AVIRestControllerportalregistrationObject,Remove-AVIRestControllerportalregistration,Get-AVIRestControllerproperties,Set-AVIRestControllerproperties,Get-AVIRestControllersite,Set-AVIRestControllersite,New-AVIRestControllersite,New-AVIRestControllersiteObject,Remove-AVIRestControllersite,Get-AVIRestCsrfpolicy,Set-AVIRestCsrfpolicy,New-AVIRestCsrfpolicy,New-AVIRestCsrfpolicyObject,Remove-AVIRestCsrfpolicy,Get-AVIRestCustomerportalinfo,Set-AVIRestCustomerportalinfo,New-AVIRestCustomerportalinfo,New-AVIRestCustomerportalinfoObject,Remove-AVIRestCustomerportalinfo,Get-AVIRestCustomipamdnsprofile,Set-AVIRestCustomipamdnsprofile,New-AVIRestCustomipamdnsprofile,New-AVIRestCustomipamdnsprofileObject,Remove-AVIRestCustomipamdnsprofile,Get-AVIRestDebugcontroller,Set-AVIRestDebugcontroller,New-AVIRestDebugcontroller,New-AVIRestDebugcontrollerObject,Remove-AVIRestDebugcontroller,Get-AVIRestDebugserviceengine,Set-AVIRestDebugserviceengine,New-AVIRestDebugserviceengine,New-AVIRestDebugserviceengineObject,Remove-AVIRestDebugserviceengine,Get-AVIRestDebugvirtualservice,Set-AVIRestDebugvirtualservice,New-AVIRestDebugvirtualservice,New-AVIRestDebugvirtualserviceObject,Remove-AVIRestDebugvirtualservice,Get-AVIRestDnspolicy,Set-AVIRestDnspolicy,New-AVIRestDnspolicy,New-AVIRestDnspolicyObject,Remove-AVIRestDnspolicy,Get-AVIRestDynamicdnsrecord,Set-AVIRestDynamicdnsrecord,New-AVIRestDynamicdnsrecord,New-AVIRestDynamicdnsrecordObject,Remove-AVIRestDynamicdnsrecord,Get-AVIRestErrorpagebody,Set-AVIRestErrorpagebody,New-AVIRestErrorpagebody,New-AVIRestErrorpagebodyObject,Remove-AVIRestErrorpagebody,Get-AVIRestErrorpageprofile,Set-AVIRestErrorpageprofile,New-AVIRestErrorpageprofile,New-AVIRestErrorpageprofileObject,Remove-AVIRestErrorpageprofile,Get-AVIRestFederationcheckpoint,Set-AVIRestFederationcheckpoint,New-AVIRestFederationcheckpoint,New-AVIRestFederationcheckpointObject,Remove-AVIRestFederationcheckpoint,Get-AVIRestFederationcheckpointInventory,Set-AVIRestFederationcheckpointInventory,Set-AVIRestFederationcheckpoint,New-AVIRestFederationcheckpointInventory,New-AVIRestFederationcheckpoint,New-AVIRestFederationcheckpointInventoryObject,New-AVIRestFederationcheckpointObject,Remove-AVIRestFederationcheckpointInventory,Remove-AVIRestFederationcheckpoint,Get-AVIRestFileobject,Set-AVIRestFileobject,New-AVIRestFileobject,New-AVIRestFileobjectObject,Remove-AVIRestFileobject,Get-AVIRestGeodb,Set-AVIRestGeodb,New-AVIRestGeodb,New-AVIRestGeodbObject,Remove-AVIRestGeodb,Get-AVIRestGslb,Set-AVIRestGslb,New-AVIRestGslb,New-AVIRestGslbObject,Remove-AVIRestGslb,Get-AVIRestGslbgeodbprofile,Set-AVIRestGslbgeodbprofile,New-AVIRestGslbgeodbprofile,New-AVIRestGslbgeodbprofileObject,Remove-AVIRestGslbgeodbprofile,Get-AVIRestGslbInventory,Set-AVIRestGslbInventory,New-AVIRestGslbInventory,New-AVIRestGslbInventoryObject,Remove-AVIRestGslbInventory,Get-AVIRestGslbservice,Set-AVIRestGslbservice,New-AVIRestGslbservice,New-AVIRestGslbserviceObject,Remove-AVIRestGslbservice,Get-AVIRestGslbserviceInventory,Set-AVIRestGslbserviceInventory,New-AVIRestGslbserviceInventory,New-AVIRestGslbserviceInventoryObject,Remove-AVIRestGslbserviceInventory,Get-AVIRestHardwaresecuritymodulegroup,Set-AVIRestHardwaresecuritymodulegroup,New-AVIRestHardwaresecuritymodulegroup,New-AVIRestHardwaresecuritymodulegroupObject,Remove-AVIRestHardwaresecuritymodulegroup,Get-AVIRestHealthmonitor,Set-AVIRestHealthmonitor,New-AVIRestHealthmonitor,New-AVIRestHealthmonitorObject,Remove-AVIRestHealthmonitor,Get-AVIRestAnalyticsHealthscorePool,Get-AVIRestHttppolicyset,Set-AVIRestHttppolicyset,New-AVIRestHttppolicyset,New-AVIRestHttppolicysetObject,Remove-AVIRestHttppolicyset,Get-AVIRestIcapprofile,Set-AVIRestIcapprofile,New-AVIRestIcapprofile,New-AVIRestIcapprofileObject,Remove-AVIRestIcapprofile,Get-AVIRestImage,Set-AVIRestImage,New-AVIRestImage,New-AVIRestImageObject,Remove-AVIRestImage,Get-AVIRestInventoryfaultconfig,Set-AVIRestInventoryfaultconfig,New-AVIRestInventoryfaultconfig,New-AVIRestInventoryfaultconfigObject,Remove-AVIRestInventoryfaultconfig,Get-AVIRestIpaddrgroup,Set-AVIRestIpaddrgroup,New-AVIRestIpaddrgroup,New-AVIRestIpaddrgroupObject,Remove-AVIRestIpaddrgroup,Get-AVIRestIpamdnsproviderprofile,Set-AVIRestIpamdnsproviderprofile,New-AVIRestIpamdnsproviderprofile,New-AVIRestIpamdnsproviderprofileObject,Remove-AVIRestIpamdnsproviderprofile,Get-AVIRestIpreputationdb,Set-AVIRestIpreputationdb,New-AVIRestIpreputationdb,New-AVIRestIpreputationdbObject,Remove-AVIRestIpreputationdb,Get-AVIRestJobs,Set-AVIRestJobs,New-AVIRestJobs,Remove-AVIRestJobs,Get-AVIRestJwtprofile,Set-AVIRestJwtprofile,New-AVIRestJwtprofile,New-AVIRestJwtprofileObject,Remove-AVIRestJwtprofile,Get-AVIRestJwtserverprofile,Set-AVIRestJwtserverprofile,New-AVIRestJwtserverprofile,New-AVIRestJwtserverprofileObject,Remove-AVIRestJwtserverprofile,Get-AVIRestL4policyset,Set-AVIRestL4policyset,New-AVIRestL4policyset,New-AVIRestL4policysetObject,Remove-AVIRestL4policyset,Get-AVIRestLabelgroup,Set-AVIRestLabelgroup,New-AVIRestLabelgroup,New-AVIRestLabelgroupObject,Remove-AVIRestLabelgroup,Get-AVIRestLicensingLedgerDetails,Set-AVIRestLicensingLedgerDetails,New-AVIRestLicensingLedgerDetails,New-AVIRestLicensingLedgerDetailsObject,Remove-AVIRestLicensingLedgerDetails,Get-AVIRestLicensingStatus,Set-AVIRestLicensingStatus,New-AVIRestLicensingStatus,New-AVIRestLicensingStatusObject,Remove-AVIRestLicensingStatus,Get-AVIRestLogcontroller,Set-AVIRestLogcontroller,New-AVIRestLogcontroller,New-AVIRestLogcontrollerObject,Remove-AVIRestLogcontroller,Get-AVIRestMemorybalancernotifier,Set-AVIRestMemorybalancernotifier,New-AVIRestMemorybalancernotifier,Remove-AVIRestMemorybalancernotifier,Get-AVIRestAnalyticsMetricsController,New-AVIRestAnalyticsMetricsCollection,New-AVIRestAnalyticsMetricsCollectionObject,Get-AVIRestMicroservice,Set-AVIRestMicroservice,New-AVIRestMicroservice,New-AVIRestMicroserviceObject,Remove-AVIRestMicroservice,Get-AVIRestMicroservicegroup,Set-AVIRestMicroservicegroup,New-AVIRestMicroservicegroup,New-AVIRestMicroservicegroupObject,Remove-AVIRestMicroservicegroup,Get-AVIRestNatpolicy,Set-AVIRestNatpolicy,New-AVIRestNatpolicy,New-AVIRestNatpolicyObject,Remove-AVIRestNatpolicy,Get-AVIRestNetwork,Set-AVIRestNetwork,New-AVIRestNetwork,New-AVIRestNetworkObject,Remove-AVIRestNetwork,Get-AVIRestNetworkInventory,Set-AVIRestNetworkInventory,Set-AVIRestNetworkruntime,Set-AVIRestVimgrnwruntime,New-AVIRestNetworkInventory,New-AVIRestNetworkruntime,New-AVIRestVimgrnwruntime,New-AVIRestNetworkInventoryObject,New-AVIRestNetworkruntimeObject,New-AVIRestVimgrnwruntimeObject,Remove-AVIRestNetworkInventory,Remove-AVIRestNetworkruntime,Remove-AVIRestVimgrnwruntime,Get-AVIRestNetworkprofile,Set-AVIRestNetworkprofile,New-AVIRestNetworkprofile,New-AVIRestNetworkprofileObject,Remove-AVIRestNetworkprofile,Get-AVIRestNetworkruntime,Set-AVIRestNetworkruntime,New-AVIRestNetworkruntime,New-AVIRestNetworkruntimeObject,Remove-AVIRestNetworkruntime,Get-AVIRestNetworksecuritypolicy,Set-AVIRestNetworksecuritypolicy,New-AVIRestNetworksecuritypolicy,New-AVIRestNetworksecuritypolicyObject,Remove-AVIRestNetworksecuritypolicy,Get-AVIRestNetworkservice,Set-AVIRestNetworkservice,New-AVIRestNetworkservice,New-AVIRestNetworkserviceObject,Remove-AVIRestNetworkservice,Get-AVIRestNsxtsegmentruntime,Set-AVIRestNsxtsegmentruntime,New-AVIRestNsxtsegmentruntime,New-AVIRestNsxtsegmentruntimeObject,Remove-AVIRestNsxtsegmentruntime,Get-AVIRestObjectaccesspolicy,Set-AVIRestObjectaccesspolicy,New-AVIRestObjectaccesspolicy,New-AVIRestObjectaccesspolicyObject,Remove-AVIRestObjectaccesspolicy,Get-AVIRestPingaccessagent,Set-AVIRestPingaccessagent,New-AVIRestPingaccessagent,New-AVIRestPingaccessagentObject,Remove-AVIRestPingaccessagent,Get-AVIRestPkiprofile,Set-AVIRestPkiprofile,New-AVIRestPkiprofile,New-AVIRestPkiprofileObject,Remove-AVIRestPkiprofile,Get-AVIRestPool,Set-AVIRestPool,New-AVIRestPool,New-AVIRestPoolClear,New-AVIRestPoolObject,Invoke-AVIRestPoolScaleout,Invoke-AVIRestPoolScalein,Invoke-AVIRestPoolRuntimeStatsClear,Invoke-AVIRestPoolRuntimeRequest_queueClear,Invoke-AVIRestPoolConnpoolstatsClear,New-AVIRestPoolScaleoutObject,New-AVIRestPoolScaleinObject,Remove-AVIRestPool,Get-AVIRestPoolgroup,Set-AVIRestPoolgroup,New-AVIRestPoolgroup,New-AVIRestPoolgroupClear,New-AVIRestPoolgroupObject,Invoke-AVIRestPoolgroupEnable_primary_poolClear,Remove-AVIRestPoolgroup,Get-AVIRestPoolgroupdeploymentpolicy,Set-AVIRestPoolgroupdeploymentpolicy,New-AVIRestPoolgroupdeploymentpolicy,New-AVIRestPoolgroupdeploymentpolicyObject,Remove-AVIRestPoolgroupdeploymentpolicy,Get-AVIRestPoolgroupInventory,Set-AVIRestPoolgroupInventory,New-AVIRestPoolgroupInventory,New-AVIRestPoolgroupInventoryObject,Remove-AVIRestPoolgroupInventory,Get-AVIRestPoolInventory,Set-AVIRestPoolInventory,New-AVIRestPoolInventory,New-AVIRestPoolInventoryObject,Remove-AVIRestPoolInventory,Get-AVIRestPortalfileupload,Set-AVIRestPortalfileupload,New-AVIRestPortalfileupload,New-AVIRestPortalfileuploadObject,Remove-AVIRestPortalfileupload,Get-AVIRestPrioritylabels,Set-AVIRestPrioritylabels,New-AVIRestPrioritylabels,New-AVIRestPrioritylabelsObject,Remove-AVIRestPrioritylabels,Get-AVIRestProtocolparser,Set-AVIRestProtocolparser,New-AVIRestProtocolparser,New-AVIRestProtocolparserObject,Remove-AVIRestProtocolparser,Get-AVIRestRole,Set-AVIRestRole,New-AVIRestRole,New-AVIRestRoleObject,Remove-AVIRestRole,Get-AVIRestScheduler,Set-AVIRestScheduler,New-AVIRestScheduler,New-AVIRestSchedulerObject,Remove-AVIRestScheduler,Get-AVIRestScpoolserverstateinfo,Set-AVIRestScpoolserverstateinfo,New-AVIRestScpoolserverstateinfo,New-AVIRestScpoolserverstateinfoObject,Remove-AVIRestScpoolserverstateinfo,Get-AVIRestScvsstateinfo,Set-AVIRestScvsstateinfo,New-AVIRestScvsstateinfo,New-AVIRestScvsstateinfoObject,Remove-AVIRestScvsstateinfo,Get-AVIRestSecurechannelavailablelocalips,Set-AVIRestSecurechannelavailablelocalips,New-AVIRestSecurechannelavailablelocalips,New-AVIRestSecurechannelavailablelocalipsObject,Remove-AVIRestSecurechannelavailablelocalips,Get-AVIRestSecurechannelmapping,Set-AVIRestSecurechannelmapping,New-AVIRestSecurechannelmapping,New-AVIRestSecurechannelmappingObject,Remove-AVIRestSecurechannelmapping,Get-AVIRestSecurechanneltoken,Set-AVIRestSecurechanneltoken,New-AVIRestSecurechanneltoken,New-AVIRestSecurechanneltokenObject,Remove-AVIRestSecurechanneltoken,Get-AVIRestSecuritymanagerdata,Set-AVIRestSecuritymanagerdata,New-AVIRestSecuritymanagerdata,New-AVIRestSecuritymanagerdataObject,Remove-AVIRestSecuritymanagerdata,Get-AVIRestSecuritypolicy,Set-AVIRestSecuritypolicy,New-AVIRestSecuritypolicy,New-AVIRestSecuritypolicyObject,Remove-AVIRestSecuritypolicy,Get-AVIRestSeproperties,Set-AVIRestSeproperties,Get-AVIRestServerautoscalepolicy,Set-AVIRestServerautoscalepolicy,New-AVIRestServerautoscalepolicy,New-AVIRestServerautoscalepolicyObject,Remove-AVIRestServerautoscalepolicy,Get-AVIRestServiceengine,Set-AVIRestServiceengine,New-AVIRestServiceengine,New-AVIRestServiceengineClear,New-AVIRestServiceengineObject,New-AVIRestServiceengineClearObject,Invoke-AVIRestServiceengineReboot,Invoke-AVIRestServiceengineForcedelete,Invoke-AVIRestServiceengineSwitchover,Invoke-AVIRestServiceengineFaultinjectExhaust_mbufClear,Invoke-AVIRestServiceengineFaultinjectExhaust_mclClear,Invoke-AVIRestServiceengineFaultinjectExhaust_mcl_smallClear,Invoke-AVIRestServiceengineFaultinjectExhaust_connClear,Invoke-AVIRestServiceengineFaultinjectExhaust_shm_connClear,Invoke-AVIRestServiceengineFaultinjectExhaust_cfgClear,Invoke-AVIRestServiceengineFaultinjectExhaust_shm_cfgClear,Invoke-AVIRestServiceengineFaultinjectSefaultClear,New-AVIRestServiceengineFaultinjectExhaust_mbufClearObject,New-AVIRestServiceengineFaultinjectExhaust_mclClearObject,New-AVIRestServiceengineFaultinjectExhaust_mcl_smallClearObject,New-AVIRestServiceengineFaultinjectExhaust_connClearObject,New-AVIRestServiceengineFaultinjectExhaust_shm_connClearObject,New-AVIRestServiceengineFaultinjectExhaust_cfgClearObject,New-AVIRestServiceengineFaultinjectExhaust_shm_cfgClearObject,New-AVIRestServiceengineFaultinjectSefaultClearObject,Remove-AVIRestServiceengine,Get-AVIRestServiceenginegroup,Set-AVIRestServiceenginegroup,New-AVIRestServiceenginegroup,New-AVIRestServiceenginegroupClear,New-AVIRestServiceenginegroupObject,Invoke-AVIRestServiceenginegroupRedistribute,Remove-AVIRestServiceenginegroup,Get-AVIRestServiceenginegroupInventory,Set-AVIRestServiceenginegroupInventory,Set-AVIRestUpgradestatussummary,Set-AVIRestServiceenginegroup,New-AVIRestServiceenginegroupInventory,New-AVIRestUpgradestatussummary,New-AVIRestServiceenginegroup,New-AVIRestServiceenginegroupInventoryObject,New-AVIRestUpgradestatussummaryObject,New-AVIRestServiceenginegroupObject,Remove-AVIRestServiceenginegroupInventory,Remove-AVIRestUpgradestatussummary,Remove-AVIRestServiceenginegroup,Get-AVIRestServiceengineInventory,Set-AVIRestServiceengineInventory,New-AVIRestServiceengineInventory,New-AVIRestServiceengineInventoryObject,Remove-AVIRestServiceengineInventory,Get-AVIRestServiceenginepolicy,Set-AVIRestServiceenginepolicy,New-AVIRestServiceenginepolicy,New-AVIRestServiceenginepolicyObject,Remove-AVIRestServiceenginepolicy,Get-AVIRestSiteversion,Set-AVIRestSiteversion,New-AVIRestSiteversion,New-AVIRestSiteversionObject,Remove-AVIRestSiteversion,Get-AVIRestSnmptrapprofile,Set-AVIRestSnmptrapprofile,New-AVIRestSnmptrapprofile,New-AVIRestSnmptrapprofileObject,Invoke-AVIRestSnmptrapprofileTestsnmptrap,Remove-AVIRestSnmptrapprofile,Get-AVIRestSslkeyandcertificate,Set-AVIRestSslkeyandcertificate,New-AVIRestSslkeyandcertificate,New-AVIRestSslkeyandcertificateObject,Invoke-AVIRestSslkeyandcertificateRenew,Remove-AVIRestSslkeyandcertificate,Get-AVIRestSslprofile,Set-AVIRestSslprofile,New-AVIRestSslprofile,New-AVIRestSslprofileObject,Remove-AVIRestSslprofile,Get-AVIRestSsopolicy,Set-AVIRestSsopolicy,New-AVIRestSsopolicy,New-AVIRestSsopolicyObject,Remove-AVIRestSsopolicy,Get-AVIRestStatediffoperation,Set-AVIRestStatediffoperation,New-AVIRestStatediffoperation,New-AVIRestStatediffoperationObject,Remove-AVIRestStatediffoperation,Get-AVIRestStatediffoperation,Set-AVIRestStatediffoperation,New-AVIRestStatediffoperation,Remove-AVIRestStatediffoperation,Get-AVIRestStringgroup,Set-AVIRestStringgroup,New-AVIRestStringgroup,New-AVIRestStringgroupObject,Remove-AVIRestStringgroup,Get-AVIRestSystemconfiguration,Set-AVIRestSystemconfiguration,New-AVIRestSystemconfigurationSystestemail,New-AVIRestSystemconfigurationSystestemailObject,Get-AVIRestSystemlimits,Set-AVIRestSystemlimits,New-AVIRestSystemlimits,New-AVIRestSystemlimitsObject,Remove-AVIRestSystemlimits,Get-AVIRestTenant,Set-AVIRestTenant,New-AVIRestTenant,New-AVIRestTenantObject,Remove-AVIRestTenant,Get-AVIRestTenantsystemconfiguration,Set-AVIRestTenantsystemconfiguration,New-AVIRestTenantsystemconfiguration,New-AVIRestTenantsystemconfigurationObject,Remove-AVIRestTenantsystemconfiguration,Get-AVIRestTestsedatastorelevel1,Set-AVIRestTestsedatastorelevel1,New-AVIRestTestsedatastorelevel1,New-AVIRestTestsedatastorelevel1Object,Remove-AVIRestTestsedatastorelevel1,Get-AVIRestTestsedatastorelevel2,Set-AVIRestTestsedatastorelevel2,New-AVIRestTestsedatastorelevel2,New-AVIRestTestsedatastorelevel2Object,Remove-AVIRestTestsedatastorelevel2,Get-AVIRestTestsedatastorelevel3,Set-AVIRestTestsedatastorelevel3,New-AVIRestTestsedatastorelevel3,New-AVIRestTestsedatastorelevel3Object,Remove-AVIRestTestsedatastorelevel3,Get-AVIRestTrafficcloneprofile,Set-AVIRestTrafficcloneprofile,New-AVIRestTrafficcloneprofile,New-AVIRestTrafficcloneprofileObject,Remove-AVIRestTrafficcloneprofile,Get-AVIRestUpgradestatusinfo,Set-AVIRestUpgradestatusinfo,New-AVIRestUpgradestatusinfo,New-AVIRestUpgradestatusinfoObject,Remove-AVIRestUpgradestatusinfo,Get-AVIRestUpgradestatusinfo,Set-AVIRestUpgradestatusinfo,New-AVIRestUpgradestatusinfo,Remove-AVIRestUpgradestatusinfo,Get-AVIRestUser,Set-AVIRestUser,New-AVIRestUser,New-AVIRestUserObject,Remove-AVIRestUser,Get-AVIRestUseraccountprofile,Set-AVIRestUseraccountprofile,New-AVIRestUseraccountprofile,New-AVIRestUseraccountprofileObject,Remove-AVIRestUseraccountprofile,Get-AVIRestUseractivity,Set-AVIRestUseractivity,New-AVIRestUseractivity,New-AVIRestUseractivityObject,Remove-AVIRestUseractivity,Get-AVIRestVcenterserver,Set-AVIRestVcenterserver,New-AVIRestVcenterserver,New-AVIRestVcenterserverObject,Remove-AVIRestVcenterserver,Get-AVIRestVimgrvcenterdatacenters,Set-AVIRestVimgrvcenterdatacenters,New-AVIRestVimgrvcenterdatacenters,Remove-AVIRestVimgrvcenterdatacenters,Get-AVIRestVimgrclusterruntime,Set-AVIRestVimgrclusterruntime,New-AVIRestVimgrclusterruntime,New-AVIRestVimgrclusterruntimeObject,Remove-AVIRestVimgrclusterruntime,Get-AVIRestVimgrcontrollerruntime,Set-AVIRestVimgrcontrollerruntime,New-AVIRestVimgrcontrollerruntime,New-AVIRestVimgrcontrollerruntimeObject,Remove-AVIRestVimgrcontrollerruntime,Get-AVIRestVimgrdcruntime,Set-AVIRestVimgrdcruntime,New-AVIRestVimgrdcruntime,New-AVIRestVimgrdcruntimeObject,Remove-AVIRestVimgrdcruntime,Get-AVIRestVimgrhostruntime,Set-AVIRestVimgrhostruntime,New-AVIRestVimgrhostruntime,New-AVIRestVimgrhostruntimeGetquarantinedhosts,New-AVIRestVimgrhostruntimeObject,Invoke-AVIRestVimgrhostruntimeAccessible,Remove-AVIRestVimgrhostruntime,Get-AVIRestVimgrnwruntime,Set-AVIRestVimgrnwruntime,New-AVIRestVimgrnwruntime,New-AVIRestVimgrnwruntimeObject,Remove-AVIRestVimgrnwruntime,Get-AVIRestVimgrsevmruntime,Set-AVIRestVimgrsevmruntime,New-AVIRestVimgrsevmruntime,New-AVIRestVimgrsevmruntimeObject,Remove-AVIRestVimgrsevmruntime,Get-AVIRestVimgrvcenterruntime,Set-AVIRestVimgrvcenterruntime,New-AVIRestVimgrvcenterruntime,New-AVIRestVimgrvcenterruntimeSpawn,New-AVIRestVimgrvcenterruntimeRemove,New-AVIRestVimgrvcenterruntimeSetmgmtip,New-AVIRestVimgrvcenterruntimeModifymgmtip,New-AVIRestVimgrvcenterruntimeSetvnic,New-AVIRestVimgrvcenterruntimeModifyvnic,New-AVIRestVimgrvcenterruntimeRetrievevcenterdcnws,New-AVIRestVimgrvcenterruntimeRediscover,New-AVIRestVimgrvcenterruntimeVerifylogin,New-AVIRestVimgrvcenterruntimeOsverifylogin,New-AVIRestVimgrvcenterruntimeAwsverifylogin,New-AVIRestVimgrvcenterruntimeFaultinject,New-AVIRestVimgrvcenterruntimeDeletenetwork,New-AVIRestVimgrvcenterruntimeVcenterstatus,New-AVIRestVimgrvcenterruntimeVcenterdiag,New-AVIRestVimgrvcenterruntimeControlleripsubnets,New-AVIRestVimgrvcenterruntimeGenevent,New-AVIRestVimgrvcenterruntimeObject,New-AVIRestVimgrvcenterruntimeSetmgmtipObject,New-AVIRestVimgrvcenterruntimeSetvnicObject,New-AVIRestVimgrvcenterruntimeRediscoverObject,New-AVIRestVimgrvcenterruntimeFaultinjectObject,New-AVIRestVimgrvcenterruntimeDeletenetworkObject,Invoke-AVIRestVimgrvcenterruntimeGetnetworks,Remove-AVIRestVimgrvcenterruntime,Get-AVIRestVimgrvmruntime,Set-AVIRestVimgrvmruntime,New-AVIRestVimgrvmruntime,New-AVIRestVimgrvmruntimeObject,Remove-AVIRestVimgrvmruntime,Get-AVIRestVimgrvcenternetworks,Set-AVIRestVimgrvcenternetworks,New-AVIRestVimgrvcenternetworks,Remove-AVIRestVimgrvcenternetworks,Get-AVIRestVirtualservice,Set-AVIRestVirtualservice,New-AVIRestVirtualservice,New-AVIRestVirtualserviceClear,New-AVIRestVirtualserviceObject,New-AVIRestVirtualserviceClearObject,Invoke-AVIRestVirtualserviceScaleout,Invoke-AVIRestVirtualserviceScalein,Invoke-AVIRestVirtualserviceMigrate,Invoke-AVIRestVirtualserviceSwitchover,Invoke-AVIRestVirtualserviceResync,Invoke-AVIRestVirtualserviceRotatekeys,Invoke-AVIRestVirtualserviceRetryplacement,Invoke-AVIRestVirtualserviceLogRecommendation,Invoke-AVIRestVirtualserviceApplyLogRecommendation,New-AVIRestVirtualserviceScaleoutObject,New-AVIRestVirtualserviceScaleinObject,New-AVIRestVirtualserviceMigrateObject,New-AVIRestVirtualserviceSwitchoverObject,New-AVIRestVirtualserviceResyncObject,New-AVIRestVirtualserviceRetryplacementObject,New-AVIRestVirtualserviceLogRecommendationObject,New-AVIRestVirtualserviceApplyLogRecommendationObject,Remove-AVIRestVirtualservice,Get-AVIRestVrfcontext,Set-AVIRestVrfcontext,New-AVIRestVrfcontext,New-AVIRestVrfcontextObject,Remove-AVIRestVrfcontext,Get-AVIRestVsdatascriptset,Set-AVIRestVsdatascriptset,New-AVIRestVsdatascriptset,New-AVIRestVsdatascriptsetObject,Remove-AVIRestVsdatascriptset,Get-AVIRestVsgs,Set-AVIRestVsgs,New-AVIRestVsgs,New-AVIRestVsgsObject,Remove-AVIRestVsgs,Get-AVIRestVirtualserviceInventory,Set-AVIRestVirtualserviceInventory,New-AVIRestVirtualserviceInventory,Remove-AVIRestVirtualserviceInventory,Get-AVIRestVsvip,Set-AVIRestVsvip,New-AVIRestVsvip,New-AVIRestVsvipObject,Remove-AVIRestVsvip,Get-AVIRestVsvipInventory,Set-AVIRestVsvipInventory,New-AVIRestVsvipInventory,New-AVIRestVsvipInventoryObject,Remove-AVIRestVsvipInventory,Get-AVIRestWafapplicationsignatureprovider,Set-AVIRestWafapplicationsignatureprovider,New-AVIRestWafapplicationsignatureprovider,New-AVIRestWafapplicationsignatureproviderObject,Remove-AVIRestWafapplicationsignatureprovider,Get-AVIRestWafcrs,Set-AVIRestWafcrs,New-AVIRestWafcrs,New-AVIRestWafcrsObject,Remove-AVIRestWafcrs,Get-AVIRestWafpolicy,Set-AVIRestWafpolicy,Set-AVIRestWafpolicyUpdateCrsRules,New-AVIRestWafpolicy,New-AVIRestWafpolicyObject,Remove-AVIRestWafpolicy,Get-AVIRestWafpolicypsmgroup,Set-AVIRestWafpolicypsmgroup,New-AVIRestWafpolicypsmgroup,New-AVIRestWafpolicypsmgroupObject,Remove-AVIRestWafpolicypsmgroup,Get-AVIRestWafpolicypsmgroupInventory,Set-AVIRestWafpolicypsmgroupInventory,New-AVIRestWafpolicypsmgroupInventory,New-AVIRestWafpolicypsmgroupInventoryObject,Remove-AVIRestWafpolicypsmgroupInventory,Get-AVIRestWafprofile,Set-AVIRestWafprofile,New-AVIRestWafprofile,New-AVIRestWafprofileObject,Remove-AVIRestWafprofile,Get-AVIRestWebapput,Set-AVIRestWebapput,New-AVIRestWebapput,New-AVIRestWebapputObject,Remove-AVIRestWebapput,Get-AVIRestWebhook,Set-AVIRestWebhook,New-AVIRestWebhook,New-AVIRestWebhookObject,Remove-AVIRestWebhook