internal/latest-2019-04-30/ProxyCmdletDefinitions.ps1


# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
The operation to add a role assignment to a billing account.
.Description
The operation to add a role assignment to a billing account.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/add-azbillingroleassignment
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingRoleAssignmentPayload
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingRoleAssignment
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
 
PARAMETER <IBillingRoleAssignmentPayload>: The payload use to update role assignment on a scope
  [BillingRoleDefinitionId <String>]: The role definition id
  [PrincipalId <String>]: The user's principal id that the role gets assigned to
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/add-azbillingroleassignment
#>

function Add-AzBillingRoleAssignment {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingRoleAssignment])]
[CmdletBinding(DefaultParameterSetName='AddExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Add', Mandatory)]
    [Parameter(ParameterSetName='Add1', Mandatory)]
    [Parameter(ParameterSetName='Add2', Mandatory)]
    [Parameter(ParameterSetName='AddExpanded', Mandatory)]
    [Parameter(ParameterSetName='AddExpanded1', Mandatory)]
    [Parameter(ParameterSetName='AddExpanded2', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountName},

    [Parameter(ParameterSetName='Add1', Mandatory)]
    [Parameter(ParameterSetName='AddExpanded1', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # InvoiceSection Id.
    ${InvoiceSectionName},

    [Parameter(ParameterSetName='Add2', Mandatory)]
    [Parameter(ParameterSetName='AddExpanded2', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Profile Id.
    ${BillingProfileName},

    [Parameter(ParameterSetName='AddViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='AddViaIdentity1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='AddViaIdentity2', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='AddViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='AddViaIdentityExpanded1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='AddViaIdentityExpanded2', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Add', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='Add1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='Add2', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='AddViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='AddViaIdentity1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='AddViaIdentity2', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingRoleAssignmentPayload]
    # The payload use to update role assignment on a scope
    # To construct, see NOTES section for PARAMETER properties and create a hash table.
    ${Parameter},

    [Parameter(ParameterSetName='AddExpanded')]
    [Parameter(ParameterSetName='AddExpanded1')]
    [Parameter(ParameterSetName='AddExpanded2')]
    [Parameter(ParameterSetName='AddViaIdentityExpanded')]
    [Parameter(ParameterSetName='AddViaIdentityExpanded1')]
    [Parameter(ParameterSetName='AddViaIdentityExpanded2')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # The role definition id
    ${BillingRoleDefinitionId},

    [Parameter(ParameterSetName='AddExpanded')]
    [Parameter(ParameterSetName='AddExpanded1')]
    [Parameter(ParameterSetName='AddExpanded2')]
    [Parameter(ParameterSetName='AddViaIdentityExpanded')]
    [Parameter(ParameterSetName='AddViaIdentityExpanded1')]
    [Parameter(ParameterSetName='AddViaIdentityExpanded2')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # The user's principal id that the role gets assigned to
    ${PrincipalId},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Add = 'Az.Billing.private\Add-AzBillingRoleAssignment_Add';
            Add1 = 'Az.Billing.private\Add-AzBillingRoleAssignment_Add1';
            Add2 = 'Az.Billing.private\Add-AzBillingRoleAssignment_Add2';
            AddExpanded = 'Az.Billing.private\Add-AzBillingRoleAssignment_AddExpanded';
            AddExpanded1 = 'Az.Billing.private\Add-AzBillingRoleAssignment_AddExpanded1';
            AddExpanded2 = 'Az.Billing.private\Add-AzBillingRoleAssignment_AddExpanded2';
            AddViaIdentity = 'Az.Billing.private\Add-AzBillingRoleAssignment_AddViaIdentity';
            AddViaIdentity1 = 'Az.Billing.private\Add-AzBillingRoleAssignment_AddViaIdentity1';
            AddViaIdentity2 = 'Az.Billing.private\Add-AzBillingRoleAssignment_AddViaIdentity2';
            AddViaIdentityExpanded = 'Az.Billing.private\Add-AzBillingRoleAssignment_AddViaIdentityExpanded';
            AddViaIdentityExpanded1 = 'Az.Billing.private\Add-AzBillingRoleAssignment_AddViaIdentityExpanded1';
            AddViaIdentityExpanded2 = 'Az.Billing.private\Add-AzBillingRoleAssignment_AddViaIdentityExpanded2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Provides the aggregate cost of a management group and all child management groups by current billing period.
.Description
Provides the aggregate cost of a management group and all child management groups by current billing period.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azaggregatedcost
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api201901.IManagementGroupAggregatedCostResult
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azaggregatedcost
#>

function Get-AzAggregatedCost {
[Alias('Get-AzConsumptionAggregatedCost')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api201901.IManagementGroupAggregatedCostResult])]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='Get1', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Azure Management Group ID.
    ${ManagementGroupId},

    [Parameter(ParameterSetName='Get1', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Period Name.
    ${BillingPeriodName},

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Get')]
    [Parameter(ParameterSetName='GetViaIdentity')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Query')]
    [System.String]
    # May be used to filter aggregated cost by properties/usageStart (Utc time), properties/usageEnd (Utc time).
    # The filter supports 'eq', 'lt', 'gt', 'le', 'ge', and 'and'.
    # It does not currently support 'ne', 'or', or 'not'.
    # Tag filter is a key value pair string where key and value is separated by a colon (:).
    ${Filter},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Get = 'Az.Billing.private\Get-AzAggregatedCost_Get';
            Get1 = 'Az.Billing.private\Get-AzAggregatedCost_Get1';
            GetViaIdentity = 'Az.Billing.private\Get-AzAggregatedCost_GetViaIdentity';
            GetViaIdentity1 = 'Az.Billing.private\Get-AzAggregatedCost_GetViaIdentity1';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get the agreement by name.
.Description
Get the agreement by name.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azagreement
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IAgreement
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azagreement
#>

function Get-AzAgreement {
[Alias('Get-AzBillingAgreement')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IAgreement])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountName},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Alias('AgreementName')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Agreement Id.
    ${Name},

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Query')]
    [System.String]
    # May be used to expand the participants.
    ${Expand},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Get = 'Az.Billing.private\Get-AzAgreement_Get';
            GetViaIdentity = 'Az.Billing.private\Get-AzAgreement_GetViaIdentity';
            List = 'Az.Billing.private\Get-AzAgreement_List';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
The latest available credit balance for a given billingAccountName and billingProfileName.
.Description
The latest available credit balance for a given billingAccountName and billingProfileName.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azavailablecreditbalance
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IAvailableBalance
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azavailablecreditbalance
#>

function Get-AzAvailableCreditBalance {
[Alias('Get-AzConsumptionAvailableBalance')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IAvailableBalance])]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountName},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Profile Id.
    ${BillingProfileName},

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Get = 'Az.Billing.private\Get-AzAvailableCreditBalance_Get';
            GetViaIdentity = 'Az.Billing.private\Get-AzAvailableCreditBalance_GetViaIdentity';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Gets the balances for a scope by billingAccountId.
Balances are available via this API only for May 1, 2014 or later.
.Description
Gets the balances for a scope by billingAccountId.
Balances are available via this API only for May 1, 2014 or later.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azbalance
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181001.IBalance
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azbalance
#>

function Get-AzBalance {
[Alias('Get-AzConsumptionBalance')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181001.IBalance])]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='Get1', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # BillingAccount ID
    ${BillingAccountId},

    [Parameter(ParameterSetName='Get1', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Period Name.
    ${BillingPeriodName},

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Get = 'Az.Billing.private\Get-AzBalance_Get';
            Get1 = 'Az.Billing.private\Get-AzBalance_Get1';
            GetViaIdentity = 'Az.Billing.private\Get-AzBalance_GetViaIdentity';
            GetViaIdentity1 = 'Az.Billing.private\Get-AzBalance_GetViaIdentity1';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get the billing account by id.
.Description
Get the billing account by id.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azbillingaccount
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingAccount1
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azbillingaccount
#>

function Get-AzBillingAccount {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingAccount1])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Alias('BillingAccountName')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${Name},

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Query')]
    [System.String]
    # May be used to expand the invoiceSections and billingProfiles.
    ${Expand},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Get = 'Az.Billing.private\Get-AzBillingAccount_Get';
            GetViaIdentity = 'Az.Billing.private\Get-AzBillingAccount_GetViaIdentity';
            List = 'Az.Billing.private\Get-AzBillingAccount_List';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Lists all billing permissions for the caller under a billing account.
.Description
Lists all billing permissions for the caller under a billing account.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azbillingpermission
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingPermissionsProperties
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azbillingpermission
#>

function Get-AzBillingPermission {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingPermissionsProperties])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountName},

    [Parameter(ParameterSetName='List1', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Customer Id.
    ${CustomerName},

    [Parameter(ParameterSetName='List2', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # InvoiceSection Id.
    ${InvoiceSectionName},

    [Parameter(ParameterSetName='List3', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Profile Id.
    ${BillingProfileName},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            List = 'Az.Billing.private\Get-AzBillingPermission_List';
            List1 = 'Az.Billing.private\Get-AzBillingPermission_List1';
            List2 = 'Az.Billing.private\Get-AzBillingPermission_List2';
            List3 = 'Az.Billing.private\Get-AzBillingPermission_List3';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
The policy for a given billing account name and billing profile name.
.Description
The policy for a given billing account name and billing profile name.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azbillingpolicy
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IPolicy
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azbillingpolicy
#>

function Get-AzBillingPolicy {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IPolicy])]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountName},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Profile Id.
    ${BillingProfileName},

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Get = 'Az.Billing.private\Get-AzBillingPolicy_Get';
            GetViaIdentity = 'Az.Billing.private\Get-AzBillingPolicy_GetViaIdentity';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get a single product by name.
.Description
Get a single product by name.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azbillingproduct
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IProductSummary
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azbillingproduct
#>

function Get-AzBillingProduct {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IProductSummary])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Parameter(ParameterSetName='List1', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountName},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List1', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # InvoiceSection Id.
    ${InvoiceSectionName},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Alias('ProductName')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Invoice Id.
    ${Name},

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='List')]
    [Parameter(ParameterSetName='List1')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Query')]
    [System.String]
    # May be used to filter by product type.
    # The filter supports 'eq', 'lt', 'gt', 'le', 'ge', and 'and'.
    # It does not currently support 'ne', 'or', or 'not'.
    # Tag filter is a key value pair string where key and value is separated by a colon (:).
    ${Filter},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Get = 'Az.Billing.private\Get-AzBillingProduct_Get';
            GetViaIdentity = 'Az.Billing.private\Get-AzBillingProduct_GetViaIdentity';
            List = 'Az.Billing.private\Get-AzBillingProduct_List';
            List1 = 'Az.Billing.private\Get-AzBillingProduct_List1';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get the billing profile by id.
.Description
Get the billing profile by id.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azbillingprofile
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingProfile1
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azbillingprofile
#>

function Get-AzBillingProfile {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingProfile1])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountName},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Alias('BillingProfileName')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Profile Id.
    ${Name},

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Query')]
    [System.String]
    # May be used to expand the invoiceSections.
    ${Expand},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Get = 'Az.Billing.private\Get-AzBillingProfile_Get';
            GetViaIdentity = 'Az.Billing.private\Get-AzBillingProfile_GetViaIdentity';
            List = 'Az.Billing.private\Get-AzBillingProfile_List';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get billing property by subscription Id.
.Description
Get billing property by subscription Id.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azbillingproperty
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingProperty
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azbillingproperty
#>

function Get-AzBillingProperty {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingProperty])]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Get')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String[]]
    # Azure Subscription ID.
    ${SubscriptionId},

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Get = 'Az.Billing.private\Get-AzBillingProperty_Get';
            GetViaIdentity = 'Az.Billing.private\Get-AzBillingProperty_GetViaIdentity';
        }
        if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get the role assignment for the caller
.Description
Get the role assignment for the caller
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azbillingroleassignment
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingRoleAssignment
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azbillingroleassignment
#>

function Get-AzBillingRoleAssignment {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingRoleAssignment])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='Get1', Mandatory)]
    [Parameter(ParameterSetName='Get2', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Parameter(ParameterSetName='List1', Mandatory)]
    [Parameter(ParameterSetName='List2', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountName},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='Get1', Mandatory)]
    [Parameter(ParameterSetName='Get2', Mandatory)]
    [Alias('BillingRoleAssignmentName')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # role assignment id.
    ${Name},

    [Parameter(ParameterSetName='Get1', Mandatory)]
    [Parameter(ParameterSetName='List1', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # InvoiceSection Id.
    ${InvoiceSectionName},

    [Parameter(ParameterSetName='Get2', Mandatory)]
    [Parameter(ParameterSetName='List2', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Profile Id.
    ${BillingProfileName},

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='GetViaIdentity2', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Get = 'Az.Billing.private\Get-AzBillingRoleAssignment_Get';
            Get1 = 'Az.Billing.private\Get-AzBillingRoleAssignment_Get1';
            Get2 = 'Az.Billing.private\Get-AzBillingRoleAssignment_Get2';
            GetViaIdentity = 'Az.Billing.private\Get-AzBillingRoleAssignment_GetViaIdentity';
            GetViaIdentity1 = 'Az.Billing.private\Get-AzBillingRoleAssignment_GetViaIdentity1';
            GetViaIdentity2 = 'Az.Billing.private\Get-AzBillingRoleAssignment_GetViaIdentity2';
            List = 'Az.Billing.private\Get-AzBillingRoleAssignment_List';
            List1 = 'Az.Billing.private\Get-AzBillingRoleAssignment_List1';
            List2 = 'Az.Billing.private\Get-AzBillingRoleAssignment_List2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Gets the role definition for a role
.Description
Gets the role definition for a role
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azbillingroledefinition
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingRoleDefinition
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azbillingroledefinition
#>

function Get-AzBillingRoleDefinition {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingRoleDefinition])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='Get1', Mandatory)]
    [Parameter(ParameterSetName='Get2', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Parameter(ParameterSetName='List1', Mandatory)]
    [Parameter(ParameterSetName='List2', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountName},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='Get1', Mandatory)]
    [Parameter(ParameterSetName='Get2', Mandatory)]
    [Alias('BillingRoleDefinitionName')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # role definition id.
    ${Name},

    [Parameter(ParameterSetName='Get1', Mandatory)]
    [Parameter(ParameterSetName='List1', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # InvoiceSection Id.
    ${InvoiceSectionName},

    [Parameter(ParameterSetName='Get2', Mandatory)]
    [Parameter(ParameterSetName='List2', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Profile Id.
    ${BillingProfileName},

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='GetViaIdentity2', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Get = 'Az.Billing.private\Get-AzBillingRoleDefinition_Get';
            Get1 = 'Az.Billing.private\Get-AzBillingRoleDefinition_Get1';
            Get2 = 'Az.Billing.private\Get-AzBillingRoleDefinition_Get2';
            GetViaIdentity = 'Az.Billing.private\Get-AzBillingRoleDefinition_GetViaIdentity';
            GetViaIdentity1 = 'Az.Billing.private\Get-AzBillingRoleDefinition_GetViaIdentity1';
            GetViaIdentity2 = 'Az.Billing.private\Get-AzBillingRoleDefinition_GetViaIdentity2';
            List = 'Az.Billing.private\Get-AzBillingRoleDefinition_List';
            List1 = 'Az.Billing.private\Get-AzBillingRoleDefinition_List1';
            List2 = 'Az.Billing.private\Get-AzBillingRoleDefinition_List2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get a single billing subscription by name.
.Description
Get a single billing subscription by name.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azbillingsubscription
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingSubscriptionSummary
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azbillingsubscription
#>

function Get-AzBillingSubscription {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingSubscriptionSummary])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='Get1', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Parameter(ParameterSetName='List1', Mandatory)]
    [Parameter(ParameterSetName='List2', Mandatory)]
    [Parameter(ParameterSetName='List3', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountName},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List2', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Customer Id.
    ${CustomerName},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='Get1', Mandatory)]
    [Alias('BillingSubscriptionName')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Subscription Id.
    ${Name},

    [Parameter(ParameterSetName='Get1', Mandatory)]
    [Parameter(ParameterSetName='List3', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # InvoiceSection Id.
    ${InvoiceSectionName},

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='GetViaIdentity1', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='List1', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Profile Id.
    ${BillingProfileName},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Get = 'Az.Billing.private\Get-AzBillingSubscription_Get';
            Get1 = 'Az.Billing.private\Get-AzBillingSubscription_Get1';
            GetViaIdentity = 'Az.Billing.private\Get-AzBillingSubscription_GetViaIdentity';
            GetViaIdentity1 = 'Az.Billing.private\Get-AzBillingSubscription_GetViaIdentity1';
            List = 'Az.Billing.private\Get-AzBillingSubscription_List';
            List1 = 'Az.Billing.private\Get-AzBillingSubscription_List1';
            List2 = 'Az.Billing.private\Get-AzBillingSubscription_List2';
            List3 = 'Az.Billing.private\Get-AzBillingSubscription_List3';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Lists the charges by billingAccountId for given start and end date.
Start and end date are used to determine the billing period.
For current month, the data will be provided from month to date.
If there are no charges for a month then that month will show all zeroes.
.Description
Lists the charges by billingAccountId for given start and end date.
Start and end date are used to determine the billing period.
For current month, the data will be provided from month to date.
If there are no charges for a month then that month will show all zeroes.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azchargesbybillingaccount
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IChargeSummaryByBillingAccount
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azchargesbybillingaccount
#>

function Get-AzChargesByBillingAccount {
[Alias('Get-AzConsumptionChargesByBillingAccount')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IChargeSummaryByBillingAccount])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # BillingAccount ID
    ${BillingAccountId},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Query')]
    [System.String]
    # End date
    ${EndDate},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Query')]
    [System.String]
    # Start date
    ${StartDate},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Query')]
    [System.String]
    # May be used to group charges by properties/billingProfileId, or properties/invoiceSectionId.
    ${Apply},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            List = 'Az.Billing.private\Get-AzChargesByBillingAccount_List';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Lists the charges by billing profile id for given start and end date.
Start and end date are used to determine the billing period.
For current month, the data will be provided from month to date.
If there are no charges for a month then that month will show all zeroes.
.Description
Lists the charges by billing profile id for given start and end date.
Start and end date are used to determine the billing period.
For current month, the data will be provided from month to date.
If there are no charges for a month then that month will show all zeroes.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azchargesbybillingprofile
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IChargeSummaryByBillingProfile
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azchargesbybillingprofile
#>

function Get-AzChargesByBillingProfile {
[Alias('Get-AzConsumptionChargesByBillingProfile')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IChargeSummaryByBillingProfile])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # BillingAccount ID
    ${BillingAccountId},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Profile Id.
    ${BillingProfileId},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Query')]
    [System.String]
    # End date
    ${EndDate},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Query')]
    [System.String]
    # Start date
    ${StartDate},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            List = 'Az.Billing.private\Get-AzChargesByBillingProfile_List';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Lists the charges by invoice section id for given start and end date.
Start and end date are used to determine the billing period.
For current month, the data will be provided from month to date.
If there are no charges for a month then that month will show all zeroes.
.Description
Lists the charges by invoice section id for given start and end date.
Start and end date are used to determine the billing period.
For current month, the data will be provided from month to date.
If there are no charges for a month then that month will show all zeroes.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azchargesbyinvoicesection
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IChargeSummaryByInvoiceSection
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azchargesbyinvoicesection
#>

function Get-AzChargesByInvoiceSection {
[Alias('Get-AzBillingChargesByInvoiceSection', 'Get-AzConsumptionChargesByInvoiceSection')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IChargeSummaryByInvoiceSection])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # BillingAccount ID
    ${BillingAccountId},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Invoice Section Id.
    ${InvoiceSectionId},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Query')]
    [System.String]
    # End date
    ${EndDate},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Query')]
    [System.String]
    # Start date
    ${StartDate},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Query')]
    [System.String]
    # May be used to group charges by properties/productName.
    ${Apply},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            List = 'Az.Billing.private\Get-AzChargesByInvoiceSection_List';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Lists the charges based for the defined scope.
.Description
Lists the charges based for the defined scope.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azcharge
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181001.IChargeSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azcharge
#>

function Get-AzCharge {
[Alias('Get-AzConsumptionCharge')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181001.IChargeSummary])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # The scope associated with usage details operations.
    # This includes '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for Department scope and '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope.
    # For department and enrollment accounts, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'.
    # For e.g.
    # to specify billing period at department scope use '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
    ${Scope},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Query')]
    [System.String]
    # May be used to filter charges by properties/usageEnd (Utc time), properties/usageStart (Utc time).
    # The filter supports 'eq', 'lt', 'gt', 'le', 'ge', and 'and'.
    # It does not currently support 'ne', 'or', or 'not'.
    # Tag filter is a key value pair string where key and value is separated by a colon (:).
    ${Filter},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            List = 'Az.Billing.private\Get-AzCharge_List';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get cost tags for a billing account.
.Description
Get cost tags for a billing account.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azconsumptioncosttag
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20180630.ICostTag
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azconsumptioncosttag
#>

function Get-AzConsumptionCostTag {
[Alias('Get-AzConsumptionCostTag')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20180630.ICostTag])]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # BillingAccount ID
    ${BillingAccountId},

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Get = 'Az.Billing.private\Get-AzConsumptionCostTag_Get';
            GetViaIdentity = 'Az.Billing.private\Get-AzConsumptionCostTag_GetViaIdentity';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get all available tag keys for the defined scope
.Description
Get all available tag keys for the defined scope
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azconsumptiontag
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20180630.ITagsResult
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azconsumptiontag
#>

function Get-AzConsumptionTag {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20180630.ITagsResult])]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # The scope associated with tags operations.
    # This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope..
    ${Scope},

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Get = 'Az.Billing.private\Get-AzConsumptionTag_Get';
            GetViaIdentity = 'Az.Billing.private\Get-AzConsumptionTag_GetViaIdentity';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Gets a Tenant Properties.
.Description
Gets a Tenant Properties.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azconsumptiontenant
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181001.ITenantListResult
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azconsumptiontenant
#>

function Get-AzConsumptionTenant {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181001.ITenantListResult])]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountId},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Profile Id.
    ${BillingProfileId},

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Get = 'Az.Billing.private\Get-AzConsumptionTenant_Get';
            GetViaIdentity = 'Az.Billing.private\Get-AzConsumptionTenant_GetViaIdentity';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
The credit summary by billingAccountId and billingProfileId for given start and end date.
.Description
The credit summary by billingAccountId and billingProfileId for given start and end date.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azcreditsummary
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ICreditSummary
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azcreditsummary
#>

function Get-AzCreditSummary {
[Alias('Get-AzConsumptionCreditSummary')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ICreditSummary])]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # BillingAccount ID
    ${BillingAccountId},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Profile Id.
    ${BillingProfileId},

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Get = 'Az.Billing.private\Get-AzCreditSummary_Get';
            GetViaIdentity = 'Az.Billing.private\Get-AzCreditSummary_GetViaIdentity';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get the customer by id.
.Description
Get the customer by id.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azcustomer
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ICustomer
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azcustomer
#>

function Get-AzCustomer {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ICustomer])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountName},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Alias('CustomerName')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Customer Id.
    ${Name},

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Get')]
    [Parameter(ParameterSetName='GetViaIdentity')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Query')]
    [System.String]
    # May be used to expand enabledAzureSkus, resellers.
    ${Expand},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Query')]
    [System.String]
    # May be used to filter using hasPermission('{permissionId}') to only return customers for which the caller has the specified permission.
    ${Filter},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Query')]
    [System.String]
    # Skiptoken is only used if a previous operation returned a partial result.
    # If a previous response contains a nextLink element, the value of the nextLink element will include a skiptoken parameter that specifies a starting point to use for subsequent calls.
    ${Skiptoken},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Get = 'Az.Billing.private\Get-AzCustomer_Get';
            GetViaIdentity = 'Az.Billing.private\Get-AzCustomer_GetViaIdentity';
            List = 'Az.Billing.private\Get-AzCustomer_List';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get the department by id.
.Description
Get the department by id.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azdepartment
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IDepartment1
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azdepartment
#>

function Get-AzDepartment {
[Alias('Get-AzBillingDepartment')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IDepartment1])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountName},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Alias('DepartmentName')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Department Id.
    ${Name},

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Query')]
    [System.String]
    # May be used to expand the enrollmentAccounts.
    ${Expand},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Query')]
    [System.String]
    # The filter supports 'eq', 'lt', 'gt', 'le', 'ge', and 'and'.
    # It does not currently support 'ne', 'or', or 'not'.
    # Tag filter is a key value pair string where key and value is separated by a colon (:).
    ${Filter},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Get = 'Az.Billing.private\Get-AzDepartment_Get';
            GetViaIdentity = 'Az.Billing.private\Get-AzDepartment_GetViaIdentity';
            List = 'Az.Billing.private\Get-AzDepartment_List';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Lists the events by billingAccountId and billingProfileId for given start and end date.
.Description
Lists the events by billingAccountId and billingProfileId for given start and end date.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azeventsbybillingprofile
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IEventSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azeventsbybillingprofile
#>

function Get-AzEventsByBillingProfile {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IEventSummary])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # BillingAccount ID
    ${BillingAccountId},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Profile Id.
    ${BillingProfileId},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Query')]
    [System.String]
    # End date
    ${EndDate},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Query')]
    [System.String]
    # Start date
    ${StartDate},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            List = 'Az.Billing.private\Get-AzEventsByBillingProfile_List';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Lists the forecast charges by subscriptionId.
.Description
Lists the forecast charges by subscriptionId.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azforecast
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181001.IForecast
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azforecast
#>

function Get-AzForecast {
[Alias('Get-AzConsumptionForecast')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181001.IForecast])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String[]]
    # Azure Subscription ID.
    ${SubscriptionId},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Query')]
    [System.String]
    # May be used to filter forecasts by properties/usageDate (Utc time), properties/chargeType or properties/grain.
    # The filter supports 'eq', 'lt', 'gt', 'le', 'ge', and 'and'.
    # It does not currently support 'ne', 'or', or 'not'.
    ${Filter},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            List = 'Az.Billing.private\Get-AzForecast_List';
        }
        if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Gets the most recent invoice.
When getting a single invoice, the downloadUrl property is expanded automatically.
This is only supported for Azure Web-Direct subscriptions.
Other subscription types which were not purchased directly through the Azure web portal are not supported through this preview API.
.Description
Gets the most recent invoice.
When getting a single invoice, the downloadUrl property is expanded automatically.
This is only supported for Azure Web-Direct subscriptions.
Other subscription types which were not purchased directly through the Azure web portal are not supported through this preview API.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azinvoicelatest
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20180301Preview.IInvoice
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azinvoicelatest
#>

function Get-AzInvoiceLatest {
[Alias('Get-AzBillingInvoiceLatest')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20180301Preview.IInvoice])]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Get')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String[]]
    # Azure Subscription ID.
    ${SubscriptionId},

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Get = 'Az.Billing.private\Get-AzInvoiceLatest_Get';
            GetViaIdentity = 'Az.Billing.private\Get-AzInvoiceLatest_GetViaIdentity';
        }
        if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get the InvoiceSection by id.
.Description
Get the InvoiceSection by id.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azinvoicesection
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IInvoiceSection1
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IInvoiceSectionListResult
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azinvoicesection
#>

function Get-AzInvoiceSection {
[Alias('Get-AzBillingInvoiceSection')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IInvoiceSection1], [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IInvoiceSectionListResult])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Parameter(ParameterSetName='List1', Mandatory)]
    [Parameter(ParameterSetName='List2', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountName},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Alias('InvoiceSectionName')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # InvoiceSection Id.
    ${Name},

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='List1', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Profile Id.
    ${BillingProfileName},

    [Parameter(ParameterSetName='Get')]
    [Parameter(ParameterSetName='GetViaIdentity')]
    [Parameter(ParameterSetName='List')]
    [Parameter(ParameterSetName='List2')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Query')]
    [System.String]
    # May be used to expand the billingProfiles.
    ${Expand},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Get = 'Az.Billing.private\Get-AzInvoiceSection_Get';
            GetViaIdentity = 'Az.Billing.private\Get-AzInvoiceSection_GetViaIdentity';
            List = 'Az.Billing.private\Get-AzInvoiceSection_List';
            List1 = 'Az.Billing.private\Get-AzInvoiceSection_List1';
            List2 = 'Az.Billing.private\Get-AzInvoiceSection_List2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get the current line of credit.
.Description
Get the current line of credit.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azlineofcredit
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ILineOfCredit
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azlineofcredit
#>

function Get-AzLineOfCredit {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ILineOfCredit])]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Get')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String[]]
    # Azure Subscription ID.
    ${SubscriptionId},

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Get = 'Az.Billing.private\Get-AzLineOfCredit_Get';
            GetViaIdentity = 'Az.Billing.private\Get-AzLineOfCredit_GetViaIdentity';
        }
        if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Lists the lots by billingAccountId and billingProfileId for given start and end date.
.Description
Lists the lots by billingAccountId and billingProfileId for given start and end date.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azlotsbybillingprofile
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ILotSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azlotsbybillingprofile
#>

function Get-AzLotsByBillingProfile {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ILotSummary])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # BillingAccount ID
    ${BillingAccountId},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Profile Id.
    ${BillingProfileId},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            List = 'Az.Billing.private\Get-AzLotsByBillingProfile_List';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Lists all of the available consumption REST API operations.
.Description
Lists all of the available consumption REST API operations.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azoperation
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IOperation
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azoperation
#>

function Get-AzOperation {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IOperation])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            List = 'Az.Billing.private\Get-AzOperation_List';
            List1 = 'Az.Billing.private\Get-AzOperation_List1';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Lists the Payment Methods by billing account Id.
.Description
Lists the Payment Methods by billing account Id.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azpaymentmethod
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IPaymentMethod
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azpaymentmethod
#>

function Get-AzPaymentMethod {
[Alias('Get-AzBillingPaymentMethod')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IPaymentMethod])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountName},

    [Parameter(ParameterSetName='List1', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Profile Id.
    ${BillingProfileName},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            List = 'Az.Billing.private\Get-AzPaymentMethod_List';
            List1 = 'Az.Billing.private\Get-AzPaymentMethod_List1';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Enables you to query for the resource/meter metadata and related prices used in a given subscription by Offer ID, Currency, Locale and Region.
The metadata associated with the billing meters, including but not limited to service names, types, resources, units of measure, and regions, is subject to change at any time and without notice.
If you intend to use this billing data in an automated fashion, please use the billing meter GUID to uniquely identify each billable item.
If the billing meter GUID is scheduled to change due to a new billing model, you will be notified in advance of the change.
.Description
Enables you to query for the resource/meter metadata and related prices used in a given subscription by Offer ID, Currency, Locale and Region.
The metadata associated with the billing meters, including but not limited to service names, types, resources, units of measure, and regions, is subject to change at any time and without notice.
If you intend to use this billing data in an automated fashion, please use the billing meter GUID to uniquely identify each billable item.
If the billing meter GUID is scheduled to change due to a new billing model, you will be notified in advance of the change.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azratecard
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20150601Preview.IResourceRateCardInfo
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azratecard
#>

function Get-AzRateCard {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20150601Preview.IResourceRateCardInfo])]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Get')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String[]]
    # It uniquely identifies Microsoft Azure subscription.
    # The subscription ID forms part of the URI for every service call.
    ${SubscriptionId},

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Query')]
    [System.String]
    # The filter to apply on the operation.
    # It ONLY supports the 'eq' and 'and' logical operators at this time.
    # All the 4 query parameters 'OfferDurableId', 'Currency', 'Locale', 'Region' are required to be a part of the $filter.
    ${Filter},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Get = 'Az.Billing.private\Get-AzRateCard_Get';
            GetViaIdentity = 'Az.Billing.private\Get-AzRateCard_GetViaIdentity';
        }
        if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Gets the transfer with given transfer Id.
.Description
Gets the transfer with given transfer Id.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azrecipienttransfer
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IRecipientTransferDetails
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IRecipientTransferProperties
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azrecipienttransfer
#>

function Get-AzRecipientTransfer {
[Alias('Get-AzBillingRecipientTransfer')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IRecipientTransferProperties], [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IRecipientTransferDetails])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Transfer Name.
    ${TransferName},

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Get = 'Az.Billing.private\Get-AzRecipientTransfer_Get';
            GetViaIdentity = 'Az.Billing.private\Get-AzRecipientTransfer_GetViaIdentity';
            List = 'Az.Billing.private\Get-AzRecipientTransfer_List';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
List of recommendations for purchasing reserved instances.
.Description
List of recommendations for purchasing reserved instances.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azreservationrecommendation
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181001.IReservationRecommendation
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-azreservationrecommendation
#>

function Get-AzReservationRecommendation {
[Alias('Get-AzConsumptionReservationRecommendation')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181001.IReservationRecommendation])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String[]]
    # Azure Subscription ID.
    ${SubscriptionId},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Query')]
    [System.String]
    # May be used to filter reservationRecommendations by properties/scope and properties/lookBackPeriod.
    ${Filter},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            List = 'Az.Billing.private\Get-AzReservationRecommendation_List';
        }
        if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Lists the transactions by billing account name for given start and end date.
.Description
Lists the transactions by billing account name for given start and end date.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-aztransaction
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ITransactionsSummary
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-aztransaction
#>

function Get-AzTransaction {
[Alias('Get-AzBillingTransaction')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ITransactionsSummary])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountName},

    [Parameter(ParameterSetName='List1', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Profile Id.
    ${BillingProfileName},

    [Parameter(ParameterSetName='List2', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Customer Id.
    ${CustomerName},

    [Parameter(ParameterSetName='List3', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # InvoiceSection Id.
    ${InvoiceSectionName},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Query')]
    [System.String]
    # End date
    ${EndDate},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Query')]
    [System.String]
    # Start date
    ${StartDate},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Query')]
    [System.String]
    # May be used to filter by transaction kind.
    # The filter supports 'eq', 'lt', 'gt', 'le', 'ge', and 'and'.
    # It does not currently support 'ne', 'or', or 'not'.
    # Tag filter is a key value pair string where key and value is separated by a colon (:).
    ${Filter},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            List = 'Az.Billing.private\Get-AzTransaction_List';
            List1 = 'Az.Billing.private\Get-AzTransaction_List1';
            List2 = 'Az.Billing.private\Get-AzTransaction_List2';
            List3 = 'Az.Billing.private\Get-AzTransaction_List3';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Gets the transfer details for given transfer Id.
.Description
Gets the transfer details for given transfer Id.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/get-aztransfer
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ITransferDetails
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ITransferProperties
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/get-aztransfer
#>

function Get-AzTransfer {
[Alias('Get-AzBillingTransfer')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ITransferProperties], [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ITransferDetails])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountName},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # InvoiceSection Id.
    ${InvoiceSectionName},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Alias('TransferName')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Transfer Name.
    ${Name},

    [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Get = 'Az.Billing.private\Get-AzTransfer_Get';
            GetViaIdentity = 'Az.Billing.private\Get-AzTransfer_GetViaIdentity';
            List = 'Az.Billing.private\Get-AzTransfer_List';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Accepts the transfer with given transfer Id.
.Description
Accepts the transfer with given transfer Id.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/invoke-azacceptrecipienttransfer
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IAcceptTransferRequest
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IRecipientTransferProperties
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
BODY <IAcceptTransferRequest>: Request parameters to accept transfer.
  [ProductDetail <IProductDetails[]>]: Request parameters to accept transfer.
    [ProductId <String>]: Id of product to be transferred.
    [ProductType <ProductType?>]: Type of the product to be transferred.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
 
PRODUCTDETAIL <IProductDetails[]>: Request parameters to accept transfer.
  [ProductId <String>]: Id of product to be transferred.
  [ProductType <ProductType?>]: Type of the product to be transferred.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/invoke-azacceptrecipienttransfer
#>

function Invoke-AzAcceptRecipientTransfer {
[Alias('Invoke-AzBillingAcceptRecipientTransfer')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IRecipientTransferProperties])]
[CmdletBinding(DefaultParameterSetName='AcceptExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Accept', Mandatory)]
    [Parameter(ParameterSetName='AcceptExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Transfer Name.
    ${TransferName},

    [Parameter(ParameterSetName='AcceptViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='AcceptViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Accept', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='AcceptViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IAcceptTransferRequest]
    # Request parameters to accept transfer.
    # To construct, see NOTES section for BODY properties and create a hash table.
    ${Body},

    [Parameter(ParameterSetName='AcceptExpanded')]
    [Parameter(ParameterSetName='AcceptViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IProductDetails[]]
    # Request parameters to accept transfer.
    # To construct, see NOTES section for PRODUCTDETAIL properties and create a hash table.
    ${ProductDetail},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Accept = 'Az.Billing.private\Invoke-AzAcceptRecipientTransfer_Accept';
            AcceptExpanded = 'Az.Billing.private\Invoke-AzAcceptRecipientTransfer_AcceptExpanded';
            AcceptViaIdentity = 'Az.Billing.private\Invoke-AzAcceptRecipientTransfer_AcceptViaIdentity';
            AcceptViaIdentityExpanded = 'Az.Billing.private\Invoke-AzAcceptRecipientTransfer_AcceptViaIdentityExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Declines the transfer with given transfer Id.
.Description
Declines the transfer with given transfer Id.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/invoke-azdeclinerecipienttransfer
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IRecipientTransferProperties
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/invoke-azdeclinerecipienttransfer
#>

function Invoke-AzDeclineRecipientTransfer {
[Alias('Invoke-AzBillingDeclineRecipientTransfer')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IRecipientTransferProperties])]
[CmdletBinding(DefaultParameterSetName='Decline', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Decline', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Transfer Name.
    ${TransferName},

    [Parameter(ParameterSetName='DeclineViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Decline = 'Az.Billing.private\Invoke-AzDeclineRecipientTransfer_Decline';
            DeclineViaIdentity = 'Az.Billing.private\Invoke-AzDeclineRecipientTransfer_DeclineViaIdentity';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get pricesheet data for invoice id (invoiceName).
.Description
Get pricesheet data for invoice id (invoiceName).
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/invoke-azdownloadbillingprofilepricesheet
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IPricesheetDownloadResponse
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/invoke-azdownloadbillingprofilepricesheet
#>

function Invoke-AzDownloadBillingProfilePricesheet {
[Alias('Invoke-AzConsumptionDownloadBillingProfilePricesheet')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IPricesheetDownloadResponse])]
[CmdletBinding(DefaultParameterSetName='Download', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Download', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Azure Billing Account Id.
    ${BillingAccountId},

    [Parameter(ParameterSetName='Download', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Azure Billing Profile Id.
    ${BillingProfileId},

    [Parameter(ParameterSetName='DownloadViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Run the command as a job
    ${AsJob},

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

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

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

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Run the command asynchronously
    ${NoWait},

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Download = 'Az.Billing.private\Invoke-AzDownloadBillingProfilePricesheet_Download';
            DownloadViaIdentity = 'Az.Billing.private\Invoke-AzDownloadBillingProfilePricesheet_DownloadViaIdentity';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Get pricesheet data for invoice id (invoiceName).
.Description
Get pricesheet data for invoice id (invoiceName).
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/invoke-azdownloadinvoicepricesheet
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IPricesheetDownloadResponse
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/invoke-azdownloadinvoicepricesheet
#>

function Invoke-AzDownloadInvoicePricesheet {
[Alias('Invoke-AzBillingDownloadInvoicePricesheet', 'Invoke-AzConsumptionDownloadInvoicePricesheet')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IPricesheetDownloadResponse])]
[CmdletBinding(DefaultParameterSetName='Download', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Download', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Azure Billing Account Id.
    ${BillingAccountId},

    [Parameter(ParameterSetName='Download', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # The name of an invoice resource.
    ${InvoiceName},

    [Parameter(ParameterSetName='DownloadViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Run the command as a job
    ${AsJob},

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

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

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

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Run the command asynchronously
    ${NoWait},

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Download = 'Az.Billing.private\Invoke-AzDownloadInvoicePricesheet_Download';
            DownloadViaIdentity = 'Az.Billing.private\Invoke-AzDownloadInvoicePricesheet_DownloadViaIdentity';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Download price sheet for an invoice.
.Description
Download price sheet for an invoice.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/invoke-azdownloadpricesheet
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20180301Preview.IDownloadUrl
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/invoke-azdownloadpricesheet
#>

function Invoke-AzDownloadPriceSheet {
[Alias('Invoke-AzConsumptionDownloadPriceSheet')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20180301Preview.IDownloadUrl])]
[CmdletBinding(DefaultParameterSetName='Download', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Download', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Azure Billing Account ID.
    ${BillingAccountName},

    [Parameter(ParameterSetName='Download', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # The name of an invoice resource.
    ${InvoiceName},

    [Parameter(ParameterSetName='DownloadViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Run the command as a job
    ${AsJob},

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

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

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

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Run the command asynchronously
    ${NoWait},

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Download = 'Az.Billing.private\Invoke-AzDownloadPriceSheet_Download';
            DownloadViaIdentity = 'Az.Billing.private\Invoke-AzDownloadPriceSheet_DownloadViaIdentity';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Elevates the caller's access to match their billing profile access.
.Description
Elevates the caller's access to match their billing profile access.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/invoke-azelevateinvoicesectiontobillingprofile
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
System.Boolean
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/invoke-azelevateinvoicesectiontobillingprofile
#>

function Invoke-AzElevateInvoiceSectionToBillingProfile {
[Alias('Invoke-AzBillingElevateInvoiceSectionToBillingProfile')]
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Elevate', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Elevate', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountName},

    [Parameter(ParameterSetName='Elevate', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # InvoiceSection Id.
    ${InvoiceSectionName},

    [Parameter(ParameterSetName='ElevateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Elevate = 'Az.Billing.private\Invoke-AzElevateInvoiceSectionToBillingProfile_Elevate';
            ElevateViaIdentity = 'Az.Billing.private\Invoke-AzElevateInvoiceSectionToBillingProfile_ElevateViaIdentity';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Initiates the request to transfer the legacy subscriptions or RIs.
.Description
Initiates the request to transfer the legacy subscriptions or RIs.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/invoke-azinitiatetransfer
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IInitiateTransferRequest
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ITransferProperties
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
BODY <IInitiateTransferRequest>: Request parameters to initiate transfer.
  [BillingProfileId <String>]: Target Usage context for devTest subscriptions.
  [RecipientEmailId <String>]: Email Id of recipient for transfer.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/invoke-azinitiatetransfer
#>

function Invoke-AzInitiateTransfer {
[Alias('Invoke-AzBillingInitiateTransfer')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ITransferProperties])]
[CmdletBinding(DefaultParameterSetName='InitiateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Initiate', Mandatory)]
    [Parameter(ParameterSetName='InitiateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountName},

    [Parameter(ParameterSetName='Initiate', Mandatory)]
    [Parameter(ParameterSetName='InitiateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # InvoiceSection Id.
    ${InvoiceSectionName},

    [Parameter(ParameterSetName='InitiateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='InitiateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Initiate', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='InitiateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IInitiateTransferRequest]
    # Request parameters to initiate transfer.
    # To construct, see NOTES section for BODY properties and create a hash table.
    ${Body},

    [Parameter(ParameterSetName='InitiateExpanded')]
    [Parameter(ParameterSetName='InitiateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Target Usage context for devTest subscriptions.
    ${BillingProfileId},

    [Parameter(ParameterSetName='InitiateExpanded')]
    [Parameter(ParameterSetName='InitiateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Email Id of recipient for transfer.
    ${RecipientEmailId},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Initiate = 'Az.Billing.private\Invoke-AzInitiateTransfer_Initiate';
            InitiateExpanded = 'Az.Billing.private\Invoke-AzInitiateTransfer_InitiateExpanded';
            InitiateViaIdentity = 'Az.Billing.private\Invoke-AzInitiateTransfer_InitiateViaIdentity';
            InitiateViaIdentityExpanded = 'Az.Billing.private\Invoke-AzInitiateTransfer_InitiateViaIdentityExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
The operation to transfer a Product to another invoice section.
.Description
The operation to transfer a Product to another invoice section.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/move-azbillingproduct
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ITransferProductRequestProperties
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IProductSummary
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
 
PARAMETER <ITransferProductRequestProperties>: The properties of the product to initiate a transfer.
  [DestinationBillingProfileId <String>]: The destination billing profile id.
  [DestinationInvoiceSectionId <String>]: The destination invoice section id.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/move-azbillingproduct
#>

function Move-AzBillingProduct {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IProductSummary])]
[CmdletBinding(DefaultParameterSetName='TransferExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Transfer', Mandatory)]
    [Parameter(ParameterSetName='TransferExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountName},

    [Parameter(ParameterSetName='Transfer', Mandatory)]
    [Parameter(ParameterSetName='TransferExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # InvoiceSection Id.
    ${InvoiceSectionName},

    [Parameter(ParameterSetName='Transfer', Mandatory)]
    [Parameter(ParameterSetName='TransferExpanded', Mandatory)]
    [Alias('ProductName')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Invoice Id.
    ${Name},

    [Parameter(ParameterSetName='TransferViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='TransferViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Transfer', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='TransferViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ITransferProductRequestProperties]
    # The properties of the product to initiate a transfer.
    # To construct, see NOTES section for PARAMETER properties and create a hash table.
    ${Parameter},

    [Parameter(ParameterSetName='TransferExpanded')]
    [Parameter(ParameterSetName='TransferViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # The destination billing profile id.
    ${DestinationBillingProfileId},

    [Parameter(ParameterSetName='TransferExpanded')]
    [Parameter(ParameterSetName='TransferViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # The destination invoice section id.
    ${DestinationInvoiceSectionId},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Transfer = 'Az.Billing.private\Move-AzBillingProduct_Transfer';
            TransferExpanded = 'Az.Billing.private\Move-AzBillingProduct_TransferExpanded';
            TransferViaIdentity = 'Az.Billing.private\Move-AzBillingProduct_TransferViaIdentity';
            TransferViaIdentityExpanded = 'Az.Billing.private\Move-AzBillingProduct_TransferViaIdentityExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Transfers the subscription from one invoice section to another within a billing account.
.Description
Transfers the subscription from one invoice section to another within a billing account.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/move-azbillingsubscription
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ITransferBillingSubscriptionRequestProperties
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ITransferBillingSubscriptionResultProperties
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
 
PARAMETER <ITransferBillingSubscriptionRequestProperties>: Request parameters to transfer billing subscription.
  [DestinationBillingProfileId <String>]: The destination billing profile id.
  [DestinationInvoiceSectionId <String>]: The destination invoice section id.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/move-azbillingsubscription
#>

function Move-AzBillingSubscription {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ITransferBillingSubscriptionResultProperties])]
[CmdletBinding(DefaultParameterSetName='TransferExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Transfer', Mandatory)]
    [Parameter(ParameterSetName='TransferExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountName},

    [Parameter(ParameterSetName='Transfer', Mandatory)]
    [Parameter(ParameterSetName='TransferExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # InvoiceSection Id.
    ${InvoiceSectionName},

    [Parameter(ParameterSetName='Transfer', Mandatory)]
    [Parameter(ParameterSetName='TransferExpanded', Mandatory)]
    [Alias('BillingSubscriptionName')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Subscription Id.
    ${Name},

    [Parameter(ParameterSetName='TransferViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='TransferViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Transfer', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='TransferViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ITransferBillingSubscriptionRequestProperties]
    # Request parameters to transfer billing subscription.
    # To construct, see NOTES section for PARAMETER properties and create a hash table.
    ${Parameter},

    [Parameter(ParameterSetName='TransferExpanded')]
    [Parameter(ParameterSetName='TransferViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # The destination billing profile id.
    ${DestinationBillingProfileId},

    [Parameter(ParameterSetName='TransferExpanded')]
    [Parameter(ParameterSetName='TransferViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # The destination invoice section id.
    ${DestinationInvoiceSectionId},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Run the command as a job
    ${AsJob},

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

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

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

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Run the command asynchronously
    ${NoWait},

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Transfer = 'Az.Billing.private\Move-AzBillingSubscription_Transfer';
            TransferExpanded = 'Az.Billing.private\Move-AzBillingSubscription_TransferExpanded';
            TransferViaIdentity = 'Az.Billing.private\Move-AzBillingSubscription_TransferViaIdentity';
            TransferViaIdentityExpanded = 'Az.Billing.private\Move-AzBillingSubscription_TransferViaIdentityExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
The operation to create a BillingProfile.
.Description
The operation to create a BillingProfile.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/new-azbillingprofile
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingProfileCreationParameters
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingProfile1
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
ENABLEAZURESKUS <IEnabledAzureSkUs[]>: Azure skus to enable for this billing profile..
  [SkuId <String>]: The sku id.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
 
PARAMETER <IBillingProfileCreationParameters>: The parameters for creating a new billing profile.
  [AddressCity <String>]: Address City.
  [AddressCompanyName <String>]: Company Name.
  [AddressCountry <String>]: Country code uses ISO2, 2-digit format.
  [AddressFirstName <String>]: First Name.
  [AddressLastName <String>]: Last Name.
  [AddressLine1 <String>]: Address Line1.
  [AddressLine2 <String>]: Address Line2.
  [AddressLine3 <String>]: Address Line3.
  [AddressPostalCode <String>]: Address Postal Code.
  [AddressRegion <String>]: Address Region.
  [DisplayName <String>]: The billing profile name.
  [EnableAzureSkUs <IEnabledAzureSkUs[]>]: Azure skus to enable for this billing profile..
    [SkuId <String>]: The sku id.
  [InvoiceEmailOptIn <Boolean?>]: If the billing profile is opted in to receive invoices via email.
  [PoNumber <String>]: Purchase order number.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/new-azbillingprofile
#>

function New-AzBillingProfile {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingProfile1])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountName},

    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingProfileCreationParameters]
    # The parameters for creating a new billing profile.
    # To construct, see NOTES section for PARAMETER properties and create a hash table.
    ${Parameter},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Address City.
    ${AddressCity},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Company Name.
    ${AddressCompanyName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Country code uses ISO2, 2-digit format.
    ${AddressCountry},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # First Name.
    ${AddressFirstName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Last Name.
    ${AddressLastName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Address Line1.
    ${AddressLine1},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Address Line2.
    ${AddressLine2},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Address Line3.
    ${AddressLine3},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Address Postal Code.
    ${AddressPostalCode},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Address Region.
    ${AddressRegion},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # The billing profile name.
    ${DisplayName},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IEnabledAzureSkUs[]]
    # Azure skus to enable for this billing profile..
    # To construct, see NOTES section for ENABLEAZURESKUS properties and create a hash table.
    ${EnableAzureSkUs},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # If the billing profile is opted in to receive invoices via email.
    ${InvoiceEmailOptIn},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Purchase order number.
    ${PurchaseOrderNumber},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Run the command as a job
    ${AsJob},

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

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

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

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Run the command asynchronously
    ${NoWait},

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Create = 'Az.Billing.private\New-AzBillingProfile_Create';
            CreateExpanded = 'Az.Billing.private\New-AzBillingProfile_CreateExpanded';
            CreateViaIdentity = 'Az.Billing.private\New-AzBillingProfile_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Az.Billing.private\New-AzBillingProfile_CreateViaIdentityExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
The operation to create or update cost tags associated with a billing account.
Update operation requires latest eTag to be set in the request mandatorily.
You may obtain the latest eTag by performing a get operation.
Create operation does not require eTag.
.Description
The operation to create or update cost tags associated with a billing account.
Update operation requires latest eTag to be set in the request mandatorily.
You may obtain the latest eTag by performing a get operation.
Create operation does not require eTag.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/new-azconsumptioncosttag
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20180630.ICostTag
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20180630.ICostTag
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
COSTTAG <ICostTagProperties[]>: Cost tags.
  [Key <String>]: Cost tag key.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
 
PARAMETER <ICostTag>: A cost tag resource.
  [ETag <String>]: eTag of the resource. To handle concurrent update scenario, this field will be used to determine whether the user is updating the latest version or not.
  [PropertiesCostTags <ICostTagProperties[]>]: Cost tags.
    [Key <String>]: Cost tag key.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/new-azconsumptioncosttag
#>

function New-AzConsumptionCostTag {
[Alias('New-AzConsumptionCostTag')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20180630.ICostTag])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # BillingAccount ID
    ${BillingAccountId},

    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20180630.ICostTag]
    # A cost tag resource.
    # To construct, see NOTES section for PARAMETER properties and create a hash table.
    ${Parameter},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20180630.ICostTagProperties[]]
    # Cost tags.
    # To construct, see NOTES section for COSTTAG properties and create a hash table.
    ${CostTag},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # eTag of the resource.
    # To handle concurrent update scenario, this field will be used to determine whether the user is updating the latest version or not.
    ${ETag},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Create = 'Az.Billing.private\New-AzConsumptionCostTag_Create';
            CreateExpanded = 'Az.Billing.private\New-AzConsumptionCostTag_CreateExpanded';
            CreateViaIdentity = 'Az.Billing.private\New-AzConsumptionCostTag_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Az.Billing.private\New-AzConsumptionCostTag_CreateViaIdentityExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
The operation to create a InvoiceSection.
.Description
The operation to create a InvoiceSection.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/new-azinvoicesection
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IInvoiceSectionCreationRequest
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IInvoiceSection1
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
 
PARAMETER <IInvoiceSectionCreationRequest>: The properties of an InvoiceSection.
  [BillingProfileId <String>]: The billing profile id.
  [DisplayName <String>]: The name of the InvoiceSection.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/new-azinvoicesection
#>

function New-AzInvoiceSection {
[Alias('New-AzBillingInvoiceSection')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IInvoiceSection1])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountName},

    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IInvoiceSectionCreationRequest]
    # The properties of an InvoiceSection.
    # To construct, see NOTES section for PARAMETER properties and create a hash table.
    ${Parameter},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # The billing profile id.
    ${BillingProfileId},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # The name of the InvoiceSection.
    ${DisplayName},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Run the command as a job
    ${AsJob},

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

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

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

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Run the command asynchronously
    ${NoWait},

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Create = 'Az.Billing.private\New-AzInvoiceSection_Create';
            CreateExpanded = 'Az.Billing.private\New-AzInvoiceSection_CreateExpanded';
            CreateViaIdentity = 'Az.Billing.private\New-AzInvoiceSection_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Az.Billing.private\New-AzInvoiceSection_CreateViaIdentityExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Delete the role assignment on this billing account
.Description
Delete the role assignment on this billing account
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/remove-azbillingroleassignment
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingRoleAssignment
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/remove-azbillingroleassignment
#>

function Remove-AzBillingRoleAssignment {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingRoleAssignment])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Parameter(ParameterSetName='Delete1', Mandatory)]
    [Parameter(ParameterSetName='Delete2', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountName},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Parameter(ParameterSetName='Delete1', Mandatory)]
    [Parameter(ParameterSetName='Delete2', Mandatory)]
    [Alias('BillingRoleAssignmentName')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # role assignment id.
    ${Name},

    [Parameter(ParameterSetName='Delete1', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # InvoiceSection Id.
    ${InvoiceSectionName},

    [Parameter(ParameterSetName='Delete2', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Profile Id.
    ${BillingProfileName},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='DeleteViaIdentity1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='DeleteViaIdentity2', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Delete = 'Az.Billing.private\Remove-AzBillingRoleAssignment_Delete';
            Delete1 = 'Az.Billing.private\Remove-AzBillingRoleAssignment_Delete1';
            Delete2 = 'Az.Billing.private\Remove-AzBillingRoleAssignment_Delete2';
            DeleteViaIdentity = 'Az.Billing.private\Remove-AzBillingRoleAssignment_DeleteViaIdentity';
            DeleteViaIdentity1 = 'Az.Billing.private\Remove-AzBillingRoleAssignment_DeleteViaIdentity1';
            DeleteViaIdentity2 = 'Az.Billing.private\Remove-AzBillingRoleAssignment_DeleteViaIdentity2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
The operation to update a policy.
.Description
The operation to update a policy.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/set-azbillingpolicy
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IPolicy
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IPolicy
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
PARAMETER <IPolicy>: The Policy.
  [MarketplacePurchasesAllowed <Boolean?>]: The marketplacePurchasesAllowed flag.
  [ReservationPurchasesAllowed <Boolean?>]: The reservationPurchasesAllowed flag.
  [SubscriptionOwnerCanViewCharge <Boolean?>]: The subscriptionOwnerCanViewCharges flag.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/set-azbillingpolicy
#>

function Set-AzBillingPolicy {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IPolicy])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountName},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Profile Id.
    ${BillingProfileName},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IPolicy]
    # The Policy.
    # To construct, see NOTES section for PARAMETER properties and create a hash table.
    ${Parameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # The marketplacePurchasesAllowed flag.
    ${MarketplacePurchasesAllowed},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # The reservationPurchasesAllowed flag.
    ${ReservationPurchasesAllowed},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # The subscriptionOwnerCanViewCharges flag.
    ${SubscriptionOwnerCanViewCharge},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Update = 'Az.Billing.private\Set-AzBillingPolicy_Update';
            UpdateExpanded = 'Az.Billing.private\Set-AzBillingPolicy_UpdateExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
The operation to update a billing profile.
.Description
The operation to update a billing profile.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/set-azbillingprofile
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingProfile1
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingProfile1
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
ENABLEDAZURESKUS <IEnabledAzureSkUs[]>: Information about the product.
  [SkuId <String>]: The sku id.
 
INVOICESECTION <IInvoiceSection1[]>: The invoice sections associated to the billing profile.
  [BillingProfile <IBillingProfile1[]>]: The billing profiles associated to the billing account.
    [AddressCity <String>]: Address City.
    [AddressCompanyName <String>]: Company Name.
    [AddressCountry <String>]: Country code uses ISO2, 2-digit format.
    [AddressFirstName <String>]: First Name.
    [AddressLastName <String>]: Last Name.
    [AddressLine1 <String>]: Address Line1.
    [AddressLine2 <String>]: Address Line2.
    [AddressLine3 <String>]: Address Line3.
    [AddressPostalCode <String>]: Address Postal Code.
    [AddressRegion <String>]: Address Region.
    [DisplayName <String>]: The billing profile name.
    [EnabledAzureSkUs <IEnabledAzureSkUs[]>]: Information about the product.
      [SkuId <String>]: The sku id.
    [InvoiceSection <IInvoiceSection1[]>]: The invoice sections associated to the billing profile.
    [PoNumber <String>]: Purchase order number.
  [DisplayName <String>]: The name of the InvoiceSection.
 
PARAMETER <IBillingProfile1>: A billing profile resource.
  [AddressCity <String>]: Address City.
  [AddressCompanyName <String>]: Company Name.
  [AddressCountry <String>]: Country code uses ISO2, 2-digit format.
  [AddressFirstName <String>]: First Name.
  [AddressLastName <String>]: Last Name.
  [AddressLine1 <String>]: Address Line1.
  [AddressLine2 <String>]: Address Line2.
  [AddressLine3 <String>]: Address Line3.
  [AddressPostalCode <String>]: Address Postal Code.
  [AddressRegion <String>]: Address Region.
  [DisplayName <String>]: The billing profile name.
  [EnabledAzureSkUs <IEnabledAzureSkUs[]>]: Information about the product.
    [SkuId <String>]: The sku id.
  [InvoiceSection <IInvoiceSection1[]>]: The invoice sections associated to the billing profile.
    [BillingProfile <IBillingProfile1[]>]: The billing profiles associated to the billing account.
    [DisplayName <String>]: The name of the InvoiceSection.
  [PoNumber <String>]: Purchase order number.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/set-azbillingprofile
#>

function Set-AzBillingProfile {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingProfile1])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountName},

    [Parameter(Mandatory)]
    [Alias('BillingProfileName')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Profile Id.
    ${Name},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingProfile1]
    # A billing profile resource.
    # To construct, see NOTES section for PARAMETER properties and create a hash table.
    ${Parameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Address City.
    ${AddressCity},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Company Name.
    ${AddressCompanyName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Country code uses ISO2, 2-digit format.
    ${AddressCountry},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # First Name.
    ${AddressFirstName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Last Name.
    ${AddressLastName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Address Line1.
    ${AddressLine1},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Address Line2.
    ${AddressLine2},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Address Line3.
    ${AddressLine3},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Address Postal Code.
    ${AddressPostalCode},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Address Region.
    ${AddressRegion},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # The billing profile name.
    ${DisplayName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IEnabledAzureSkUs[]]
    # Information about the product.
    # To construct, see NOTES section for ENABLEDAZURESKUS properties and create a hash table.
    ${EnabledAzureSkUs},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IInvoiceSection1[]]
    # The invoice sections associated to the billing profile.
    # To construct, see NOTES section for INVOICESECTION properties and create a hash table.
    ${InvoiceSection},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Purchase order number.
    ${PurchaseOrderNumber},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Run the command as a job
    ${AsJob},

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

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

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

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Run the command asynchronously
    ${NoWait},

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Update = 'Az.Billing.private\Set-AzBillingProfile_Update';
            UpdateExpanded = 'Az.Billing.private\Set-AzBillingProfile_UpdateExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
The operation to create or update cost tags associated with a billing account.
Update operation requires latest eTag to be set in the request mandatorily.
You may obtain the latest eTag by performing a get operation.
Create operation does not require eTag.
.Description
The operation to create or update cost tags associated with a billing account.
Update operation requires latest eTag to be set in the request mandatorily.
You may obtain the latest eTag by performing a get operation.
Create operation does not require eTag.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/set-azconsumptioncosttag
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20180630.ICostTag
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20180630.ICostTag
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
COSTTAG <ICostTagProperties[]>: Cost tags.
  [Key <String>]: Cost tag key.
 
PARAMETER <ICostTag>: A cost tag resource.
  [ETag <String>]: eTag of the resource. To handle concurrent update scenario, this field will be used to determine whether the user is updating the latest version or not.
  [PropertiesCostTags <ICostTagProperties[]>]: Cost tags.
    [Key <String>]: Cost tag key.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/set-azconsumptioncosttag
#>

function Set-AzConsumptionCostTag {
[Alias('Set-AzConsumptionCostTag')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20180630.ICostTag])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # BillingAccount ID
    ${BillingAccountId},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20180630.ICostTag]
    # A cost tag resource.
    # To construct, see NOTES section for PARAMETER properties and create a hash table.
    ${Parameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20180630.ICostTagProperties[]]
    # Cost tags.
    # To construct, see NOTES section for COSTTAG properties and create a hash table.
    ${CostTag},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # eTag of the resource.
    # To handle concurrent update scenario, this field will be used to determine whether the user is updating the latest version or not.
    ${ETag},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Update = 'Az.Billing.private\Set-AzConsumptionCostTag_Update';
            UpdateExpanded = 'Az.Billing.private\Set-AzConsumptionCostTag_UpdateExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
The operation to update a InvoiceSection.
.Description
The operation to update a InvoiceSection.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/set-azinvoicesection
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IInvoiceSection1
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IInvoiceSection1
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
BILLINGPROFILE <IBillingProfile1[]>: The billing profiles associated to the billing account.
  [AddressCity <String>]: Address City.
  [AddressCompanyName <String>]: Company Name.
  [AddressCountry <String>]: Country code uses ISO2, 2-digit format.
  [AddressFirstName <String>]: First Name.
  [AddressLastName <String>]: Last Name.
  [AddressLine1 <String>]: Address Line1.
  [AddressLine2 <String>]: Address Line2.
  [AddressLine3 <String>]: Address Line3.
  [AddressPostalCode <String>]: Address Postal Code.
  [AddressRegion <String>]: Address Region.
  [DisplayName <String>]: The billing profile name.
  [EnabledAzureSkUs <IEnabledAzureSkUs[]>]: Information about the product.
    [SkuId <String>]: The sku id.
  [InvoiceSection <IInvoiceSection1[]>]: The invoice sections associated to the billing profile.
    [BillingProfile <IBillingProfile1[]>]: The billing profiles associated to the billing account.
    [DisplayName <String>]: The name of the InvoiceSection.
  [PoNumber <String>]: Purchase order number.
 
PARAMETER <IInvoiceSection1>: An InvoiceSection resource.
  [BillingProfile <IBillingProfile1[]>]: The billing profiles associated to the billing account.
    [AddressCity <String>]: Address City.
    [AddressCompanyName <String>]: Company Name.
    [AddressCountry <String>]: Country code uses ISO2, 2-digit format.
    [AddressFirstName <String>]: First Name.
    [AddressLastName <String>]: Last Name.
    [AddressLine1 <String>]: Address Line1.
    [AddressLine2 <String>]: Address Line2.
    [AddressLine3 <String>]: Address Line3.
    [AddressPostalCode <String>]: Address Postal Code.
    [AddressRegion <String>]: Address Region.
    [DisplayName <String>]: The billing profile name.
    [EnabledAzureSkUs <IEnabledAzureSkUs[]>]: Information about the product.
      [SkuId <String>]: The sku id.
    [InvoiceSection <IInvoiceSection1[]>]: The invoice sections associated to the billing profile.
    [PoNumber <String>]: Purchase order number.
  [DisplayName <String>]: The name of the InvoiceSection.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/set-azinvoicesection
#>

function Set-AzInvoiceSection {
[Alias('Set-AzBillingInvoiceSection')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IInvoiceSection1])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountName},

    [Parameter(Mandatory)]
    [Alias('InvoiceSectionName')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # InvoiceSection Id.
    ${Name},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IInvoiceSection1]
    # An InvoiceSection resource.
    # To construct, see NOTES section for PARAMETER properties and create a hash table.
    ${Parameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingProfile1[]]
    # The billing profiles associated to the billing account.
    # To construct, see NOTES section for BILLINGPROFILE properties and create a hash table.
    ${BillingProfile},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # The name of the InvoiceSection.
    ${DisplayName},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Run the command as a job
    ${AsJob},

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

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

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

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Run the command asynchronously
    ${NoWait},

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Update = 'Az.Billing.private\Set-AzInvoiceSection_Update';
            UpdateExpanded = 'Az.Billing.private\Set-AzInvoiceSection_UpdateExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Increase the current line of credit.
.Description
Increase the current line of credit.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/set-azlineofcredit
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ILineOfCredit
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ILineOfCredit
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
PARAMETER <ILineOfCredit>: Line of credit resource.
  [CreditLimitValue <Single?>]: Amount value.
  [RemainingBalanceValue <Single?>]: Amount value.
  [Status <Status?>]: The line of credit status.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/set-azlineofcredit
#>

function Set-AzLineOfCredit {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ILineOfCredit])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # Azure Subscription ID.
    ${SubscriptionId},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ILineOfCredit]
    # Line of credit resource.
    # To construct, see NOTES section for PARAMETER properties and create a hash table.
    ${Parameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.Single]
    # Amount value.
    ${CreditLimitValue},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.Single]
    # Amount value.
    ${RemainingBalanceValue},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Billing.Support.Status])]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Support.Status]
    # The line of credit status.
    ${Status},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Run the command as a job
    ${AsJob},

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

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

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

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Run the command asynchronously
    ${NoWait},

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Update = 'Az.Billing.private\Set-AzLineOfCredit_Update';
            UpdateExpanded = 'Az.Billing.private\Set-AzLineOfCredit_UpdateExpanded';
        }
        if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Cancels the transfer for given transfer Id.
.Description
Cancels the transfer for given transfer Id.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/stop-aztransfer
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ITransferProperties
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/stop-aztransfer
#>

function Stop-AzTransfer {
[Alias('Stop-AzBillingTransfer')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ITransferProperties])]
[CmdletBinding(DefaultParameterSetName='Cancel', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Cancel', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountName},

    [Parameter(ParameterSetName='Cancel', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # InvoiceSection Id.
    ${InvoiceSectionName},

    [Parameter(ParameterSetName='Cancel', Mandatory)]
    [Alias('TransferName')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Transfer Name.
    ${Name},

    [Parameter(ParameterSetName='CancelViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Cancel = 'Az.Billing.private\Stop-AzTransfer_Cancel';
            CancelViaIdentity = 'Az.Billing.private\Stop-AzTransfer_CancelViaIdentity';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Validates the transfer of products across invoice sections.
.Description
Validates the transfer of products across invoice sections.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/test-azbillingproducttransfer
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ITransferProductRequestProperties
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IValidateProductTransferEligibilityResult
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
 
PARAMETER <ITransferProductRequestProperties>: The properties of the product to initiate a transfer.
  [DestinationBillingProfileId <String>]: The destination billing profile id.
  [DestinationInvoiceSectionId <String>]: The destination invoice section id.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/test-azbillingproducttransfer
#>

function Test-AzBillingProductTransfer {
[Alias('Test-AzBillingProductTransfer')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IValidateProductTransferEligibilityResult])]
[CmdletBinding(DefaultParameterSetName='ValidateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Validate', Mandatory)]
    [Parameter(ParameterSetName='ValidateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountName},

    [Parameter(ParameterSetName='Validate', Mandatory)]
    [Parameter(ParameterSetName='ValidateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # InvoiceSection Id.
    ${InvoiceSectionName},

    [Parameter(ParameterSetName='Validate', Mandatory)]
    [Parameter(ParameterSetName='ValidateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Invoice Id.
    ${ProductName},

    [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Validate', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ITransferProductRequestProperties]
    # The properties of the product to initiate a transfer.
    # To construct, see NOTES section for PARAMETER properties and create a hash table.
    ${Parameter},

    [Parameter(ParameterSetName='ValidateExpanded')]
    [Parameter(ParameterSetName='ValidateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # The destination billing profile id.
    ${DestinationBillingProfileId},

    [Parameter(ParameterSetName='ValidateExpanded')]
    [Parameter(ParameterSetName='ValidateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # The destination invoice section id.
    ${DestinationInvoiceSectionId},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Validate = 'Az.Billing.private\Test-AzBillingProductTransfer_Validate';
            ValidateExpanded = 'Az.Billing.private\Test-AzBillingProductTransfer_ValidateExpanded';
            ValidateViaIdentity = 'Az.Billing.private\Test-AzBillingProductTransfer_ValidateViaIdentity';
            ValidateViaIdentityExpanded = 'Az.Billing.private\Test-AzBillingProductTransfer_ValidateViaIdentityExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Validates the transfer of billing subscriptions across invoice sections.
.Description
Validates the transfer of billing subscriptions across invoice sections.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/test-azbillingsubscriptiontransfer
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ITransferBillingSubscriptionRequestProperties
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IValidateSubscriptionTransferEligibilityResult
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
 
PARAMETER <ITransferBillingSubscriptionRequestProperties>: Request parameters to transfer billing subscription.
  [DestinationBillingProfileId <String>]: The destination billing profile id.
  [DestinationInvoiceSectionId <String>]: The destination invoice section id.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/test-azbillingsubscriptiontransfer
#>

function Test-AzBillingSubscriptionTransfer {
[Alias('Test-AzBillingBillingSubscriptionTransfer')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IValidateSubscriptionTransferEligibilityResult])]
[CmdletBinding(DefaultParameterSetName='ValidateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Validate', Mandatory)]
    [Parameter(ParameterSetName='ValidateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountName},

    [Parameter(ParameterSetName='Validate', Mandatory)]
    [Parameter(ParameterSetName='ValidateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Subscription Id.
    ${BillingSubscriptionName},

    [Parameter(ParameterSetName='Validate', Mandatory)]
    [Parameter(ParameterSetName='ValidateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # InvoiceSection Id.
    ${InvoiceSectionName},

    [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Validate', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.ITransferBillingSubscriptionRequestProperties]
    # Request parameters to transfer billing subscription.
    # To construct, see NOTES section for PARAMETER properties and create a hash table.
    ${Parameter},

    [Parameter(ParameterSetName='ValidateExpanded')]
    [Parameter(ParameterSetName='ValidateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # The destination billing profile id.
    ${DestinationBillingProfileId},

    [Parameter(ParameterSetName='ValidateExpanded')]
    [Parameter(ParameterSetName='ValidateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # The destination invoice section id.
    ${DestinationInvoiceSectionId},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Validate = 'Az.Billing.private\Test-AzBillingSubscriptionTransfer_Validate';
            ValidateExpanded = 'Az.Billing.private\Test-AzBillingSubscriptionTransfer_ValidateExpanded';
            ValidateViaIdentity = 'Az.Billing.private\Test-AzBillingSubscriptionTransfer_ValidateViaIdentity';
            ValidateViaIdentityExpanded = 'Az.Billing.private\Test-AzBillingSubscriptionTransfer_ValidateViaIdentityExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
The operation to update a billing account.
.Description
The operation to update a billing account.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/update-azbillingaccount
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingAccountUpdateProperties
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingAccount1
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
BILLINGPROFILE <IBillingProfile1[]>: The billing profiles associated to the billing account. By default this is not populated, unless it's specified in $expand.
  [AddressCity <String>]: Address City.
  [AddressCompanyName <String>]: Company Name.
  [AddressCountry <String>]: Country code uses ISO2, 2-digit format.
  [AddressFirstName <String>]: First Name.
  [AddressLastName <String>]: Last Name.
  [AddressLine1 <String>]: Address Line1.
  [AddressLine2 <String>]: Address Line2.
  [AddressLine3 <String>]: Address Line3.
  [AddressPostalCode <String>]: Address Postal Code.
  [AddressRegion <String>]: Address Region.
  [DisplayName <String>]: The billing profile name.
  [EnabledAzureSkUs <IEnabledAzureSkUs[]>]: Information about the product.
    [SkuId <String>]: The sku id.
  [InvoiceSection <IInvoiceSection1[]>]: The invoice sections associated to the billing profile.
    [BillingProfile <IBillingProfile1[]>]: The billing profiles associated to the billing account.
    [DisplayName <String>]: The name of the InvoiceSection.
  [PoNumber <String>]: Purchase order number.
 
DEPARTMENT <IDepartment1[]>: The departments associated to the enrollment.
  [CostCenter <String>]: The cost center name.
  [DepartmentName <String>]: The name for department.
  [EnrollmentAccount <IEnrollmentAccount1[]>]: Associated enrollment accounts. By default this is not populated, unless it's specified in $expand.
    [AccountName <String>]: The account name.
    [AccountOwner <String>]: The account owner
    [CostCenter <String>]: The cost center name.
    [DepartmentPropertiesCostCenter <String>]: The cost center name.
    [DepartmentPropertiesDepartmentName <String>]: The name for department.
    [DepartmentPropertiesStatus <String>]: The status for department.
    [EndDate <DateTime?>]: Account End Date
    [EnrollmentAccount <IEnrollmentAccount1[]>]: Associated enrollment accounts. By default this is not populated, unless it's specified in $expand.
    [StartDate <DateTime?>]: Account Start Date
    [Status <String>]: The status for account.
  [Status <String>]: The status for department.
 
ENROLLMENTACCOUNT <IEnrollmentAccount1[]>: The accounts associated to the enrollment.
  [AccountName <String>]: The account name.
  [AccountOwner <String>]: The account owner
  [CostCenter <String>]: The cost center name.
  [DepartmentPropertiesCostCenter <String>]: The cost center name.
  [DepartmentPropertiesDepartmentName <String>]: The name for department.
  [DepartmentPropertiesStatus <String>]: The status for department.
  [EndDate <DateTime?>]: Account End Date
  [EnrollmentAccount <IEnrollmentAccount1[]>]: Associated enrollment accounts. By default this is not populated, unless it's specified in $expand.
  [StartDate <DateTime?>]: Account Start Date
  [Status <String>]: The status for account.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
 
INVOICESECTION <IInvoiceSection1[]>: The invoice sections associated to the billing account. By default this is not populated, unless it's specified in $expand.
  [BillingProfile <IBillingProfile1[]>]: The billing profiles associated to the billing account.
    [AddressCity <String>]: Address City.
    [AddressCompanyName <String>]: Company Name.
    [AddressCountry <String>]: Country code uses ISO2, 2-digit format.
    [AddressFirstName <String>]: First Name.
    [AddressLastName <String>]: Last Name.
    [AddressLine1 <String>]: Address Line1.
    [AddressLine2 <String>]: Address Line2.
    [AddressLine3 <String>]: Address Line3.
    [AddressPostalCode <String>]: Address Postal Code.
    [AddressRegion <String>]: Address Region.
    [DisplayName <String>]: The billing profile name.
    [EnabledAzureSkUs <IEnabledAzureSkUs[]>]: Information about the product.
      [SkuId <String>]: The sku id.
    [InvoiceSection <IInvoiceSection1[]>]: The invoice sections associated to the billing profile.
    [PoNumber <String>]: Purchase order number.
  [DisplayName <String>]: The name of the InvoiceSection.
 
PARAMETER <IBillingAccountUpdateProperties>: The properties of the billing account that can be updated.
  [AddressCity <String>]: Address City.
  [AddressCompanyName <String>]: Company Name.
  [AddressCountry <String>]: Country code uses ISO2, 2-digit format.
  [AddressFirstName <String>]: First Name.
  [AddressLastName <String>]: Last Name.
  [AddressLine1 <String>]: Address Line1.
  [AddressLine2 <String>]: Address Line2.
  [AddressLine3 <String>]: Address Line3.
  [AddressPostalCode <String>]: Address Postal Code.
  [AddressRegion <String>]: Address Region.
  [BillingProfile <IBillingProfile1[]>]: The billing profiles associated to the billing account. By default this is not populated, unless it's specified in $expand.
    [AddressCity <String>]: Address City.
    [AddressCompanyName <String>]: Company Name.
    [AddressCountry <String>]: Country code uses ISO2, 2-digit format.
    [AddressFirstName <String>]: First Name.
    [AddressLastName <String>]: Last Name.
    [AddressLine1 <String>]: Address Line1.
    [AddressLine2 <String>]: Address Line2.
    [AddressLine3 <String>]: Address Line3.
    [AddressPostalCode <String>]: Address Postal Code.
    [AddressRegion <String>]: Address Region.
    [DisplayName <String>]: The billing profile name.
    [EnabledAzureSkUs <IEnabledAzureSkUs[]>]: Information about the product.
      [SkuId <String>]: The sku id.
    [InvoiceSection <IInvoiceSection1[]>]: The invoice sections associated to the billing profile.
      [BillingProfile <IBillingProfile1[]>]: The billing profiles associated to the billing account.
      [DisplayName <String>]: The name of the InvoiceSection.
    [PoNumber <String>]: Purchase order number.
  [Department <IDepartment1[]>]: The departments associated to the enrollment.
    [CostCenter <String>]: The cost center name.
    [DepartmentName <String>]: The name for department.
    [EnrollmentAccount <IEnrollmentAccount1[]>]: Associated enrollment accounts. By default this is not populated, unless it's specified in $expand.
      [AccountName <String>]: The account name.
      [AccountOwner <String>]: The account owner
      [CostCenter <String>]: The cost center name.
      [DepartmentPropertiesCostCenter <String>]: The cost center name.
      [DepartmentPropertiesDepartmentName <String>]: The name for department.
      [DepartmentPropertiesStatus <String>]: The status for department.
      [EndDate <DateTime?>]: Account End Date
      [EnrollmentAccount <IEnrollmentAccount1[]>]: Associated enrollment accounts. By default this is not populated, unless it's specified in $expand.
      [StartDate <DateTime?>]: Account Start Date
      [Status <String>]: The status for account.
    [Status <String>]: The status for department.
  [EnrollmentAccount <IEnrollmentAccount1[]>]: The accounts associated to the enrollment.
  [EnrollmentDetailEndDate <DateTime?>]: Enrollment End Date
  [EnrollmentDetailStartDate <DateTime?>]: Enrollment Start Date
  [InvoiceSection <IInvoiceSection1[]>]: The invoice sections associated to the billing account. By default this is not populated, unless it's specified in $expand.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/update-azbillingaccount
#>

function Update-AzBillingAccount {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingAccount1])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Alias('BillingAccountName')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${Name},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingAccountUpdateProperties]
    # The properties of the billing account that can be updated.
    # To construct, see NOTES section for PARAMETER properties and create a hash table.
    ${Parameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Address City.
    ${AddressCity},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Company Name.
    ${AddressCompanyName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Country code uses ISO2, 2-digit format.
    ${AddressCountry},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # First Name.
    ${AddressFirstName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Last Name.
    ${AddressLastName},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Address Line1.
    ${AddressLine1},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Address Line2.
    ${AddressLine2},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Address Line3.
    ${AddressLine3},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Address Postal Code.
    ${AddressPostalCode},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.String]
    # Address Region.
    ${AddressRegion},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IBillingProfile1[]]
    # The billing profiles associated to the billing account.
    # By default this is not populated, unless it's specified in $expand.
    # To construct, see NOTES section for BILLINGPROFILE properties and create a hash table.
    ${BillingProfile},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IDepartment1[]]
    # The departments associated to the enrollment.
    # To construct, see NOTES section for DEPARTMENT properties and create a hash table.
    ${Department},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IEnrollmentAccount1[]]
    # The accounts associated to the enrollment.
    # To construct, see NOTES section for ENROLLMENTACCOUNT properties and create a hash table.
    ${EnrollmentAccount},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.DateTime]
    # Enrollment End Date
    ${EnrollmentDetailEndDate},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [System.DateTime]
    # Enrollment Start Date
    ${EnrollmentDetailStartDate},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IInvoiceSection1[]]
    # The invoice sections associated to the billing account.
    # By default this is not populated, unless it's specified in $expand.
    # To construct, see NOTES section for INVOICESECTION properties and create a hash table.
    ${InvoiceSection},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Run the command as a job
    ${AsJob},

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

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

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

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    # Run the command asynchronously
    ${NoWait},

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Update = 'Az.Billing.private\Update-AzBillingAccount_Update';
            UpdateExpanded = 'Az.Billing.private\Update-AzBillingAccount_UpdateExpanded';
            UpdateViaIdentity = 'Az.Billing.private\Update-AzBillingAccount_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Az.Billing.private\Update-AzBillingAccount_UpdateViaIdentityExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Cancel auto renew for product by product id and billing account name
.Description
Cancel auto renew for product by product id and billing account name
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.billing/update-azbillingproductautorenew
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IUpdateAutoRenewRequest
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IUpdateAutoRenewOperationSummaryProperties
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
BODY <IUpdateAutoRenewRequest>: Request parameters to update auto renew for support product.
  [AutoRenew <UpdateAutoRenew?>]: Request parameters to update auto renew policy a product.
 
INPUTOBJECT <IBillingIdentity>: Identity Parameter
  [AgreementName <String>]: Agreement Id.
  [BillingAccountId <String>]: BillingAccount ID
  [BillingAccountName <String>]: Billing Account Id.
  [BillingPeriodName <String>]: Billing Period Name.
  [BillingProfileId <String>]: Billing Profile Id.
  [BillingProfileName <String>]: Billing Profile Id.
  [BillingRoleAssignmentName <String>]: role assignment id.
  [BillingRoleDefinitionName <String>]: role definition id.
  [BillingSubscriptionName <String>]: Billing Subscription Id.
  [BudgetName <String>]: Budget Name.
  [CustomerName <String>]: Customer Id.
  [DepartmentName <String>]: Department Id.
  [EnrollmentAccountName <String>]: Enrollment Account Id.
  [Id <String>]: Resource identity path
  [InvoiceName <String>]: The name of an invoice resource.
  [InvoiceSectionId <String>]: Invoice Section Id.
  [InvoiceSectionName <String>]: InvoiceSection Id.
  [ManagementGroupId <String>]: Azure Management Group ID.
  [Name <String>]: Enrollment Account name.
  [ProductName <String>]: Invoice Id.
  [ReservationId <String>]: Id of the reservation
  [ReservationOrderId <String>]: Order Id of the reservation
  [Scope <String>]: The scope associated with usage details operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope and '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope. For subscription, billing account, department, enrollment account and management group, you can also add billing period to the scope using '/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'. For e.g. to specify billing period at department scope use '/providers/Microsoft.Billing/departments/{departmentId}/providers/Microsoft.Billing/billingPeriods/{billingPeriodName}'
  [SubscriptionId <String>]: Azure Subscription ID.
  [TransferName <String>]: Transfer Name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.billing/update-azbillingproductautorenew
#>

function Update-AzBillingProductAutoRenew {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IUpdateAutoRenewOperationSummaryProperties])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Billing.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='Update1', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded1', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Billing Account Id.
    ${BillingAccountName},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='Update1', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded1', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # Invoice Id.
    ${ProductName},

    [Parameter(ParameterSetName='Update1', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded1', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [System.String]
    # InvoiceSection Id.
    ${InvoiceSectionName},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.IBillingIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='Update1', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentity1', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Models.Api20181101Preview.IUpdateAutoRenewRequest]
    # Request parameters to update auto renew for support product.
    # To construct, see NOTES section for BODY properties and create a hash table.
    ${Body},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Billing.Support.UpdateAutoRenew])]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Support.UpdateAutoRenew]
    # Request parameters to update auto renew policy a product.
    ${AutoRenew},

    [Parameter()]
    [Alias('AzureRMContext', 'AzureCredential')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Billing.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
        $mapping = @{
            Update = 'Az.Billing.private\Update-AzBillingProductAutoRenew_Update';
            Update1 = 'Az.Billing.private\Update-AzBillingProductAutoRenew_Update1';
            UpdateExpanded = 'Az.Billing.private\Update-AzBillingProductAutoRenew_UpdateExpanded';
            UpdateExpanded1 = 'Az.Billing.private\Update-AzBillingProductAutoRenew_UpdateExpanded1';
            UpdateViaIdentity = 'Az.Billing.private\Update-AzBillingProductAutoRenew_UpdateViaIdentity';
            UpdateViaIdentity1 = 'Az.Billing.private\Update-AzBillingProductAutoRenew_UpdateViaIdentity1';
            UpdateViaIdentityExpanded = 'Az.Billing.private\Update-AzBillingProductAutoRenew_UpdateViaIdentityExpanded';
            UpdateViaIdentityExpanded1 = 'Az.Billing.private\Update-AzBillingProductAutoRenew_UpdateViaIdentityExpanded1';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $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
    }
}
}

# SIG # Begin signature block
# MIIjhgYJKoZIhvcNAQcCoIIjdzCCI3MCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBHtOECG3hud6sF
# VD5lmL8hXEcS3PijmPrrnTnJ1LC9WqCCDYEwggX/MIID56ADAgECAhMzAAABUZ6N
# j0Bxow5BAAAAAAFRMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p
# bmcgUENBIDIwMTEwHhcNMTkwNTAyMjEzNzQ2WhcNMjAwNTAyMjEzNzQ2WjB0MQsw
# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
# AQCVWsaGaUcdNB7xVcNmdfZiVBhYFGcn8KMqxgNIvOZWNH9JYQLuhHhmJ5RWISy1
# oey3zTuxqLbkHAdmbeU8NFMo49Pv71MgIS9IG/EtqwOH7upan+lIq6NOcw5fO6Os
# +12R0Q28MzGn+3y7F2mKDnopVu0sEufy453gxz16M8bAw4+QXuv7+fR9WzRJ2CpU
# 62wQKYiFQMfew6Vh5fuPoXloN3k6+Qlz7zgcT4YRmxzx7jMVpP/uvK6sZcBxQ3Wg
# B/WkyXHgxaY19IAzLq2QiPiX2YryiR5EsYBq35BP7U15DlZtpSs2wIYTkkDBxhPJ
# IDJgowZu5GyhHdqrst3OjkSRAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE
# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUV4Iarkq57esagu6FUBb270Zijc8w
# UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1
# ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDU0MTM1MB8GA1UdIwQYMBaAFEhu
# ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu
# bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w
# Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3
# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx
# MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAWg+A
# rS4Anq7KrogslIQnoMHSXUPr/RqOIhJX+32ObuY3MFvdlRElbSsSJxrRy/OCCZdS
# se+f2AqQ+F/2aYwBDmUQbeMB8n0pYLZnOPifqe78RBH2fVZsvXxyfizbHubWWoUf
# NW/FJlZlLXwJmF3BoL8E2p09K3hagwz/otcKtQ1+Q4+DaOYXWleqJrJUsnHs9UiL
# crVF0leL/Q1V5bshob2OTlZq0qzSdrMDLWdhyrUOxnZ+ojZ7UdTY4VnCuogbZ9Zs
# 9syJbg7ZUS9SVgYkowRsWv5jV4lbqTD+tG4FzhOwcRQwdb6A8zp2Nnd+s7VdCuYF
# sGgI41ucD8oxVfcAMjF9YX5N2s4mltkqnUe3/htVrnxKKDAwSYliaux2L7gKw+bD
# 1kEZ/5ozLRnJ3jjDkomTrPctokY/KaZ1qub0NUnmOKH+3xUK/plWJK8BOQYuU7gK
# YH7Yy9WSKNlP7pKj6i417+3Na/frInjnBkKRCJ/eYTvBH+s5guezpfQWtU4bNo/j
# 8Qw2vpTQ9w7flhH78Rmwd319+YTmhv7TcxDbWlyteaj4RK2wk3pY1oSz2JPE5PNu
# Nmd9Gmf6oePZgy7Ii9JLLq8SnULV7b+IP0UXRY9q+GdRjM2AEX6msZvvPCIoG0aY
# HQu9wZsKEK2jqvWi8/xdeeeSI9FN6K1w4oVQM4Mwggd6MIIFYqADAgECAgphDpDS
# AAAAAAADMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMK
# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
# IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0
# ZSBBdXRob3JpdHkgMjAxMTAeFw0xMTA3MDgyMDU5MDlaFw0yNjA3MDgyMTA5MDla
# MH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS
# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMT
# H01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTEwggIiMA0GCSqGSIb3DQEB
# AQUAA4ICDwAwggIKAoICAQCr8PpyEBwurdhuqoIQTTS68rZYIZ9CGypr6VpQqrgG
# OBoESbp/wwwe3TdrxhLYC/A4wpkGsMg51QEUMULTiQ15ZId+lGAkbK+eSZzpaF7S
# 35tTsgosw6/ZqSuuegmv15ZZymAaBelmdugyUiYSL+erCFDPs0S3XdjELgN1q2jz
# y23zOlyhFvRGuuA4ZKxuZDV4pqBjDy3TQJP4494HDdVceaVJKecNvqATd76UPe/7
# 4ytaEB9NViiienLgEjq3SV7Y7e1DkYPZe7J7hhvZPrGMXeiJT4Qa8qEvWeSQOy2u
# M1jFtz7+MtOzAz2xsq+SOH7SnYAs9U5WkSE1JcM5bmR/U7qcD60ZI4TL9LoDho33
# X/DQUr+MlIe8wCF0JV8YKLbMJyg4JZg5SjbPfLGSrhwjp6lm7GEfauEoSZ1fiOIl
# XdMhSz5SxLVXPyQD8NF6Wy/VI+NwXQ9RRnez+ADhvKwCgl/bwBWzvRvUVUvnOaEP
# 6SNJvBi4RHxF5MHDcnrgcuck379GmcXvwhxX24ON7E1JMKerjt/sW5+v/N2wZuLB
# l4F77dbtS+dJKacTKKanfWeA5opieF+yL4TXV5xcv3coKPHtbcMojyyPQDdPweGF
# RInECUzF1KVDL3SV9274eCBYLBNdYJWaPk8zhNqwiBfenk70lrC8RqBsmNLg1oiM
# CwIDAQABo4IB7TCCAekwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFEhuZOVQ
# BdOCqhc3NyK1bajKdQKVMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud
# DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFHItOgIxkEO5FAVO
# 4eqnxzHRI4k0MFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwubWljcm9zb2Z0
# LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y
# Mi5jcmwwXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUFBzAChkJodHRwOi8vd3d3Lm1p
# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y
# Mi5jcnQwgZ8GA1UdIASBlzCBlDCBkQYJKwYBBAGCNy4DMIGDMD8GCCsGAQUFBwIB
# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2RvY3MvcHJpbWFyeWNw
# cy5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AcABvAGwAaQBjAHkA
# XwBzAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAGfyhqWY
# 4FR5Gi7T2HRnIpsLlhHhY5KZQpZ90nkMkMFlXy4sPvjDctFtg/6+P+gKyju/R6mj
# 82nbY78iNaWXXWWEkH2LRlBV2AySfNIaSxzzPEKLUtCw/WvjPgcuKZvmPRul1LUd
# d5Q54ulkyUQ9eHoj8xN9ppB0g430yyYCRirCihC7pKkFDJvtaPpoLpWgKj8qa1hJ
# Yx8JaW5amJbkg/TAj/NGK978O9C9Ne9uJa7lryft0N3zDq+ZKJeYTQ49C/IIidYf
# wzIY4vDFLc5bnrRJOQrGCsLGra7lstnbFYhRRVg4MnEnGn+x9Cf43iw6IGmYslmJ
# aG5vp7d0w0AFBqYBKig+gj8TTWYLwLNN9eGPfxxvFX1Fp3blQCplo8NdUmKGwx1j
# NpeG39rz+PIWoZon4c2ll9DuXWNB41sHnIc+BncG0QaxdR8UvmFhtfDcxhsEvt9B
# xw4o7t5lL+yX9qFcltgA1qFGvVnzl6UJS0gQmYAf0AApxbGbpT9Fdx41xtKiop96
# eiL6SJUfq/tHI4D1nvi/a7dLl+LrdXga7Oo3mXkYS//WsyNodeav+vyL6wuA6mk7
# r/ww7QRMjt/fdW1jkT3RnVZOT7+AVyKheBEyIXrvQQqxP/uozKRdwaGIm1dxVk5I
# RcBCyZt2WwqASGv9eZ/BvW1taslScxMNelDNMYIVWzCCFVcCAQEwgZUwfjELMAkG
# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx
# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z
# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAVGejY9AcaMOQQAAAAABUTAN
# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor
# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgrW+BBh1f
# erCR1vOS3U3uSze4wG2X4mFY8crYQGTYPNUwQgYKKwYBBAGCNwIBDDE0MDKgFIAS
# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN
# BgkqhkiG9w0BAQEFAASCAQA/KB2BSyQOiKFGw2WziVvNt6aeSD+sVGFCLUL7dQhC
# uyNU2AmKMhCQMEzcYLOaoeLNiqD5k7udw53UAXLv0VstT04jRclXi0ajHVE6NA5a
# bTtjez8Kl+VAoifI4UBdZ9R+ojaImoYuE/4iWupnqn0jYoV8Y1GSIUaY/rPMBtDE
# Q7Zl+erwROLixdLaDmH58e7Y06gyW3Xuad5rY2eZmOE041mQgS2NJU60gAFkRkJI
# 7VfYhQY1MJg04WuhH9KcQlnGTIK8d3q/2rOB6TSJrEBJ8LmBA03YH0AC2V7Vj5O/
# BJ35s/HoueMm/AN9llI4MvVSOYlA2pZdRNejMY6+K46PoYIS5TCCEuEGCisGAQQB
# gjcDAwExghLRMIISzQYJKoZIhvcNAQcCoIISvjCCEroCAQMxDzANBglghkgBZQME
# AgEFADCCAVEGCyqGSIb3DQEJEAEEoIIBQASCATwwggE4AgEBBgorBgEEAYRZCgMB
# MDEwDQYJYIZIAWUDBAIBBQAEIEYRKmD8cVhu8u0FUSKZY7Kk4cYRVej1w65rnkCe
# vkDVAgZd++ZcyHsYEzIwMTkxMjIwMDkyNzA4LjgwOVowBIACAfSggdCkgc0wgcox
# CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJXQTEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG
# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQg
# SXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJjAkBgNVBAsTHVRoYWxlcyBUU1Mg
# RVNOOjJBRDQtNEI5Mi1GQTAxMSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFt
# cCBTZXJ2aWNloIIOPDCCBPEwggPZoAMCAQICEzMAAAEIff9FWXBF+oQAAAAAAQgw
# DQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0
# b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh
# dGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwHhcN
# MTkxMDIzMjMxOTEzWhcNMjEwMTIxMjMxOTEzWjCByjELMAkGA1UEBhMCVVMxCzAJ
# BgNVBAgTAldBMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQg
# Q29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJhdGlv
# bnMgTGltaXRlZDEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046MkFENC00QjkyLUZB
# MDExJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggEiMA0G
# CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC5E4jLyHDxZk05wGziyso3t6RNRL6/
# vG1sZeC01Kl5BnaWNXfUAyhr8CuThyyjwQ7YfYiZ+F+zEHh3wM2KHmwPyl4CPCUg
# ZLIXmy02+xusq9mMmh3R5N5yup6NrvDftP4HgRLOXTAy8LbrP1A573a2Jinpfa8U
# sO2iEmHBTivFrFHYN4UAdbrMI6ls9ZyMHnph6oMw5QJSDfh99u4yGDNYFa5N89kF
# 4mrcMFF3lvDmb95hn4BLi+mUa/hj7ok7gyscK+GI5J3n8XNLCNKbszHyvuIrHfVJ
# l+lqW8aRydJfrn1Pi5/lh/5GcBpeoBQAjYrPLxocpTlf1VS1/8TocGgLAgMBAAGj
# ggEbMIIBFzAdBgNVHQ4EFgQU85RiSQuUCJR0KryRPfMVQ8K+AFQwHwYDVR0jBBgw
# FoAU1WM6XIoxkPNDe3xGG8UzaFqFbVUwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDov
# L2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljVGltU3RhUENB
# XzIwMTAtMDctMDEuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0
# cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNUaW1TdGFQQ0FfMjAx
# MC0wNy0wMS5jcnQwDAYDVR0TAQH/BAIwADATBgNVHSUEDDAKBggrBgEFBQcDCDAN
# BgkqhkiG9w0BAQsFAAOCAQEAeHkZLhdho+Jm0M2d2nfjwT/CBDO/PtS13eyvm722
# J4bqN1Kl26z+T65lxhPxBisJmSI39itM61F6U9FdmcxM9joxleIH7SeTpZMZOm+x
# 4kyF2GdywALg93RYPcdYj/91/MFsdk8/YPI8cFUPwN7P0nucgy3SvVD462WMPI76
# T8+bQMb8XsuiGYObZ0xH1SqsJntKA0SO8gREuXiLm7BZuGFCHn5mcEjy54z4j+o2
# 9nk21sKPzqhdQTDIav8WZtJTXVCkMMDfZVoUSP7ha8xzUTdfSMUAEmsgc4SJ2lN2
# bjWo1KQ1dLFB+D6PCWo+y3bcpVlfoot07xoeCNAk4DrdlTCCBnEwggRZoAMCAQIC
# CmEJgSoAAAAAAAIwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRp
# ZmljYXRlIEF1dGhvcml0eSAyMDEwMB4XDTEwMDcwMTIxMzY1NVoXDTI1MDcwMTIx
# NDY1NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNV
# BAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQG
# A1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggEiMA0GCSqGSIb3
# DQEBAQUAA4IBDwAwggEKAoIBAQCpHQ28dxGKOiDs/BOX9fp/aZRrdFQQ1aUKAIKF
# ++18aEssX8XD5WHCdrc+Zitb8BVTJwQxH0EbGpUdzgkTjnxhMFmxMEQP8WCIhFRD
# DNdNuDgIs0Ldk6zWczBXJoKjRQ3Q6vVHgc2/JGAyWGBG8lhHhjKEHnRhZ5FfgVSx
# z5NMksHEpl3RYRNuKMYa+YaAu99h/EbBJx0kZxJyGiGKr0tkiVBisV39dx898Fd1
# rL2KQk1AUdEPnAY+Z3/1ZsADlkR+79BL/W7lmsqxqPJ6Kgox8NpOBpG2iAg16Hgc
# sOmZzTznL0S6p/TcZL2kAcEgCZN4zfy8wMlEXV4WnAEFTyJNAgMBAAGjggHmMIIB
# 4jAQBgkrBgEEAYI3FQEEAwIBADAdBgNVHQ4EFgQU1WM6XIoxkPNDe3xGG8UzaFqF
# bVUwGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
# EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYD
# VR0fBE8wTTBLoEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwv
# cHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEB
# BE4wTDBKBggrBgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9j
# ZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwgaAGA1UdIAEB/wSBlTCB
# kjCBjwYJKwYBBAGCNy4DMIGBMD0GCCsGAQUFBwIBFjFodHRwOi8vd3d3Lm1pY3Jv
# c29mdC5jb20vUEtJL2RvY3MvQ1BTL2RlZmF1bHQuaHRtMEAGCCsGAQUFBwICMDQe
# MiAdAEwAZQBnAGEAbABfAFAAbwBsAGkAYwB5AF8AUwB0AGEAdABlAG0AZQBuAHQA
# LiAdMA0GCSqGSIb3DQEBCwUAA4ICAQAH5ohRDeLG4Jg/gXEDPZ2joSFvs+umzPUx
# vs8F4qn++ldtGTCzwsVmyWrf9efweL3HqJ4l4/m87WtUVwgrUYJEEvu5U4zM9GAS
# inbMQEBBm9xcF/9c+V4XNZgkVkt070IQyK+/f8Z/8jd9Wj8c8pl5SpFSAK84Dxf1
# L3mBZdmptWvkx872ynoAb0swRCQiPM/tA6WWj1kpvLb9BOFwnzJKJ/1Vry/+tuWO
# M7tiX5rbV0Dp8c6ZZpCM/2pif93FSguRJuI57BlKcWOdeyFtw5yjojz6f32WapB4
# pm3S4Zz5Hfw42JT0xqUKloakvZ4argRCg7i1gJsiOCC1JeVk7Pf0v35jWSUPei45
# V3aicaoGig+JFrphpxHLmtgOR5qAxdDNp9DvfYPw4TtxCd9ddJgiCGHasFAeb73x
# 4QDf5zEHpJM692VHeOj4qEir995yfmFrb3epgcunCaw5u+zGy9iCtHLNHfS4hQEe
# gPsbiSpUObJb2sgNVZl6h3M7COaYLeqN4DMuEin1wC9UJyH3yKxO2ii4sanblrKn
# QqLJzxlBTeCG+SqaoxFmMNO7dDJL32N79ZmKLxvHIa9Zta7cRDyXUHHXodLFVeNp
# 3lfB0d4wwP3M5k37Db9dT+mdHhk4L7zPWAUu7w2gUDXa7wknHNWzfjUeCLraNtvT
# X4/edIhJEqGCAs4wggI3AgEBMIH4oYHQpIHNMIHKMQswCQYDVQQGEwJVUzELMAkG
# A1UECBMCV0ExEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD
# b3Jwb3JhdGlvbjEtMCsGA1UECxMkTWljcm9zb2Z0IElyZWxhbmQgT3BlcmF0aW9u
# cyBMaW1pdGVkMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjoyQUQ0LTRCOTItRkEw
# MTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcG
# BSsOAwIaAxUAiOLRN/zGucSkQ6IL4N/BU+T20AyggYMwgYCkfjB8MQswCQYDVQQG
# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG
# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQg
# VGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUFAAIFAOGnDZwwIhgPMjAx
# OTEyMjAxNzA2MzZaGA8yMDE5MTIyMTE3MDYzNlowdzA9BgorBgEEAYRZCgQBMS8w
# LTAKAgUA4acNnAIBADAKAgEAAgIkDwIB/zAHAgEAAgIRoDAKAgUA4ahfHAIBADA2
# BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIB
# AAIDAYagMA0GCSqGSIb3DQEBBQUAA4GBADPWuzPDUM7W+5VD4htA7wJQ/5XwcrwA
# M1wRglcdLsEv0f6yTTcZByaUHARKtWz3GsmFlO/X0wSj/pk7eTKSC3skJI3S9gHu
# EeGqC0xo8v0Z+/3PIIOYUkc3+RDTRhU+/9WXIyJH46J8g1E7yUedJX1JwyEisvwQ
# j+tENC1/1GVjMYIDDTCCAwkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m
# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB
# IDIwMTACEzMAAAEIff9FWXBF+oQAAAAAAQgwDQYJYIZIAWUDBAIBBQCgggFKMBoG
# CSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQg2Cj5v9W9
# d0apYah/EYLGGCrPOkMBZ4/H2s0Tkc+XHNswgfoGCyqGSIb3DQEJEAIvMYHqMIHn
# MIHkMIG9BCDgAzZO4EXd9UqiFVHP2IiCy0/tDAky9BuuDiapxVmDRzCBmDCBgKR+
# MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS
# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMT
# HU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAABCH3/RVlwRfqEAAAA
# AAEIMCIEIIzPqKLkM2L0h4YVsjWuosBJQqm/llmCJdMJy1TMSrD0MA0GCSqGSIb3
# DQEBCwUABIIBAKO6YAeFd5uNT4W6IkA4OZbCexbd899kW7nHisz/rXk+bZA+tRMo
# S5jTRNIWTRchjN8+jJzQ+hpLJGP5JChcFpBhCuelIErzr6Xp7FYQQV07AwM2Pciq
# lN7uifYnwP4jp9oxMrQ6TB4Zx3RcONloJkFrt5r1lnCHBYglzjn4KpVcq8hgkV/y
# ZRK77bebvHj8aDHjjAfRiIXU0+DD39yBg7iFUiT0qMkzOXimoq2+Esd++3b2uaac
# OB4b5uK0kskg9tPqVSVBug6cJ4L8/5byQnJp4y7itlGC3hKrZ4i9aZ3hST+AABCE
# 1G5OGvuUd4RdlON3wQQ7Dgx628zjK73I5/s=
# SIG # End signature block