Public/Usages.ps1

Function Get-NmeHostPoolUsage {
    <#
 
    .SYNOPSIS
 
    Get usage of ARM host pool.
 
    .DESCRIPTION
 
    Get usage of ARM host pool.
 
    This function calls the /api/v1/usages/arm/hostpool/{subscriptionId}/{resourceGroup}/{hostPoolName} endpoint of the NME REST API, using the get method.
 
 
    .PARAMETER SubscriptionId
 
    The id (guid) of the subscription where this usages resides
 
    .PARAMETER ResourceGroup
 
    The Azure resource group where the usages resides
 
    .PARAMETER HostPoolName
 
    The name of the Host Pool
 
    .PARAMETER StartUtc
 
    Start date in UTC
 
    .PARAMETER EndUtc
 
    End date in UTC
 
    #>


    [CmdletBinding()]
    Param(
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$SubscriptionId,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$ResourceGroup,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$HostPoolName,
        [Parameter(ValueFromPipelineByPropertyName=$true)][string]$StartUtc,
        [Parameter(ValueFromPipelineByPropertyName=$true)][string]$EndUtc
    )
    Set-NmeAuthHeaders
    Try {
        $QueryString = '?'
        $QueryStrings = @{}
        $QueryStrings += @{startUtc= $startUtc}
        $QueryStrings += @{endUtc= $endUtc}
        $QueryString += ($QueryStrings.GetEnumerator() | % { "$($_.Key)=$($_.Value)" }) -join '&'
        $Result = Invoke-RestMethod "$script:NmeUri/api/v1/usages/arm/hostpool/$SubscriptionId/$ResourceGroup/$HostPoolName$Querystring" -Method get -Headers $script:AuthHeaders -ContentType 'application/json'
        $Result.PSObject.TypeNames.Insert(0, 'NmeUsageRestModel')
        $Result | Add-Member -NotePropertyName 'subscriptionId' -NotePropertyValue $subscriptionId -erroraction 'SilentlyContinue'
        $Result | Add-Member -NotePropertyName 'resourceGroup' -NotePropertyValue $resourceGroup -erroraction 'SilentlyContinue'
        $Result | Add-Member -NotePropertyName 'hostPoolName' -NotePropertyValue $hostPoolName -erroraction 'SilentlyContinue'
        $Result | CapProps
    }
    Catch {
        $message = ParseErrorForResponseBody($_)
        write-error ($message | out-string)
    }
}
Function Get-NmeWorkSpaceUsage {
    <#
 
    .SYNOPSIS
 
    Get usage of ARM workspace.
 
    .DESCRIPTION
 
    Get usage of ARM workspace.
 
    This function calls the /api/v1/usages/arm/workspace/{subscriptionId}/{resourceGroup}/{workspaceName} endpoint of the NME REST API, using the get method.
 
 
    .PARAMETER SubscriptionId
 
    The id (guid) of the subscription where this usages resides
 
    .PARAMETER ResourceGroup
 
    The Azure resource group where the usages resides
 
    .PARAMETER WorkspaceName
 
    Name of the AVD Workspace
 
    .PARAMETER StartUtc
 
    Start date in UTC
 
    .PARAMETER EndUtc
 
    End date in UTC
 
    #>


    [CmdletBinding()]
    Param(
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$SubscriptionId,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$ResourceGroup,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$WorkspaceName,
        [Parameter(ValueFromPipelineByPropertyName=$true)][string]$StartUtc,
        [Parameter(ValueFromPipelineByPropertyName=$true)][string]$EndUtc
    )
    Set-NmeAuthHeaders
    Try {
        $QueryString = '?'
        $QueryStrings = @{}
        $QueryStrings += @{startUtc= $startUtc}
        $QueryStrings += @{endUtc= $endUtc}
        $QueryString += ($QueryStrings.GetEnumerator() | % { "$($_.Key)=$($_.Value)" }) -join '&'
        $Result = Invoke-RestMethod "$script:NmeUri/api/v1/usages/arm/workspace/$SubscriptionId/$ResourceGroup/$WorkspaceName$Querystring" -Method get -Headers $script:AuthHeaders -ContentType 'application/json'
        $Result.PSObject.TypeNames.Insert(0, 'NmeUsageRestModel')
        $Result | Add-Member -NotePropertyName 'subscriptionId' -NotePropertyValue $subscriptionId -erroraction 'SilentlyContinue'
        $Result | Add-Member -NotePropertyName 'resourceGroup' -NotePropertyValue $resourceGroup -erroraction 'SilentlyContinue'
        $Result | Add-Member -NotePropertyName 'workspaceName' -NotePropertyValue $workspaceName -erroraction 'SilentlyContinue'
        $Result | CapProps
    }
    Catch {
        $message = ParseErrorForResponseBody($_)
        write-error ($message | out-string)
    }
}
Function Get-NmeAllWorkSpaceUsage {
    <#
 
    .SYNOPSIS
 
    Get usage of all ARM workspaces.
 
    .DESCRIPTION
 
    Get usage of all ARM workspaces.
 
    This function calls the /api/v1/usages/arm/workspace endpoint of the NME REST API, using the get method.
 
 
    .PARAMETER StartUtc
 
    Start date in UTC
 
    .PARAMETER EndUtc
 
    End date in UTC
 
    #>


    [CmdletBinding()]
    Param(
        [Parameter(ValueFromPipelineByPropertyName=$true)][string]$StartUtc,
        [Parameter(ValueFromPipelineByPropertyName=$true)][string]$EndUtc
    )
    Set-NmeAuthHeaders
    Try {
        $QueryString = '?'
        $QueryStrings = @{}
        $QueryStrings += @{startUtc= $startUtc}
        $QueryStrings += @{endUtc= $endUtc}
        $QueryString += ($QueryStrings.GetEnumerator() | % { "$($_.Key)=$($_.Value)" }) -join '&'
        $Result = Invoke-RestMethod "$script:NmeUri/api/v1/usages/arm/workspace$Querystring" -Method get -Headers $script:AuthHeaders -ContentType 'application/json'
        $Result.PSObject.TypeNames.Insert(0, 'NmeUsageRestModel')
        $Result | CapProps
    }
    Catch {
        $message = ParseErrorForResponseBody($_)
        write-error ($message | out-string)
    }
}