exports/Invoke-NmeUserCostAttributionConfigurationReportExport.ps1


# ----------------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator (autorest: 3.10.8, generator: @autorest/powershell@4.0.752)
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# ----------------------------------------------------------------------------------

<#
.Synopsis
This is an asynchronous operation.
The response contains an exportId that should be used with the PollExport endpoint to check export status.\n\nWorkflow:\n1.
Call this endpoint to start the export - returns exportId\n2.
Poll GET export/{exportId} until status is 'Completed'\n3.
Use the downloadUrl from the polling response to download the CSV file
.Description
This is an asynchronous operation.
The response contains an exportId that should be used with the PollExport endpoint to check export status.\n\nWorkflow:\n1.
Call this endpoint to start the export - returns exportId\n2.
Poll GET export/{exportId} until status is 'Completed'\n3.
Use the downloadUrl from the polling response to download the CSV file

#>

function Invoke-NmeUserCostAttributionConfigurationReportExport {
[OutputType([System.String])]
[CmdletBinding(DefaultParameterSetName='Invoke', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(Mandatory)]
    [NmePowershell.Category('Path')]
    [System.String]
    # .
    ${Id},

    [Parameter(Mandatory)]
    [NmePowershell.Category('Path')]
    [System.Int32]
    # .
    ${Month},

    [Parameter(Mandatory)]
    [NmePowershell.Category('Path')]
    [System.Int32]
    # .
    ${Year},

    [Parameter(Mandatory)]
    [NmePowershell.PSArgumentCompleterAttribute("ResourceCostSummary", "UserCostSummary", "HostPoolSummary")]
    [NmePowershell.Category('Query')]
    [System.String]
    # Export type (ResourceCostSummary/UserCostSummary/HostPoolSummary)
    ${ExportType},

    [Parameter(Mandatory)]
    [NmePowershell.PSArgumentCompleterAttribute("Uniform", "Proportional", "Unallocated")]
    [NmePowershell.Category('Query')]
    [System.String]
    # Report type (Allocated/Unallocated/Uniform)
    ${ReportType},

    [Parameter(DontShow)]
    [NmePowershell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Wait for .NET debugger to attach
    ${Break},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [NmePowershell.Category('Runtime')]
    [NmePowershell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be appended to the front of the pipeline
    ${HttpPipelineAppend},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [NmePowershell.Category('Runtime')]
    [NmePowershell.Runtime.SendAsyncStep[]]
    # SendAsync Pipeline Steps to be prepended to the front of the pipeline
    ${HttpPipelinePrepend},

    [Parameter()]
    [NmePowershell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Returns true when the command succeeds
    ${PassThru},

    [Parameter(DontShow)]
    [NmePowershell.Category('Runtime')]
    [System.Uri]
    # The URI for the proxy server to use
    ${Proxy},

    [Parameter(DontShow)]
    [ValidateNotNull()]
    [NmePowershell.Category('Runtime')]
    [System.Management.Automation.PSCredential]
    # Credentials for a proxy server to use for the remote call
    ${ProxyCredential},

    [Parameter(DontShow)]
    [NmePowershell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Use the default credentials for the proxy
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        
        $testPlayback = $false
        $PSBoundParameters['HttpPipelinePrepend'] | Foreach-Object { if ($_) { $testPlayback = $testPlayback -or ('NmePowershell.Runtime.PipelineMock' -eq $_.Target.GetType().FullName -and 'Playback' -eq $_.Target.Mode) } }

        $mapping = @{
            Invoke = 'NerdioManagerPowerShell.private\Invoke-NmeUserCostAttributionConfigurationReportExport_Invoke';
        }
        $cmdInfo = Get-Command -Name $mapping[$parameterSet]
        [NmePowershell.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        [NmePowershell.Runtime.MessageAttributeHelper]::ProcessPreviewMessageAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        if ($wrappedCmd -eq $null) {
            $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Function)
        }
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}