Public/Storage.ps1

Function Get-NmeAzureFilesAutoScaleConfig {
    <#

    .SYNOPSIS

    Get Azure Files autoscale.

    .DESCRIPTION

    Get Azure Files autoscale.

    This function calls the /api/v1/storage/azure-files/{subscriptionId}/{resourceGroup}/{accountName}/{shareName}/auto-scale endpoint of the NME REST API, using the get method.


    .PARAMETER SubscriptionId

    The id (guid) of the subscription where this storage resides

    .PARAMETER ResourceGroup

    The Azure resource group where the storage resides

    .PARAMETER AccountName

    Storage account name

    .PARAMETER ShareName

    File share name

    #>


    [CmdletBinding()]
    Param(
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$SubscriptionId,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$ResourceGroup,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$AccountName,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$ShareName
    )
    Set-NmeAuthHeaders
    Try {
        $Result = Invoke-RestMethod "$script:NmeUri/api/v1/storage/azure-files/$SubscriptionId/$ResourceGroup/$AccountName/$ShareName/auto-scale$Querystring" -Method get -Headers $script:AuthHeaders -ContentType 'application/json'
        $Result.PSObject.TypeNames.Insert(0, 'NmeAzureFilesAutoscaleConfig')
        $Result | Add-Member -NotePropertyName 'subscriptionId' -NotePropertyValue $subscriptionId -erroraction 'SilentlyContinue'
        $Result | Add-Member -NotePropertyName 'resourceGroup' -NotePropertyValue $resourceGroup -erroraction 'SilentlyContinue'
        $Result | Add-Member -NotePropertyName 'accountName' -NotePropertyValue $accountName -erroraction 'SilentlyContinue'
        $Result | Add-Member -NotePropertyName 'shareName' -NotePropertyValue $shareName -erroraction 'SilentlyContinue'
        $Result | CapProps
    }
    Catch {
        $message = ParseErrorForResponseBody($_)
        write-error ($message | out-string)
    }
}
Function Update-NmeAzureFilesAutoScaleConfig {
    <#

    .SYNOPSIS

    Enable or disable Azure Files autoscale.

    .DESCRIPTION

    Enable or disable Azure Files autoscale.

    This function calls the /api/v1/storage/azure-files/{subscriptionId}/{resourceGroup}/{accountName}/{shareName}/auto-scale endpoint of the NME REST API, using the patch method.


    .PARAMETER SubscriptionId

    The id (guid) of the subscription where this storage resides

    .PARAMETER ResourceGroup

    The Azure resource group where the storage resides

    .PARAMETER AccountName

    Storage account name

    .PARAMETER ShareName

    File share name

    .PARAMETER NmeAzureFilesAutoscaleConfig

    Requires an NmeAzureFilesAutoscaleConfig object, as generated by the New-NmeAzureFilesAutoscaleConfig command.

    #>


    [CmdletBinding()]
    Param(
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$SubscriptionId,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$ResourceGroup,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$AccountName,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$ShareName,
        [Parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$True)][ValidateScript({if ($_.PSObject.TypeNames -contains "NmeAzureFilesAutoscaleConfig"){$true} else{throw " is not a NmeAzureFilesAutoscaleConfig object."}})]$NmeAzureFilesAutoscaleConfig
    )
    Set-NmeAuthHeaders
    Try {
        $json = $NmeAzureFilesAutoscaleConfig | ConvertTo-Json -Depth 20
        Write-Debug 'json:'
        Write-Debug $json
        $Result = Invoke-RestMethod "$script:NmeUri/api/v1/storage/azure-files/$SubscriptionId/$ResourceGroup/$AccountName/$ShareName/auto-scale$QueryString" -Method patch -Headers $script:AuthHeaders -ContentType 'application/json' -body $json
        Write-Verbose ($result | out-string)
        $Result.PSObject.TypeNames.Insert(0, 'NmeResponseWithJob')
        $Result | Add-Member -NotePropertyName 'subscriptionId' -NotePropertyValue $subscriptionId -erroraction 'SilentlyContinue'
        $Result | Add-Member -NotePropertyName 'resourceGroup' -NotePropertyValue $resourceGroup -erroraction 'SilentlyContinue'
        $Result | Add-Member -NotePropertyName 'accountName' -NotePropertyValue $accountName -erroraction 'SilentlyContinue'
        $Result | Add-Member -NotePropertyName 'shareName' -NotePropertyValue $shareName -erroraction 'SilentlyContinue'
        $Result | CapProps
    }
    Catch {
        $message = ParseErrorForResponseBody($_)
        write-error ($message | out-string)
    }
}
Function Set-NmeAzureFilesAutoScaleConfig {
    <#

    .SYNOPSIS

    Update Azure Files autoscale.

    .DESCRIPTION

    Update Azure Files autoscale.

    This function calls the /api/v1/storage/azure-files/{subscriptionId}/{resourceGroup}/{accountName}/{shareName}/auto-scale endpoint of the NME REST API, using the put method.


    .PARAMETER SubscriptionId

    The id (guid) of the subscription where this storage resides

    .PARAMETER ResourceGroup

    The Azure resource group where the storage resides

    .PARAMETER AccountName

    Storage account name

    .PARAMETER ShareName

    File share name

    .PARAMETER NmeAzureFilesAutoscaleConfig

    Requires an NmeAzureFilesAutoscaleConfig object, as generated by the New-NmeAzureFilesAutoscaleConfig command.

    #>


    [CmdletBinding()]
    Param(
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$SubscriptionId,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$ResourceGroup,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$AccountName,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$ShareName,
        [Parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$True)][ValidateScript({if ($_.PSObject.TypeNames -contains "NmeAzureFilesAutoscaleConfig"){$true} else{throw " is not a NmeAzureFilesAutoscaleConfig object."}})]$NmeAzureFilesAutoscaleConfig
    )
    Set-NmeAuthHeaders
    Try {
        $json = $NmeAzureFilesAutoscaleConfig | ConvertTo-Json -Depth 20
        Write-Debug 'json:'
        Write-Debug $json
        $Result = Invoke-RestMethod "$script:NmeUri/api/v1/storage/azure-files/$SubscriptionId/$ResourceGroup/$AccountName/$ShareName/auto-scale$QueryString" -Method put -Headers $script:AuthHeaders -ContentType 'application/json' -body $json
        Write-Verbose ($result | out-string)
        $Result.PSObject.TypeNames.Insert(0, 'NmeResponseWithJob')
        $Result | Add-Member -NotePropertyName 'subscriptionId' -NotePropertyValue $subscriptionId -erroraction 'SilentlyContinue'
        $Result | Add-Member -NotePropertyName 'resourceGroup' -NotePropertyValue $resourceGroup -erroraction 'SilentlyContinue'
        $Result | Add-Member -NotePropertyName 'accountName' -NotePropertyValue $accountName -erroraction 'SilentlyContinue'
        $Result | Add-Member -NotePropertyName 'shareName' -NotePropertyValue $shareName -erroraction 'SilentlyContinue'
        $Result | CapProps
    }
    Catch {
        $message = ParseErrorForResponseBody($_)
        write-error ($message | out-string)
    }
}
Function Get-NmeNetAppFilesAutoScaleConfig {
    <#

    .SYNOPSIS

    Get Net App Files autoscale.

    .DESCRIPTION

    Get Net App Files autoscale.

    This function calls the /api/v1/storage/netapp-files/{subscriptionId}/{resourceGroupName}/{accountName}/{poolName}/{volumeName}/auto-scale endpoint of the NME REST API, using the get method.


    .PARAMETER SubscriptionId

    The id (guid) of the subscription where this storage resides

    .PARAMETER ResourceGroupName

    Resource group name

    .PARAMETER AccountName

    Storage account name

    .PARAMETER PoolName

    NetApp Files capacity pool name

    .PARAMETER VolumeName

    NetApp volume name

    #>


    [CmdletBinding()]
    Param(
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$SubscriptionId,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$ResourceGroupName,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$AccountName,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$PoolName,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$VolumeName
    )
    Set-NmeAuthHeaders
    Try {
        $Result = Invoke-RestMethod "$script:NmeUri/api/v1/storage/netapp-files/$SubscriptionId/$ResourceGroupName/$AccountName/$PoolName/$VolumeName/auto-scale$Querystring" -Method get -Headers $script:AuthHeaders -ContentType 'application/json'
        $Result.PSObject.TypeNames.Insert(0, 'NmeNetAppFilesAutoscaleConfig')
        $Result | Add-Member -NotePropertyName 'subscriptionId' -NotePropertyValue $subscriptionId -erroraction 'SilentlyContinue'
        $Result | Add-Member -NotePropertyName 'resourceGroupName' -NotePropertyValue $resourceGroupName -erroraction 'SilentlyContinue'
        $Result | Add-Member -NotePropertyName 'accountName' -NotePropertyValue $accountName -erroraction 'SilentlyContinue'
        $Result | Add-Member -NotePropertyName 'poolName' -NotePropertyValue $poolName -erroraction 'SilentlyContinue'
        $Result | Add-Member -NotePropertyName 'volumeName' -NotePropertyValue $volumeName -erroraction 'SilentlyContinue'
        $Result | CapProps
    }
    Catch {
        $message = ParseErrorForResponseBody($_)
        write-error ($message | out-string)
    }
}
Function Update-NmeNetAppFilesAutoScaleConfig {
    <#

    .SYNOPSIS

    Enable or disable Net App Files autoscale.

    .DESCRIPTION

    Enable or disable Net App Files autoscale.

    This function calls the /api/v1/storage/netapp-files/{subscriptionId}/{resourceGroupName}/{accountName}/{poolName}/{volumeName}/auto-scale endpoint of the NME REST API, using the patch method.


    .PARAMETER SubscriptionId

    The id (guid) of the subscription where this storage resides

    .PARAMETER ResourceGroupName

    Resource group name

    .PARAMETER AccountName

    Storage account name

    .PARAMETER PoolName

    NetApp Files capacity pool name

    .PARAMETER VolumeName

    NetApp volume name

    .PARAMETER NmeNetAppFilesAutoscaleConfig

    Requires an NmeNetAppFilesAutoscaleConfig object, as generated by the New-NmeNetAppFilesAutoscaleConfig command.

    #>


    [CmdletBinding()]
    Param(
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$SubscriptionId,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$ResourceGroupName,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$AccountName,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$PoolName,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$VolumeName,
        [Parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$True)][ValidateScript({if ($_.PSObject.TypeNames -contains "NmeNetAppFilesAutoscaleConfig"){$true} else{throw " is not a NmeNetAppFilesAutoscaleConfig object."}})]$NmeNetAppFilesAutoscaleConfig
    )
    Set-NmeAuthHeaders
    Try {
        $json = $NmeNetAppFilesAutoscaleConfig | ConvertTo-Json -Depth 20
        Write-Debug 'json:'
        Write-Debug $json
        $Result = Invoke-RestMethod "$script:NmeUri/api/v1/storage/netapp-files/$SubscriptionId/$ResourceGroupName/$AccountName/$PoolName/$VolumeName/auto-scale$QueryString" -Method patch -Headers $script:AuthHeaders -ContentType 'application/json' -body $json
        Write-Verbose ($result | out-string)
        $Result.PSObject.TypeNames.Insert(0, 'NmeResponseWithJob')
        $Result | Add-Member -NotePropertyName 'subscriptionId' -NotePropertyValue $subscriptionId -erroraction 'SilentlyContinue'
        $Result | Add-Member -NotePropertyName 'resourceGroupName' -NotePropertyValue $resourceGroupName -erroraction 'SilentlyContinue'
        $Result | Add-Member -NotePropertyName 'accountName' -NotePropertyValue $accountName -erroraction 'SilentlyContinue'
        $Result | Add-Member -NotePropertyName 'poolName' -NotePropertyValue $poolName -erroraction 'SilentlyContinue'
        $Result | Add-Member -NotePropertyName 'volumeName' -NotePropertyValue $volumeName -erroraction 'SilentlyContinue'
        $Result | CapProps
    }
    Catch {
        $message = ParseErrorForResponseBody($_)
        write-error ($message | out-string)
    }
}
Function Set-NmeNetAppFilesAutoScaleConfig {
    <#

    .SYNOPSIS

    Update Net App Files autoscale.

    .DESCRIPTION

    Update Net App Files autoscale.

    This function calls the /api/v1/storage/netapp-files/{subscriptionId}/{resourceGroupName}/{accountName}/{poolName}/{volumeName}/auto-scale endpoint of the NME REST API, using the put method.


    .PARAMETER SubscriptionId

    The id (guid) of the subscription where this storage resides

    .PARAMETER ResourceGroupName

    Resource group name

    .PARAMETER AccountName

    Storage account name

    .PARAMETER PoolName

    NetApp Files capacity pool name

    .PARAMETER VolumeName

    NetApp volume name

    .PARAMETER NmeNetAppFilesAutoscaleConfig

    Requires an NmeNetAppFilesAutoscaleConfig object, as generated by the New-NmeNetAppFilesAutoscaleConfig command.

    #>


    [CmdletBinding()]
    Param(
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$SubscriptionId,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$ResourceGroupName,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$AccountName,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$PoolName,
        [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][string]$VolumeName,
        [Parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$True)][ValidateScript({if ($_.PSObject.TypeNames -contains "NmeNetAppFilesAutoscaleConfig"){$true} else{throw " is not a NmeNetAppFilesAutoscaleConfig object."}})]$NmeNetAppFilesAutoscaleConfig
    )
    Set-NmeAuthHeaders
    Try {
        $json = $NmeNetAppFilesAutoscaleConfig | ConvertTo-Json -Depth 20
        Write-Debug 'json:'
        Write-Debug $json
        $Result = Invoke-RestMethod "$script:NmeUri/api/v1/storage/netapp-files/$SubscriptionId/$ResourceGroupName/$AccountName/$PoolName/$VolumeName/auto-scale$QueryString" -Method put -Headers $script:AuthHeaders -ContentType 'application/json' -body $json
        Write-Verbose ($result | out-string)
        $Result.PSObject.TypeNames.Insert(0, 'NmeResponseWithJob')
        $Result | Add-Member -NotePropertyName 'subscriptionId' -NotePropertyValue $subscriptionId -erroraction 'SilentlyContinue'
        $Result | Add-Member -NotePropertyName 'resourceGroupName' -NotePropertyValue $resourceGroupName -erroraction 'SilentlyContinue'
        $Result | Add-Member -NotePropertyName 'accountName' -NotePropertyValue $accountName -erroraction 'SilentlyContinue'
        $Result | Add-Member -NotePropertyName 'poolName' -NotePropertyValue $poolName -erroraction 'SilentlyContinue'
        $Result | Add-Member -NotePropertyName 'volumeName' -NotePropertyValue $volumeName -erroraction 'SilentlyContinue'
        $Result | CapProps
    }
    Catch {
        $message = ParseErrorForResponseBody($_)
        write-error ($message | out-string)
    }
}