exports/ProxyCmdletDefinitions.ps1

<#
.Synopsis
List Kubernetes managed clusters.
.Description
List Kubernetes managed clusters.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.aks/get-azaks
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.IAksIdentity
.Inputs
System.String
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IManagedCluster
.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 <IAksIdentity>: A IAksIdentity object, normally passed through the pipeline.
  [AgentPoolName <String>]: The name of the agent pool.
  [Id <String>]: Resource identity path
  [Name <String>]: The name of the managed cluster resource.
  [ResourceGroupName <String>]: The name of the resource group.
  [RoleName <String>]: The name of the role for managed cluster accessProfile resource.
  [SubscriptionId <String>]: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.aks/get-azaks
#>

function Get-AzAks {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IManagedCluster])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String[]]
    # Subscription credentials which uniquely identify Microsoft Azure subscription.
    # The subscription ID forms part of the URI for every service call.
    ${SubscriptionId},

    [Parameter(ParameterSetName='GroupNameParameterSet', Position=0, Mandatory)]
    [Parameter(ParameterSetName='NameParameterSet', Position=0, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the resource group.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='NameParameterSet', Position=1, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the managed cluster resource.
    ${Name},

    [Parameter(ParameterSetName='InputObjectParameterSet', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.IAksIdentity]
    # A IAksIdentity object, normally passed through the pipeline.
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Alias('AzContext', 'AzureRmContext', 'AzureCredential')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

    [Parameter(ParameterSetName='IdParameterSet', Position=0, Mandatory, ValueFromPipelineByPropertyName)]
    [Alias('ResourceId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # Id of a managed Kubernetes cluster
    ${Id},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.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 = @{
            InputObjectParameterSet = 'Az.Aks.private\Get-AzAks';
            IdParameterSet = 'Az.Aks.private\Get-AzAks';
            GroupNameParameterSet = 'Az.Aks.private\Get-AzAks';
            NameParameterSet = 'Az.Aks.private\Get-AzAks';
            List = 'Az.Aks.private\Get-AzAks_List';
        }
        if (('InputObjectParameterSet', 'IdParameterSet', 'GroupNameParameterSet', 'NameParameterSet', '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
    }
}
}
<#
.Synopsis
Gets the accessProfile for the specified role name of the managed cluster with a specified resource group and name.
.Description
Gets the accessProfile for the specified role name of the managed cluster with a specified resource group and 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.aks/get-azaksaccessprofile
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.IAksIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IManagedClusterAccessProfile
.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 <IAksIdentity>: Identity Parameter
  [AgentPoolName <String>]: The name of the agent pool.
  [Id <String>]: Resource identity path
  [Name <String>]: The name of the managed cluster resource.
  [ResourceGroupName <String>]: The name of the resource group.
  [RoleName <String>]: The name of the role for managed cluster accessProfile resource.
  [SubscriptionId <String>]: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.aks/get-azaksaccessprofile
#>

function Get-AzAksAccessProfile {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IManagedClusterAccessProfile])]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the managed cluster resource.
    ${Name},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the resource group.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the role for managed cluster accessProfile resource.
    ${RoleName},

    [Parameter(ParameterSetName='Get')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String[]]
    # Subscription credentials which uniquely identify 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.Aks.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.IAksIdentity]
    # 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.Aks.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.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.Aks.private\Get-AzAksAccessProfile_Get';
            GetViaIdentity = 'Az.Aks.private\Get-AzAksAccessProfile_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
    }
}
}
<#
.Synopsis
Gets cluster admin credential of the managed cluster with a specified resource group and name.
.Description
Gets cluster admin credential of the managed cluster with a specified resource group and 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.aks/get-azaksadmincredentials
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.ICredentialResult
.Link
https://docs.microsoft.com/en-us/powershell/module/az.aks/get-azaksadmincredentials
#>

function Get-AzAksAdminCredentials {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.ICredentialResult])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the managed cluster resource.
    ${Name},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the resource group.
    ${ResourceGroupName},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String[]]
    # Subscription credentials which uniquely identify Microsoft Azure subscription.
    # The subscription ID forms part of the URI for every service call.
    ${SubscriptionId},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.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.Aks.private\Get-AzAksAdminCredentials_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
    }
}
}
<#
.Synopsis
Gets the details of the upgrade profile for an agent pool with a specified resource group and managed cluster name.
.Description
Gets the details of the upgrade profile for an agent pool with a specified resource group and managed cluster 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.aks/get-azaksagentpoolupgradeprofile
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.IAksIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IAgentPoolUpgradeProfile
.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 <IAksIdentity>: Identity Parameter
  [AgentPoolName <String>]: The name of the agent pool.
  [Id <String>]: Resource identity path
  [Name <String>]: The name of the managed cluster resource.
  [ResourceGroupName <String>]: The name of the resource group.
  [RoleName <String>]: The name of the role for managed cluster accessProfile resource.
  [SubscriptionId <String>]: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.aks/get-azaksagentpoolupgradeprofile
#>

function Get-AzAksAgentPoolUpgradeProfile {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IAgentPoolUpgradeProfile])]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the managed cluster resource.
    ${AksName},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the agent pool.
    ${Name},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the resource group.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Get')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String[]]
    # Subscription credentials which uniquely identify 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.Aks.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.IAksIdentity]
    # 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.Aks.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.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.Aks.private\Get-AzAksAgentPoolUpgradeProfile_Get';
            GetViaIdentity = 'Az.Aks.private\Get-AzAksAgentPoolUpgradeProfile_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
    }
}
}
<#
.Synopsis
Gets the details of the agent pool by managed cluster and resource group.
.Description
Gets the details of the agent pool by managed cluster and resource group.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.aks/get-azaksagentpool
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.IAksIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IAgentPool
.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 <IAksIdentity>: Identity Parameter
  [AgentPoolName <String>]: The name of the agent pool.
  [Id <String>]: Resource identity path
  [Name <String>]: The name of the managed cluster resource.
  [ResourceGroupName <String>]: The name of the resource group.
  [RoleName <String>]: The name of the role for managed cluster accessProfile resource.
  [SubscriptionId <String>]: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.aks/get-azaksagentpool
#>

function Get-AzAksAgentPool {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IAgentPool])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the managed cluster resource.
    ${AksName},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Alias('AgentPoolName')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the agent pool.
    ${Name},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the resource group.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Get')]
    [Parameter(ParameterSetName='List')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String[]]
    # Subscription credentials which uniquely identify 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.Aks.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.IAksIdentity]
    # 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.Aks.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.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.Aks.private\Get-AzAksAgentPool_Get';
            GetViaIdentity = 'Az.Aks.private\Get-AzAksAgentPool_GetViaIdentity';
            List = 'Az.Aks.private\Get-AzAksAgentPool_List';
        }
        if (('Get', '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
    }
}
}
<#
.Synopsis
Gets a list of supported versions for the specified agent pool.
.Description
Gets a list of supported versions for the specified agent pool.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.aks/get-azaksavailableagentpoolversion
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.IAksIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IAgentPoolAvailableVersions
.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 <IAksIdentity>: Identity Parameter
  [AgentPoolName <String>]: The name of the agent pool.
  [Id <String>]: Resource identity path
  [Name <String>]: The name of the managed cluster resource.
  [ResourceGroupName <String>]: The name of the resource group.
  [RoleName <String>]: The name of the role for managed cluster accessProfile resource.
  [SubscriptionId <String>]: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.aks/get-azaksavailableagentpoolversion
#>

function Get-AzAksAvailableAgentPoolVersion {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IAgentPoolAvailableVersions])]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the managed cluster resource.
    ${Name},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the resource group.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Get')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String[]]
    # Subscription credentials which uniquely identify 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.Aks.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.IAksIdentity]
    # 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.Aks.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.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.Aks.private\Get-AzAksAvailableAgentPoolVersion_Get';
            GetViaIdentity = 'Az.Aks.private\Get-AzAksAvailableAgentPoolVersion_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
    }
}
}
<#
.Synopsis
Gets the details of the upgrade profile for a managed cluster with a specified resource group and name.
.Description
Gets the details of the upgrade profile for a managed cluster with a specified resource group and 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.aks/get-azaksupgradeprofile
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.IAksIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IManagedClusterUpgradeProfile
.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 <IAksIdentity>: Identity Parameter
  [AgentPoolName <String>]: The name of the agent pool.
  [Id <String>]: Resource identity path
  [Name <String>]: The name of the managed cluster resource.
  [ResourceGroupName <String>]: The name of the resource group.
  [RoleName <String>]: The name of the role for managed cluster accessProfile resource.
  [SubscriptionId <String>]: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.aks/get-azaksupgradeprofile
#>

function Get-AzAksUpgradeProfile {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IManagedClusterUpgradeProfile])]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the managed cluster resource.
    ${Name},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the resource group.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Get')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String[]]
    # Subscription credentials which uniquely identify 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.Aks.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.IAksIdentity]
    # 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.Aks.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.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.Aks.private\Get-AzAksUpgradeProfile_Get';
            GetViaIdentity = 'Az.Aks.private\Get-AzAksUpgradeProfile_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
    }
}
}
<#
.Synopsis
Gets cluster user credential of the managed cluster with a specified resource group and name.
.Description
Gets cluster user credential of the managed cluster with a specified resource group and 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.aks/get-azaksusercredentials
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.ICredentialResult
.Link
https://docs.microsoft.com/en-us/powershell/module/az.aks/get-azaksusercredentials
#>

function Get-AzAksUserCredentials {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.ICredentialResult])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the managed cluster resource.
    ${Name},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the resource group.
    ${ResourceGroupName},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String[]]
    # Subscription credentials which uniquely identify Microsoft Azure subscription.
    # The subscription ID forms part of the URI for every service call.
    ${SubscriptionId},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.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.Aks.private\Get-AzAksUserCredentials_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
    }
}
}
<#
.Synopsis
Import and merge Kubectl config for a managed Kubernetes Cluster.
.Description
Import and merge Kubectl config for a managed Kubernetes Cluster.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.aks/import-azakscredential
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.IAksIdentity
.Inputs
System.String
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IManagedClusterAccessProfile
.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 <IAksIdentity>: An IManagedCluseter object, normally passed through the pipeline.
  [AgentPoolName <String>]: The name of the agent pool.
  [Id <String>]: Resource identity path
  [Name <String>]: The name of the managed cluster resource.
  [ResourceGroupName <String>]: The name of the resource group.
  [RoleName <String>]: The name of the role for managed cluster accessProfile resource.
  [SubscriptionId <String>]: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.aks/import-azakscredential
#>

function Import-AzAksCredential {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IManagedClusterAccessProfile])]
[CmdletBinding(DefaultParameterSetName='IdParameterSet', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # Subscription credentials which uniquely identify Microsoft Azure subscription.
    # The subscription ID forms part of the URI for every service call.
    ${SubscriptionId},

    [Parameter(ParameterSetName='InputObjectParameterSet', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.IAksIdentity]
    # An IManagedCluseter object, normally passed through the pipeline.
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Import Kubernetes config even if it is the default
    ${Force},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # A kubectl config file to create or update.
    # Use '-' to print YAML to stdout instead.
    # Default: %Home%/.kube/config.
    ${ConfigPath},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Get the 'clusterAdmin' kubectl config instead of the default 'clusterUser'.
    ${Admin},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    ${PassThru},

    [Parameter()]
    [Alias('AzContext', 'AzureRmContext', 'AzureCredential')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

    [Parameter(ParameterSetName='IdParameterSet', Position=0, Mandatory, ValueFromPipelineByPropertyName)]
    [Alias('ResourceId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # Id of a managed Kubernetes cluster
    ${Id},

    [Parameter(ParameterSetName='NameParameterSet', Position=0, Mandatory)]
    [ArgumentCompleter({param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameter); $locations = [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute]::GetResourceGroups(); $locations | Where-Object { $_ -Like "$wordToComplete*" } | ForEach-Object { [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_) }})]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # Resource group name
    ${ResourceGroupName},

    [Parameter(ParameterSetName='NameParameterSet', Position=1, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # Name of your managed Kubernetes cluster
    ${Name},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.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 = @{
            InputObjectParameterSet = 'Az.Aks.private\Import-AzAksCredential';
            IdParameterSet = 'Az.Aks.private\Import-AzAksCredential';
            NameParameterSet = 'Az.Aks.private\Import-AzAksCredential';
        }
        if (('InputObjectParameterSet', 'IdParameterSet', 'NameParameterSet') -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
    }
}
}
<#
.Synopsis
Rotate certificates of a managed cluster.
.Description
Rotate certificates of a managed cluster.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.aks/invoke-azrotateakscertificate
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.IAksIdentity
.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 <IAksIdentity>: Identity Parameter
  [AgentPoolName <String>]: The name of the agent pool.
  [Id <String>]: Resource identity path
  [Name <String>]: The name of the managed cluster resource.
  [ResourceGroupName <String>]: The name of the resource group.
  [RoleName <String>]: The name of the role for managed cluster accessProfile resource.
  [SubscriptionId <String>]: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.aks/invoke-azrotateakscertificate
#>

function Invoke-AzRotateAksCertificate {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Rotate', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Rotate', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the resource group.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Rotate', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the managed cluster resource.
    ${ResourceName},

    [Parameter(ParameterSetName='Rotate')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # Subscription credentials which uniquely identify Microsoft Azure subscription.
    # The subscription ID forms part of the URI for every service call.
    ${SubscriptionId},

    [Parameter(ParameterSetName='RotateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.IAksIdentity]
    # 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.Aks.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.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 = @{
            Rotate = 'Az.Aks.private\Invoke-AzRotateAksCertificate_Rotate';
            RotateViaIdentity = 'Az.Aks.private\Invoke-AzRotateAksCertificate_RotateViaIdentity';
        }
        if (('Rotate') -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
    }
}
}
<#
.Synopsis
Creates a managed cluster with the specified configuration for agents and Kubernetes version.
.Description
Creates a managed cluster with the specified configuration for agents and Kubernetes version.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.aks/new-azaks
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IManagedCluster
.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.
 
AGENTPOOLPROFILE <IManagedClusterAgentPoolProfile[]>: Properties of the agent pool.
  Count <Int32>: Number of agents (VMs) to host docker containers. Allowed values must be in the range of 1 to 100 (inclusive). The default value is 1.
  VMSize <ContainerServiceVMSizeTypes>: Size of agent VMs.
  [AvailabilityZone <String[]>]: (PREVIEW) Availability zones for nodes. Must use VirtualMachineScaleSets AgentPoolType.
  [EnableAutoScaling <Boolean?>]: Whether to enable auto-scaler
  [EnableNodePublicIP <Boolean?>]: Enable public IP for nodes
  [MaxCount <Int32?>]: Maximum number of nodes for auto-scaling
  [MaxPod <Int32?>]: Maximum number of pods that can run on a node.
  [MinCount <Int32?>]: Minimum number of nodes for auto-scaling
  [NodeTaint <String[]>]: Taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule.
  [OSDiskSizeGb <Int32?>]: OS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified.
  [OSType <OSType?>]: OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux.
  [OrchestratorVersion <String>]: Version of orchestrator specified when creating the managed cluster.
  [ScaleSetEvictionPolicy <ScaleSetEvictionPolicy?>]: ScaleSetEvictionPolicy to be used to specify eviction policy for low priority virtual machine scale set. Default to Delete.
  [ScaleSetPriority <ScaleSetPriority?>]: ScaleSetPriority to be used to specify virtual machine scale set priority. Default to regular.
  [Type <AgentPoolType?>]: AgentPoolType represents types of an agent pool
  [VnetSubnetId <String>]: VNet SubnetID specifies the VNet's subnet identifier.
  [Name <String>]: Unique name of the agent pool profile in the context of the subscription and resource group.
 
LOADBALANCERPROFILEEFFECTIVEOUTBOUNDIP <IResourceReference[]>: The effective outbound IP resources of the cluster load balancer.
  [Id <String>]: The fully qualified Azure resource id.
 
OUTBOUNDIPPREFIXPUBLICIPPREFIX <IResourceReference[]>: A list of public IP prefix resources.
  [Id <String>]: The fully qualified Azure resource id.
 
OUTBOUNDIPPUBLICIP <IResourceReference[]>: A list of public IP resources.
  [Id <String>]: The fully qualified Azure resource id.
 
SSHPUBLICKEY <IContainerServiceSshPublicKey[]>: The list of SSH public keys used to authenticate with Linux-based VMs. Only expect one key specified.
  KeyData <String>: Certificate public key used to authenticate with VMs through SSH. The certificate must be in PEM format with or without headers.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.aks/new-azaks
#>

function New-AzAks {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IManagedCluster])]
[CmdletBinding(DefaultParameterSetName='NameParameterSet', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(Position=0, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the resource group.
    ${ResourceGroupName},

    [Parameter(Position=1, Mandatory)]
    [Alias('ResourceName')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the managed cluster resource.
    ${Name},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # Subscription credentials which uniquely identify Microsoft Azure subscription.
    # The subscription ID forms part of the URI for every service call.
    ${SubscriptionId},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Int32]
    # The default number of nodes for the node pools.
    ${NodeCount},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Int32]
    # The default number of nodes for the node pools.
    ${NodeOsDiskSize},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # The size of the Virtual Machine.
    ${NodeVmSize},

    [Parameter()]
    [Alias('SshKeyPath')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # SSH key file value or key file path.
    # Defaults to {HOME}/.ssh/id_rsa.pub.
    ${SshKeyValue},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # The client AAD application ID.
    ${AadProfileClientAppId},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # The server AAD application ID.
    ${AadProfileServerAppId},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # The server AAD application secret.
    ${AadProfileServerAppSecret},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # The AAD tenant ID to use for authentication.
    # If not specified, will use the tenant of the deployment subscription.
    ${AadProfileTenantId},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IManagedClusterPropertiesAddonProfiles]))]
    [System.Collections.Hashtable]
    # Profile of managed cluster add-on.
    ${AddOnProfile},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IManagedClusterAgentPoolProfile[]]
    # Properties of the agent pool.
    # To construct, see NOTES section for AGENTPOOLPROFILE properties and create a hash table.
    ${AgentPoolProfile},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String[]]
    # Authorized IP Ranges to kubernetes API server.
    ${AuthorizedIPRange},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Whether to create the cluster as a private cluster or not.
    ${EnablePrivateCluster},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # DNS prefix specified when creating the managed cluster.
    ${DnsPrefix},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # (PREVIEW) Whether to enable Kubernetes Pod security policy.
    ${EnablePodSecurityPolicy},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Whether to enable Kubernetes Role-Based Access Control.
    ${EnableRbac},

    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.ResourceIdentityType])]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.ResourceIdentityType]
    # The type of identity used for the managed cluster.
    # Type 'SystemAssigned' will use an implicitly created identity in master components and an auto-created user assigned identity in MC_ resource group in agent nodes.
    # Type 'None' will not use MSI for the managed cluster, service principal will be used instead.
    ${IdentityType},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # Version of Kubernetes specified when creating the managed cluster.
    ${KubernetesVersion},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # The administrator username to use for Linux VMs.
    ${LinuxProfileAdminUsername},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IResourceReference[]]
    # The effective outbound IP resources of the cluster load balancer.
    # To construct, see NOTES section for LOADBALANCERPROFILEEFFECTIVEOUTBOUNDIP properties and create a hash table.
    ${LoadBalancerProfileEffectiveOutboundIP},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # Resource location
    ${Location},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Int32]
    # Desired number of outbound IP created/managed by Azure for the cluster load balancer.
    # Allowed values must be in the range of 1 to 100 (inclusive).
    # The default value is 1.
    ${ManagedOutboundIPCount},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # An IP address assigned to the Kubernetes DNS service.
    # It must be within the Kubernetes service address range specified in serviceCidr.
    ${DnsServiceIP},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # A CIDR notation IP range assigned to the Docker bridge network.
    # It must not overlap with any Subnet IP ranges or the Kubernetes service address range.
    ${DockerBridgeCidr},

    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.LoadBalancerSku])]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.LoadBalancerSku]
    # The load balancer sku for the managed cluster.
    ${LoadBalancerSku},

    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.NetworkPlugin])]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.NetworkPlugin]
    # Network plugin used for building Kubernetes network.
    ${NetworkPlugin},

    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.NetworkPolicy])]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.NetworkPolicy]
    # Network policy used for building Kubernetes network.
    ${NetworkPolicy},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # A CIDR notation IP range from which to assign pod IPs when kubenet is used.
    ${PodCidr},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # A CIDR notation IP range from which to assign service cluster IPs.
    # It must not overlap with any Subnet IP ranges.
    ${ServiceCidr},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # Name of the resource group containing agent pool nodes.
    ${NodeResourceGroup},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IResourceReference[]]
    # A list of public IP prefix resources.
    # To construct, see NOTES section for OUTBOUNDIPPREFIXPUBLICIPPREFIX properties and create a hash table.
    ${OutboundIPPrefixPublicIpprefix},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IResourceReference[]]
    # A list of public IP resources.
    # To construct, see NOTES section for OUTBOUNDIPPUBLICIP properties and create a hash table.
    ${OutboundIPPublicIP},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # The ID for the service principal.
    ${ServicePrincipalProfileClientId},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # The secret password associated with the service principal in plain text.
    ${ServicePrincipalProfileSecret},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IContainerServiceSshPublicKey[]]
    # The list of SSH public keys used to authenticate with Linux-based VMs.
    # Only expect one key specified.
    # To construct, see NOTES section for SSHPUBLICKEY properties and create a hash table.
    ${SshPublicKey},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IResourceTags]))]
    [System.Collections.Hashtable]
    # Resource tags
    ${Tag},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Security.SecureString]
    # The administrator password to use for Windows VMs.
    ${WindowProfileAdminPassword},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # The administrator username to use for Windows VMs.
    ${WindowProfileAdminUsername},

    [Parameter()]
    [Alias('AzContext', 'AzureRmContext', 'AzureCredential')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.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 = @{
            NameParameterSet = 'Az.Aks.private\New-AzAks';
        }
        if (('NameParameterSet') -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
    }
}
}
<#
.Synopsis
Creates or updates an agent pool in the specified managed cluster.
.Description
Creates or updates an agent pool in the specified managed cluster.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.aks/new-azaksagentpool
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IAgentPool
.Link
https://docs.microsoft.com/en-us/powershell/module/az.aks/new-azaksagentpool
#>

function New-AzAksAgentPool {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IAgentPool])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the managed cluster resource.
    ${AksName},

    [Parameter(Mandatory)]
    [Alias('AgentPoolName')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the agent pool.
    ${Name},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the resource group.
    ${ResourceGroupName},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # Subscription credentials which uniquely identify Microsoft Azure subscription.
    # The subscription ID forms part of the URI for every service call.
    ${SubscriptionId},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String[]]
    # (PREVIEW) Availability zones for nodes.
    # Must use VirtualMachineScaleSets AgentPoolType.
    ${AvailabilityZone},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Int32]
    # Number of agents (VMs) to host docker containers.
    # Allowed values must be in the range of 1 to 100 (inclusive).
    # The default value is 1.
    ${Count},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Whether to enable auto-scaler
    ${EnableAutoScaling},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Enable public IP for nodes
    ${EnableNodePublicIP},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Int32]
    # Maximum number of nodes for auto-scaling
    ${MaxCount},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Int32]
    # Maximum number of pods that can run on a node.
    ${MaxPod},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Int32]
    # Minimum number of nodes for auto-scaling
    ${MinCount},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String[]]
    # Taints added to new nodes during node pool create and scale.
    # For example, key=value:NoSchedule.
    ${NodeTaint},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Int32]
    # OS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool.
    # If you specify 0, it will apply the default osDisk size according to the vmSize specified.
    ${OSDiskSizeGb},

    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.OSType])]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.OSType]
    # OsType to be used to specify os type.
    # Choose from Linux and Windows.
    # Default to Linux.
    ${OSType},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # Version of orchestrator specified when creating the managed cluster.
    ${OrchestratorVersion},

    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.ScaleSetEvictionPolicy])]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.ScaleSetEvictionPolicy]
    # ScaleSetEvictionPolicy to be used to specify eviction policy for low priority virtual machine scale set.
    # Default to Delete.
    ${ScaleSetEvictionPolicy},

    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.ScaleSetPriority])]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.ScaleSetPriority]
    # ScaleSetPriority to be used to specify virtual machine scale set priority.
    # Default to regular.
    ${ScaleSetPriority},

    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.AgentPoolType])]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.AgentPoolType]
    # AgentPoolType represents types of an agent pool
    ${Type},

    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.ContainerServiceVMSizeTypes])]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.ContainerServiceVMSizeTypes]
    # Size of agent VMs.
    ${VMSize},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # VNet SubnetID specifies the VNet's subnet identifier.
    ${VnetSubnetId},

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

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

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.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 = @{
            CreateExpanded = 'Az.Aks.private\New-AzAksAgentPool_CreateExpanded';
        }
        if (('CreateExpanded') -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
    }
}
}
<#
.Synopsis
Deletes the managed cluster with a specified resource group and name.
.Description
Deletes the managed cluster with a specified resource group and 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.aks/remove-azaks
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.IAksIdentity
.Inputs
System.String
.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 <IAksIdentity>: A IAksIdentity object, normally passed through the pipeline.
  [AgentPoolName <String>]: The name of the agent pool.
  [Id <String>]: Resource identity path
  [Name <String>]: The name of the managed cluster resource.
  [ResourceGroupName <String>]: The name of the resource group.
  [RoleName <String>]: The name of the role for managed cluster accessProfile resource.
  [SubscriptionId <String>]: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.aks/remove-azaks
#>

function Remove-AzAks {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='IdParameterSet', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # Subscription credentials which uniquely identify Microsoft Azure subscription.
    # The subscription ID forms part of the URI for every service call.
    ${SubscriptionId},

    [Parameter(ParameterSetName='InputObjectParameterSet', Position=0, Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.IAksIdentity]
    # A IAksIdentity object, normally passed through the pipeline.
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Alias('AzContext', 'AzureRmContext', 'AzureCredential')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

    [Parameter(ParameterSetName='IdParameterSet', Position=0, Mandatory, ValueFromPipelineByPropertyName)]
    [Alias('ResourceId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # Id of a managed Kubernetes cluster
    ${Id},

    [Parameter(ParameterSetName='GroupNameParameterSet', Position=0, Mandatory)]
    [ArgumentCompleter({param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameter); $locations = [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute]::GetResourceGroups(); $locations | Where-Object { $_ -Like "$wordToComplete*" } | ForEach-Object { [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_) }})]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # Resource group name
    ${ResourceGroupName},

    [Parameter(ParameterSetName='GroupNameParameterSet', Position=1, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # Name of your managed Kubernetes cluster
    ${Name},

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

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

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.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 = @{
            InputObjectParameterSet = 'Az.Aks.private\Remove-AzAks';
            IdParameterSet = 'Az.Aks.private\Remove-AzAks';
            GroupNameParameterSet = 'Az.Aks.private\Remove-AzAks';
        }
        if (('InputObjectParameterSet', 'IdParameterSet', 'GroupNameParameterSet') -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
    }
}
}
<#
.Synopsis
Deletes the agent pool in the specified managed cluster.
.Description
Deletes the agent pool in the specified managed cluster.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.aks/remove-azaksagentpool
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.IAksIdentity
.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 <IAksIdentity>: Identity Parameter
  [AgentPoolName <String>]: The name of the agent pool.
  [Id <String>]: Resource identity path
  [Name <String>]: The name of the managed cluster resource.
  [ResourceGroupName <String>]: The name of the resource group.
  [RoleName <String>]: The name of the role for managed cluster accessProfile resource.
  [SubscriptionId <String>]: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.aks/remove-azaksagentpool
#>

function Remove-AzAksAgentPool {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the managed cluster resource.
    ${AksName},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Alias('AgentPoolName')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the agent pool.
    ${Name},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the resource group.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Delete')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # Subscription credentials which uniquely identify Microsoft Azure subscription.
    # The subscription ID forms part of the URI for every service call.
    ${SubscriptionId},

    [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.IAksIdentity]
    # 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.Aks.Category('Azure')]
    [System.Management.Automation.PSObject]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

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

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

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.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.Aks.private\Remove-AzAksAgentPool_Delete';
            DeleteViaIdentity = 'Az.Aks.private\Remove-AzAksAgentPool_DeleteViaIdentity';
        }
        if (('Delete') -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
    }
}
}
<#
.Synopsis
Update the AAD Profile for a managed cluster.
.Description
Update the AAD Profile for a managed cluster.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.aks/reset-azaksaadprofile
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.IAksIdentity
.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 <IAksIdentity>: Identity Parameter
  [AgentPoolName <String>]: The name of the agent pool.
  [Id <String>]: Resource identity path
  [Name <String>]: The name of the managed cluster resource.
  [ResourceGroupName <String>]: The name of the resource group.
  [RoleName <String>]: The name of the role for managed cluster accessProfile resource.
  [SubscriptionId <String>]: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.aks/reset-azaksaadprofile
#>

function Reset-AzAksAadProfile {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='ResetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='ResetExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the managed cluster resource.
    ${Name},

    [Parameter(ParameterSetName='ResetExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the resource group.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='ResetExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # Subscription credentials which uniquely identify Microsoft Azure subscription.
    # The subscription ID forms part of the URI for every service call.
    ${SubscriptionId},

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

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # The client AAD application ID.
    ${ClientAppId},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # The server AAD application ID.
    ${ServerAppId},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # The server AAD application secret.
    ${ServerAppSecret},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # The AAD tenant ID to use for authentication.
    # If not specified, will use the tenant of the deployment subscription.
    ${TenantId},

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

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

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

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.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 = @{
            ResetExpanded = 'Az.Aks.private\Reset-AzAksAadProfile_ResetExpanded';
            ResetViaIdentityExpanded = 'Az.Aks.private\Reset-AzAksAadProfile_ResetViaIdentityExpanded';
        }
        if (('ResetExpanded') -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
    }
}
}
<#
.Synopsis
Update the service principal Profile for a managed cluster.
.Description
Update the service principal Profile for a managed cluster.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.aks/reset-azaksserviceprincipalprofile
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.IAksIdentity
.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 <IAksIdentity>: Identity Parameter
  [AgentPoolName <String>]: The name of the agent pool.
  [Id <String>]: Resource identity path
  [Name <String>]: The name of the managed cluster resource.
  [ResourceGroupName <String>]: The name of the resource group.
  [RoleName <String>]: The name of the role for managed cluster accessProfile resource.
  [SubscriptionId <String>]: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.aks/reset-azaksserviceprincipalprofile
#>

function Reset-AzAksServicePrincipalProfile {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='ResetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='ResetExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the managed cluster resource.
    ${Name},

    [Parameter(ParameterSetName='ResetExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the resource group.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='ResetExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # Subscription credentials which uniquely identify Microsoft Azure subscription.
    # The subscription ID forms part of the URI for every service call.
    ${SubscriptionId},

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

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # The ID for the service principal.
    ${ClientId},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # The secret password associated with the service principal in plain text.
    ${Secret},

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

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

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

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.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 = @{
            ResetExpanded = 'Az.Aks.private\Reset-AzAksServicePrincipalProfile_ResetExpanded';
            ResetViaIdentityExpanded = 'Az.Aks.private\Reset-AzAksServicePrincipalProfile_ResetViaIdentityExpanded';
        }
        if (('ResetExpanded') -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
    }
}
}
<#
.Synopsis
Updates a managed cluster with the specified configuration for agents and Kubernetes version.
.Description
Updates a managed cluster with the specified configuration for agents and Kubernetes version.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.aks/set-azaks
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.IAksIdentity
.Inputs
System.String
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IManagedCluster
.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.
 
AGENTPOOLPROFILE <IManagedClusterAgentPoolProfile[]>: Properties of the agent pool.
  Count <Int32>: Number of agents (VMs) to host docker containers. Allowed values must be in the range of 1 to 100 (inclusive). The default value is 1.
  VMSize <ContainerServiceVMSizeTypes>: Size of agent VMs.
  [AvailabilityZone <String[]>]: (PREVIEW) Availability zones for nodes. Must use VirtualMachineScaleSets AgentPoolType.
  [EnableAutoScaling <Boolean?>]: Whether to enable auto-scaler
  [EnableNodePublicIP <Boolean?>]: Enable public IP for nodes
  [MaxCount <Int32?>]: Maximum number of nodes for auto-scaling
  [MaxPod <Int32?>]: Maximum number of pods that can run on a node.
  [MinCount <Int32?>]: Minimum number of nodes for auto-scaling
  [NodeTaint <String[]>]: Taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule.
  [OSDiskSizeGb <Int32?>]: OS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified.
  [OSType <OSType?>]: OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux.
  [OrchestratorVersion <String>]: Version of orchestrator specified when creating the managed cluster.
  [ScaleSetEvictionPolicy <ScaleSetEvictionPolicy?>]: ScaleSetEvictionPolicy to be used to specify eviction policy for low priority virtual machine scale set. Default to Delete.
  [ScaleSetPriority <ScaleSetPriority?>]: ScaleSetPriority to be used to specify virtual machine scale set priority. Default to regular.
  [Type <AgentPoolType?>]: AgentPoolType represents types of an agent pool
  [VnetSubnetId <String>]: VNet SubnetID specifies the VNet's subnet identifier.
  [Name <String>]: Unique name of the agent pool profile in the context of the subscription and resource group.
 
INPUTOBJECT <IAksIdentity>: A IAksIdentity object, normally passed through the pipeline.
  [AgentPoolName <String>]: The name of the agent pool.
  [Id <String>]: Resource identity path
  [Name <String>]: The name of the managed cluster resource.
  [ResourceGroupName <String>]: The name of the resource group.
  [RoleName <String>]: The name of the role for managed cluster accessProfile resource.
  [SubscriptionId <String>]: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
 
LOADBALANCERPROFILEEFFECTIVEOUTBOUNDIP <IResourceReference[]>: The effective outbound IP resources of the cluster load balancer.
  [Id <String>]: The fully qualified Azure resource id.
 
OUTBOUNDIPPREFIXPUBLICIPPREFIX <IResourceReference[]>: A list of public IP prefix resources.
  [Id <String>]: The fully qualified Azure resource id.
 
OUTBOUNDIPPUBLICIP <IResourceReference[]>: A list of public IP resources.
  [Id <String>]: The fully qualified Azure resource id.
 
SSHPUBLICKEY <IContainerServiceSshPublicKey[]>: The list of SSH public keys used to authenticate with Linux-based VMs. Only expect one key specified.
  KeyData <String>: Certificate public key used to authenticate with VMs through SSH. The certificate must be in PEM format with or without headers.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.aks/set-azaks
#>

function Set-AzAks {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IManagedCluster])]
[CmdletBinding(DefaultParameterSetName='IdParameterSet', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # Subscription credentials which uniquely identify Microsoft Azure subscription.
    # The subscription ID forms part of the URI for every service call.
    ${SubscriptionId},

    [Parameter(ParameterSetName='NameParameterSet', Position=0, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the resource group.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='NameParameterSet', Position=1, Mandatory)]
    [Alias('ResourceName')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the managed cluster resource.
    ${Name},

    [Parameter(ParameterSetName='InputObjectParameterSet', Position=0, Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.IAksIdentity]
    # A IAksIdentity object, normally passed through the pipeline.
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Int32]
    # The default number of nodes for the node pools.
    ${NodeCount},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Int32]
    # The default number of nodes for the node pools.
    ${NodeOsDiskSize},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # The size of the Virtual Machine.
    ${NodeVmSize},

    [Parameter()]
    [Alias('SshKeyPath')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # SSH key file value or key file path.
    # Defaults to {HOME}/.ssh/id_rsa.pub.
    ${SshKeyValue},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # The client AAD application ID.
    ${AadProfileClientAppId},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # The server AAD application ID.
    ${AadProfileServerAppId},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # The server AAD application secret.
    ${AadProfileServerAppSecret},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # The AAD tenant ID to use for authentication.
    # If not specified, will use the tenant of the deployment subscription.
    ${AadProfileTenantId},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IManagedClusterPropertiesAddonProfiles]))]
    [System.Collections.Hashtable]
    # Profile of managed cluster add-on.
    ${AddOnProfile},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IManagedClusterAgentPoolProfile[]]
    # Properties of the agent pool.
    # To construct, see NOTES section for AGENTPOOLPROFILE properties and create a hash table.
    ${AgentPoolProfile},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String[]]
    # Authorized IP Ranges to kubernetes API server.
    ${AuthorizedIPRange},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Whether to create the cluster as a private cluster or not.
    ${EnablePrivateCluster},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # DNS prefix specified when creating the managed cluster.
    ${DnsPrefix},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # (PREVIEW) Whether to enable Kubernetes Pod security policy.
    ${EnablePodSecurityPolicy},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Whether to enable Kubernetes Role-Based Access Control.
    ${EnableRbac},

    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.ResourceIdentityType])]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.ResourceIdentityType]
    # The type of identity used for the managed cluster.
    # Type 'SystemAssigned' will use an implicitly created identity in master components and an auto-created user assigned identity in MC_ resource group in agent nodes.
    # Type 'None' will not use MSI for the managed cluster, service principal will be used instead.
    ${IdentityType},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # Version of Kubernetes specified when creating the managed cluster.
    ${KubernetesVersion},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # The administrator username to use for Linux VMs.
    ${LinuxProfileAdminUsername},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IResourceReference[]]
    # The effective outbound IP resources of the cluster load balancer.
    # To construct, see NOTES section for LOADBALANCERPROFILEEFFECTIVEOUTBOUNDIP properties and create a hash table.
    ${LoadBalancerProfileEffectiveOutboundIP},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # Resource location
    ${Location},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Int32]
    # Desired number of outbound IP created/managed by Azure for the cluster load balancer.
    # Allowed values must be in the range of 1 to 100 (inclusive).
    # The default value is 1.
    ${ManagedOutboundIPCount},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # An IP address assigned to the Kubernetes DNS service.
    # It must be within the Kubernetes service address range specified in serviceCidr.
    ${DnsServiceIP},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # A CIDR notation IP range assigned to the Docker bridge network.
    # It must not overlap with any Subnet IP ranges or the Kubernetes service address range.
    ${DockerBridgeCidr},

    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.LoadBalancerSku])]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.LoadBalancerSku]
    # The load balancer sku for the managed cluster.
    ${LoadBalancerSku},

    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.NetworkPlugin])]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.NetworkPlugin]
    # Network plugin used for building Kubernetes network.
    ${NetworkPlugin},

    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.NetworkPolicy])]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.NetworkPolicy]
    # Network policy used for building Kubernetes network.
    ${NetworkPolicy},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # A CIDR notation IP range from which to assign pod IPs when kubenet is used.
    ${PodCidr},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # A CIDR notation IP range from which to assign service cluster IPs.
    # It must not overlap with any Subnet IP ranges.
    ${ServiceCidr},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # Name of the resource group containing agent pool nodes.
    ${NodeResourceGroup},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IResourceReference[]]
    # A list of public IP prefix resources.
    # To construct, see NOTES section for OUTBOUNDIPPREFIXPUBLICIPPREFIX properties and create a hash table.
    ${OutboundIPPrefixPublicIpprefix},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IResourceReference[]]
    # A list of public IP resources.
    # To construct, see NOTES section for OUTBOUNDIPPUBLICIP properties and create a hash table.
    ${OutboundIPPublicIP},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # The ID for the service principal.
    ${ServicePrincipalProfileClientId},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # The secret password associated with the service principal in plain text.
    ${ServicePrincipalProfileSecret},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IContainerServiceSshPublicKey[]]
    # The list of SSH public keys used to authenticate with Linux-based VMs.
    # Only expect one key specified.
    # To construct, see NOTES section for SSHPUBLICKEY properties and create a hash table.
    ${SshPublicKey},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IResourceTags]))]
    [System.Collections.Hashtable]
    # Resource tags
    ${Tag},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Security.SecureString]
    # The administrator password to use for Windows VMs.
    ${WindowProfileAdminPassword},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # The administrator username to use for Windows VMs.
    ${WindowProfileAdminUsername},

    [Parameter()]
    [Alias('AzContext', 'AzureRmContext', 'AzureCredential')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

    [Parameter(ParameterSetName='IdParameterSet', Position=0, Mandatory, ValueFromPipelineByPropertyName)]
    [Alias('ResourceId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # Id of a managed Kubernetes cluster
    ${Id},

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

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.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 = @{
            InputObjectParameterSet = 'Az.Aks.private\Set-AzAks';
            IdParameterSet = 'Az.Aks.private\Set-AzAks';
            NameParameterSet = 'Az.Aks.private\Set-AzAks';
        }
        if (('InputObjectParameterSet', 'IdParameterSet', 'NameParameterSet') -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
    }
}
}
<#
.Synopsis
Creates or updates an agent pool in the specified managed cluster.
.Description
Creates or updates an agent pool in the specified managed cluster.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.aks/set-azaksagentpool
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IAgentPool
.Link
https://docs.microsoft.com/en-us/powershell/module/az.aks/set-azaksagentpool
#>

function Set-AzAksAgentPool {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IAgentPool])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the managed cluster resource.
    ${AksName},

    [Parameter(Mandatory)]
    [Alias('AgentPoolName')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the agent pool.
    ${Name},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the resource group.
    ${ResourceGroupName},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # Subscription credentials which uniquely identify Microsoft Azure subscription.
    # The subscription ID forms part of the URI for every service call.
    ${SubscriptionId},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String[]]
    # (PREVIEW) Availability zones for nodes.
    # Must use VirtualMachineScaleSets AgentPoolType.
    ${AvailabilityZone},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Int32]
    # Number of agents (VMs) to host docker containers.
    # Allowed values must be in the range of 1 to 100 (inclusive).
    # The default value is 1.
    ${Count},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Whether to enable auto-scaler
    ${EnableAutoScaling},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Enable public IP for nodes
    ${EnableNodePublicIP},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Int32]
    # Maximum number of nodes for auto-scaling
    ${MaxCount},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Int32]
    # Maximum number of pods that can run on a node.
    ${MaxPod},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Int32]
    # Minimum number of nodes for auto-scaling
    ${MinCount},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String[]]
    # Taints added to new nodes during node pool create and scale.
    # For example, key=value:NoSchedule.
    ${NodeTaint},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Int32]
    # OS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool.
    # If you specify 0, it will apply the default osDisk size according to the vmSize specified.
    ${OSDiskSizeGb},

    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.OSType])]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.OSType]
    # OsType to be used to specify os type.
    # Choose from Linux and Windows.
    # Default to Linux.
    ${OSType},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # Version of orchestrator specified when creating the managed cluster.
    ${OrchestratorVersion},

    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.ScaleSetEvictionPolicy])]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.ScaleSetEvictionPolicy]
    # ScaleSetEvictionPolicy to be used to specify eviction policy for low priority virtual machine scale set.
    # Default to Delete.
    ${ScaleSetEvictionPolicy},

    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.ScaleSetPriority])]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.ScaleSetPriority]
    # ScaleSetPriority to be used to specify virtual machine scale set priority.
    # Default to regular.
    ${ScaleSetPriority},

    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.AgentPoolType])]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.AgentPoolType]
    # AgentPoolType represents types of an agent pool
    ${Type},

    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.ContainerServiceVMSizeTypes])]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Support.ContainerServiceVMSizeTypes]
    # Size of agent VMs.
    ${VMSize},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # VNet SubnetID specifies the VNet's subnet identifier.
    ${VnetSubnetId},

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

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

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.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 = @{
            UpdateExpanded = 'Az.Aks.private\Set-AzAksAgentPool_UpdateExpanded';
        }
        if (('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
    }
}
}
<#
.Synopsis
Create a Kubectl SSH tunnel to the managed cluster's dashboard.
.Description
Create a Kubectl SSH tunnel to the managed cluster's dashboard.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.aks/start-azaksdashboard
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.IAksIdentity
.Inputs
System.String
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.custom.KubeTunnelJob
.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 <IAksIdentity>: A IAksIdentity object, normally passed through the pipeline.
  [AgentPoolName <String>]: The name of the agent pool.
  [Id <String>]: Resource identity path
  [Name <String>]: The name of the managed cluster resource.
  [ResourceGroupName <String>]: The name of the resource group.
  [RoleName <String>]: The name of the role for managed cluster accessProfile resource.
  [SubscriptionId <String>]: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.aks/start-azaksdashboard
#>

function Start-AzAksDashboard {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Aks.custom.KubeTunnelJob])]
[CmdletBinding(DefaultParameterSetName='IdParameterSet', PositionalBinding=$false)]
param(
    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # Subscription credentials which uniquely identify Microsoft Azure subscription.
    # The subscription ID forms part of the URI for every service call.
    ${SubscriptionId},

    [Parameter(ParameterSetName='InputObjectParameterSet', Position=0, Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.IAksIdentity]
    # A IAksIdentity object, normally passed through the pipeline.
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Do not pop open a browser after establishing the kubectl port-forward.
    ${DisableBrowser},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    ${PassThru},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Int32]
    # The listening port for the dashboard.
    # Default value is 8003.
    ${ListenPort},

    [Parameter()]
    [Alias('AzContext', 'AzureRmContext', 'AzureCredential')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile},

    [Parameter(ParameterSetName='IdParameterSet', Position=0, Mandatory, ValueFromPipelineByPropertyName)]
    [Alias('ResourceId')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # Id of a managed Kubernetes cluster
    ${Id},

    [Parameter(ParameterSetName='NameParameterSet', Position=0, Mandatory)]
    [ArgumentCompleter({param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameter); $locations = [Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters.ResourceGroupCompleterAttribute]::GetResourceGroups(); $locations | Where-Object { $_ -Like "$wordToComplete*" } | ForEach-Object { [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_) }})]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # Resource group name
    ${ResourceGroupName},

    [Parameter(ParameterSetName='NameParameterSet', Position=1, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.String]
    # Name of your managed Kubernetes cluster
    ${Name},

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.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 = @{
            InputObjectParameterSet = 'Az.Aks.private\Start-AzAksDashboard';
            IdParameterSet = 'Az.Aks.private\Start-AzAksDashboard';
            NameParameterSet = 'Az.Aks.private\Start-AzAksDashboard';
        }
        if (('InputObjectParameterSet', 'IdParameterSet', 'NameParameterSet') -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
    }
}
}
<#
.Synopsis
Stop the Kubectl SSH tunnel created in Start-AzKubernetesDashboard.
.Description
Stop the Kubectl SSH tunnel created in Start-AzKubernetesDashboard.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.aks/stop-azaksdashboard
.Outputs
System.Boolean
.Link
https://docs.microsoft.com/en-us/powershell/module/az.aks/stop-azaksdashboard
#>

function Stop-AzAksDashboard {
[OutputType([System.Boolean])]
[CmdletBinding(PositionalBinding=$false)]
param(
    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # Subscription credentials which uniquely identify Microsoft Azure subscription.
    # The subscription ID forms part of the URI for every service call.
    ${SubscriptionId},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    ${PassThru},

    [Parameter()]
    [Alias('AzContext', 'AzureRmContext', 'AzureCredential')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer]
    # The credentials, account, tenant, and subscription used for communication with Azure.
    ${DefaultProfile}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            __AllParameterSets = 'Az.Aks.private\Stop-AzAksDashboard';
        }
        if (('__AllParameterSets') -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
    }
}
}
<#
.Synopsis
Updates a managed cluster with the specified tags.
.Description
Updates a managed cluster with the specified tags.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.aks/update-azakstag
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.ITagsObject
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.IAksIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IManagedCluster
.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 <IAksIdentity>: Identity Parameter
  [AgentPoolName <String>]: The name of the agent pool.
  [Id <String>]: Resource identity path
  [Name <String>]: The name of the managed cluster resource.
  [ResourceGroupName <String>]: The name of the resource group.
  [RoleName <String>]: The name of the role for managed cluster accessProfile resource.
  [SubscriptionId <String>]: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
 
PARAMETER <ITagsObject>: Tags object for patch operations.
  [Tag <ITagsObjectTags>]: Resource tags.
    [(Any) <String>]: This indicates any property can be added to this object.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.aks/update-azakstag
#>

function Update-AzAksTag {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.IManagedCluster])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the managed cluster resource.
    ${Name},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [System.String]
    # The name of the resource group.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Update')]
    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # Subscription credentials which uniquely identify Microsoft Azure subscription.
    # The subscription ID forms part of the URI for every service call.
    ${SubscriptionId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.IAksIdentity]
    # 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.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.ITagsObject]
    # Tags object for patch operations.
    # To construct, see NOTES section for PARAMETER properties and create a hash table.
    ${Parameter},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Aks.Models.Api20191001.ITagsObjectTags]))]
    [System.Collections.Hashtable]
    # Resource tags.
    ${Tag},

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

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

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Aks.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.Aks.private\Update-AzAksTag_Update';
            UpdateExpanded = 'Az.Aks.private\Update-AzAksTag_UpdateExpanded';
            UpdateViaIdentity = 'Az.Aks.private\Update-AzAksTag_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Az.Aks.private\Update-AzAksTag_UpdateViaIdentityExpanded';
        }
        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
    }
}
}

# SIG # Begin signature block
# MIIjgwYJKoZIhvcNAQcCoIIjdDCCI3ACAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAI22gDajtD3nOc
# qW/ENbxJ/poNv8etTrw2AVDudBDzOqCCDYEwggX/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/BvW1taslScxMNelDNMYIVWDCCFVQCAQEwgZUwfjELMAkG
# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx
# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z
# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAVGejY9AcaMOQQAAAAABUTAN
# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor
# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgssIysgDm
# AQUUPtwQZScOZhnhgisll4ZbsIVI8cWvXxswQgYKKwYBBAGCNwIBDDE0MDKgFIAS
# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN
# BgkqhkiG9w0BAQEFAASCAQCOngnGbS8kPY0xWDqZnHYJWMloMlYbFzAVvLec/079
# EanloAHuMAL1C9LJx7mJ7fTcNn8xCNFefl2CYE5kL0ygpfZsgu2iQyONP6zP1wUi
# LEENz3VF0ToHD4FwRyUCWhFYVP8slbIQB4s1xPVRagTvOO3/qFLD8TZfVfvaksPa
# v9n3R865K1kZMedzmryRhVwJ9Bxl7qP1JP0NUnPszkqzvdnFriUq4lB79EPY5SGO
# DCad8O89KNS2claJw0+KWkzCseM52BHUvlebHHf8WlpFHbbiSAWrdtQRzxZEiliG
# /LiWHglpG9ne6XC+XLhjIJlPYGSTHNSia6sMR0OTO9fgoYIS4jCCEt4GCisGAQQB
# gjcDAwExghLOMIISygYJKoZIhvcNAQcCoIISuzCCErcCAQMxDzANBglghkgBZQME
# AgEFADCCAVEGCyqGSIb3DQEJEAEEoIIBQASCATwwggE4AgEBBgorBgEEAYRZCgMB
# MDEwDQYJYIZIAWUDBAIBBQAEILDL384fXcPRfDTK2hJNdLfCHqCtYzToOKcsY3fQ
# DmFNAgZdtwCUEVgYEzIwMTkxMTA0MDUyMTM3LjMxNVowBIACAfSggdCkgc0wgcox
# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt
# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1p
# Y3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJjAkBgNVBAsTHVRoYWxlcyBUU1Mg
# RVNOOjdCRjEtRTNFQS1CODA4MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFt
# cCBTZXJ2aWNloIIOOTCCBPEwggPZoAMCAQICEzMAAAD2rM92KnN0mtoAAAAAAPYw
# DQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0
# b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh
# dGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwHhcN
# MTgxMDI0MjExNDI3WhcNMjAwMTEwMjExNDI3WjCByjELMAkGA1UEBhMCVVMxEzAR
# BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1p
# Y3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2Eg
# T3BlcmF0aW9uczEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046N0JGMS1FM0VBLUI4
# MDgxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggEiMA0G
# CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUmrVAwDHtx3rsVppuWDzC8TXEAXtm
# AUD6639Of0V6AYaoHuLpUKSE96VNJ8lHfIV6QX0TdLD5k/Yhx7Mq9uvk9e3RK+2f
# kGoEatgrb5cWSOyMg3NfOwTX5J5gmRPTiGQzCYXxdGmF6zEIwxRNuWb4tUQkWtir
# kggkKajWSf1s4NLZaq18z9P5P6tUoBF5gdXdhCNClVbmvH/o76zezFAUo3vs7yT6
# 78j+lY6dXAvgAkHhaicuJWVFIWwPxLiZNu2erW8xSL7GWlnn/j2mGLPLu+vlwRyW
# vKANsOut8LRLU/KigOH22aXUNRhtqj8mfZ4IkUeg3Q0EfOAR5+lsbQdVAgMBAAGj
# ggEbMIIBFzAdBgNVHQ4EFgQUHYdig5QfaIJJSNNs7plkg+wm80owHwYDVR0jBBgw
# FoAU1WM6XIoxkPNDe3xGG8UzaFqFbVUwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDov
# L2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljVGltU3RhUENB
# XzIwMTAtMDctMDEuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0
# cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNUaW1TdGFQQ0FfMjAx
# MC0wNy0wMS5jcnQwDAYDVR0TAQH/BAIwADATBgNVHSUEDDAKBggrBgEFBQcDCDAN
# BgkqhkiG9w0BAQsFAAOCAQEAMBX2zuIcVxbQmJHV8h7Z3bvtyG8D8Zio+fgvABOb
# makrTpAwGqdIN1Bnow0JAz4cxyiLjnlq1KFxJyEyCIgduOGmFeP/QG1S5o9CJZuT
# Tsn+weLs77yNB7dXe8Mew9Pf0nkuQGan+NZ2s5A02FCy1Q3wK3KIQZ6QXIjsFLoL
# 2RhJ522sZNgUI9bk4lyfMJejDMgnyiWY4rxZHjWkxGNoP8KeuJ/OJzVpH9gfB86Z
# 73KwZ4jLdpzF3/wl2nu/iIU31NVboafPtcngDhU0qKI6PD+VEP+Hcmauhf4CTv0s
# Dk0kQBqqQsieIYKp1Qjfygju47ippO3YEvZVnvn228IO1jCCBnEwggRZoAMCAQIC
# 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/edIhJEqGCAsswggI0AgEBMIH4oYHQpIHNMIHKMQswCQYDVQQGEwJVUzETMBEG
# A1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWlj
# cm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBP
# cGVyYXRpb25zMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjo3QkYxLUUzRUEtQjgw
# ODElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcG
# BSsOAwIaAxUADxdHwnvWAzfCWtOb88hbm/VWmpGggYMwgYCkfjB8MQswCQYDVQQG
# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG
# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQg
# VGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUFAAIFAOFqEMgwIhgPMjAx
# OTExMDQxMDUxNTJaGA8yMDE5MTEwNTEwNTE1MlowdDA6BgorBgEEAYRZCgQBMSww
# KjAKAgUA4WoQyAIBADAHAgEAAgIFKjAHAgEAAgIRmDAKAgUA4WtiSAIBADA2Bgor
# BgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAID
# AYagMA0GCSqGSIb3DQEBBQUAA4GBAKixx7MUunkOvYsRwOtTUnHw0o2gYxVlo3kl
# N7sBNmUXIKVvhQmpiidF6kxb1h82RsknQGpOh5IiF19xG3xpSDYQFAKBUK6TocT2
# FDyQla0Hi5G9vbti9R0pILxXlJ2zA6q4V9vo4MX30Y+GCmdHlOZcSI1ahgHN1Qxv
# uBTgFXY4MYIDDTCCAwkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh
# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD
# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw
# MTACEzMAAAD2rM92KnN0mtoAAAAAAPYwDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqG
# SIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgnpMWTsy7HENd
# Qhz988ppTFMHifmzsR4aDEFMjByXXVswgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHk
# MIG9BCD3h0F3arTtFwnZ0yXjPeaAEVJWm2KVFg+pkE5xL5O06jCBmDCBgKR+MHwx
# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt
# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p
# Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAA9qzPdipzdJraAAAAAAD2
# MCIEIEoPw06pfiNJiS6MiXlCyVOSFgNR0Mc5JCNHp5AgWozoMA0GCSqGSIb3DQEB
# CwUABIIBAFbnJu/ana1BURhciq8/D8z2g79gIj7jpNH1eWFPXyjwJJeeO2W1mTkM
# 3a1fp96rLovf78Ifj8+nKURye/mwQ2jVY161E58xjdO+tgxA4f5cydH+QxojdqwL
# VgZkb7Mkx2IrreHr5eiZerj7/SY5CuvrgeAUs8nmJMgOM8WvbY79pZwObftRnNTZ
# XLRlLLofb9Udeu//+Zvj+XqJkiWUKBVZOe1oKGzElWxg+UduMheXi47Coo5W6oM1
# B95pAkn6+SK42yHRTeN6C+aDDdCPJxnerWU0IOOjhaXjBLRFFZ6BS6zfmCU9+S02
# I80y3UxAhF0H7kgq+MTGldurzRdokgE=
# SIG # End signature block