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


# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Clears legal hold tags.
Clearing the same or non-existent tag results in an idempotent operation.
ClearLegalHold clears out only the specified tags in the request.
.Description
Clears legal hold tags.
Clearing the same or non-existent tag results in an idempotent operation.
ClearLegalHold clears out only the specified tags in the request.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/clear-azrmstoragecontainerlegalhold
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.ILegalHold
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.ILegalHold
.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 <IStorageIdentity>: Identity Parameter
  [AccountName <String>]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
  [BlobServicesName <String>]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default'
  [ContainerName <String>]: The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [FileServicesName <String>]: The name of the file Service within the specified storage account. File Service Name must be "default"
  [Id <String>]: Resource identity path
  [ImmutabilityPolicyName <String>]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default'
  [Location <String>]: The location of the Azure Storage resource.
  [ManagementPolicyName <ManagementPolicyName?>]: The name of the Storage Account Management Policy. It should always be 'default'
  [ResourceGroupName <String>]: The name of the resource group within the user's subscription. The name is case insensitive.
  [ShareName <String>]: The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [SubscriptionId <String>]: The ID of the target subscription.
 
LEGALHOLD <ILegalHold>: The LegalHold property of a blob container.
  Tag <String[]>: Each tag should be 3 to 23 alphanumeric characters and is normalized to lower case at SRP.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/clear-azrmstoragecontainerlegalhold
#>

function Clear-AzRmStorageContainerLegalHold {
[Alias('Remove-AzRmStorageContainerLegalHold')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.ILegalHold])]
[CmdletBinding(DefaultParameterSetName='ClearExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Clear', Mandatory)]
    [Parameter(ParameterSetName='ClearExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${AccountName},

    [Parameter(ParameterSetName='Clear', Mandatory)]
    [Parameter(ParameterSetName='ClearExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the blob container within the specified storage account.
    # Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only.
    # Every dash (-) character must be immediately preceded and followed by a letter or number.
    ${ContainerName},

    [Parameter(ParameterSetName='Clear', Mandatory)]
    [Parameter(ParameterSetName='ClearExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Clear')]
    [Parameter(ParameterSetName='ClearExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # The ID of the target subscription.
    ${SubscriptionId},

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

    [Parameter(ParameterSetName='Clear', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='ClearViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.ILegalHold]
    # The LegalHold property of a blob container.
    # To construct, see NOTES section for LEGALHOLD properties and create a hash table.
    ${LegalHold},

    [Parameter(ParameterSetName='ClearExpanded', Mandatory)]
    [Parameter(ParameterSetName='ClearViaIdentityExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String[]]
    # Each tag should be 3 to 23 alphanumeric characters and is normalized to lower case at SRP.
    ${Tag},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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 = @{
            Clear = 'Az.Storage.private\Clear-AzRmStorageContainerLegalHold_Clear';
            ClearExpanded = 'Az.Storage.private\Clear-AzRmStorageContainerLegalHold_ClearExpanded';
            ClearViaIdentity = 'Az.Storage.private\Clear-AzRmStorageContainerLegalHold_ClearViaIdentity';
            ClearViaIdentityExpanded = 'Az.Storage.private\Clear-AzRmStorageContainerLegalHold_ClearViaIdentityExpanded';
        }
        if (('Clear', 'ClearExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/close-azstoragefilehandle
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
Microsoft.Azure.Commands.Storage.Model.ResourceModel.PSFileHandle
.Inputs
Microsoft.Azure.Storage.File.CloudFile
.Inputs
Microsoft.Azure.Storage.File.CloudFileDirectory
.Inputs
Microsoft.Azure.Storage.File.CloudFileShare
.Outputs
System.Int32
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/close-azstoragefilehandle
#>

function Close-AzStorageFileHandle {
[OutputType([System.Int32])]
[CmdletBinding(DefaultParameterSetName='ShareNameCloseAll', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='ShareNameCloseAll', Position=0, Mandatory)]
    [Parameter(ParameterSetName='ShareNameCloseSingle', Position=0, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Name of the file share which contains the files/directories to closed handle.
    ${ShareName},

    [Parameter(ParameterSetName='ShareNameCloseAll', Mandatory)]
    [Parameter(ParameterSetName='ShareCloseAll', Mandatory)]
    [Parameter(ParameterSetName='DirectoryCloseAll', Mandatory)]
    [Parameter(ParameterSetName='FileCloseAll', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Force close all File handles.
    ${CloseAll},

    [Parameter(ParameterSetName='ShareNameCloseAll', Position=1)]
    [Parameter(ParameterSetName='ShareCloseAll', Position=1)]
    [Parameter(ParameterSetName='DirectoryCloseAll', Position=1)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Path to an existing file/directory.
    ${Path},

    [Parameter(ParameterSetName='ShareNameCloseAll')]
    [Parameter(ParameterSetName='ShareCloseAll')]
    [Parameter(ParameterSetName='DirectoryCloseAll')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Closed handles Recursively.
    # Only works on File Directory.
    ${Recursive},

    [Parameter(ParameterSetName='ShareNameCloseAll', ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Parameter(ParameterSetName='ShareNameCloseSingle', ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Return whether the specified blob is successfully removed
    ${PassThru},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Run cmdlet in the background
    ${AsJob},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount},

    [Parameter(ParameterSetName='ShareNameCloseSingle', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='ShareCloseSingle', Mandatory, ValueFromPipeline)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Storage.Model.ResourceModel.PSFileHandle]
    # The File Handle to close.
    ${FileHandle},

    [Parameter(ParameterSetName='ShareCloseAll', Position=0, Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='ShareCloseSingle', Position=0, Mandatory, ValueFromPipeline)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFileShare]
    # CloudFileShare object indicated the share which contains the files/directories to closed handle.
    ${Share},

    [Parameter(ParameterSetName='DirectoryCloseAll', Position=0, Mandatory, ValueFromPipeline)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFileDirectory]
    # CloudFileDirectory object indicated the base folder which contains the files/directories to closed handle.
    ${Directory},

    [Parameter(ParameterSetName='FileCloseAll', Position=0, Mandatory, ValueFromPipeline)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFile]
    # CloudFile object indicated the file to close handle.
    ${File}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            ShareNameCloseAll = 'Az.Storage.private\Close-AzStorageFileHandle!V2';
            ShareNameCloseSingle = 'Az.Storage.private\Close-AzStorageFileHandle!V2';
            ShareCloseAll = 'Az.Storage.private\Close-AzStorageFileHandle!V2';
            ShareCloseSingle = 'Az.Storage.private\Close-AzStorageFileHandle!V2';
            DirectoryCloseAll = 'Az.Storage.private\Close-AzStorageFileHandle!V2';
            FileCloseAll = 'Az.Storage.private\Close-AzStorageFileHandle!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/disable-azstoragedeleteretentionpolicy
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Outputs
Microsoft.Azure.Commands.Storage.Model.ResourceModel.PSDeleteRetentionPolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/disable-azstoragedeleteretentionpolicy
#>

function Disable-AzStorageDeleteRetentionPolicy {
[Alias('Disable-AzStorageSoftDelete')]
[OutputType([Microsoft.Azure.Commands.Storage.Model.ResourceModel.PSDeleteRetentionPolicy])]
[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Display DeleteRetentionPolicyProperties
    ${PassThru},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('AzureRmContext', 'AzureCredential')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Disable-AzStorageDeleteRetentionPolicy!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/disable-azstoragestaticwebsite
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Outputs
Microsoft.Azure.Commands.Storage.Model.ResourceModel.PSStaticWebsiteProperties
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/disable-azstoragestaticwebsite
#>

function Disable-AzStorageStaticWebsite {
[OutputType([Microsoft.Azure.Commands.Storage.Model.ResourceModel.PSStaticWebsiteProperties])]
[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    ${PassThru},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('AzureRmContext', 'AzureCredential')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Disable-AzStorageStaticWebsite!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/enable-azstoragedeleteretentionpolicy
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Outputs
Microsoft.Azure.Commands.Storage.Model.ResourceModel.PSDeleteRetentionPolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/enable-azstoragedeleteretentionpolicy
#>

function Enable-AzStorageDeleteRetentionPolicy {
[Alias('Enable-AzStorageSoftDelete')]
[OutputType([Microsoft.Azure.Commands.Storage.Model.ResourceModel.PSDeleteRetentionPolicy])]
[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory)]
    [Alias('Days')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Int32]
    # Sets the number of retention days for the DeleteRetentionPolicy.
    ${RetentionDays},

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

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('AzureRmContext', 'AzureCredential')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Enable-AzStorageDeleteRetentionPolicy!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/enable-azstoragestaticwebsite
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Outputs
Microsoft.Azure.Commands.Storage.Model.ResourceModel.PSStaticWebsiteProperties
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/enable-azstoragestaticwebsite
#>

function Enable-AzStorageStaticWebsite {
[OutputType([Microsoft.Azure.Commands.Storage.Model.ResourceModel.PSStaticWebsiteProperties])]
[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # The name of the index document in each directory.
    ${IndexDocument},

    [Parameter(Position=1)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # the path to the error document that should be shown when a 404 is issued (meaning, when a browser requests a page that does not exist.)
    ${ErrorDocument404Path},

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

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('AzureRmContext', 'AzureCredential')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Enable-AzStorageStaticWebsite!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Gets the properties of file services in storage accounts, including CORS (Cross-Origin Resource Sharing) rules.
.Description
Gets the properties of file services in storage accounts, including CORS (Cross-Origin Resource Sharing) rules.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azfileserviceproperty
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IFileServiceProperties
.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 <IStorageIdentity>: Identity Parameter
  [AccountName <String>]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
  [BlobServicesName <String>]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default'
  [ContainerName <String>]: The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [FileServicesName <String>]: The name of the file Service within the specified storage account. File Service Name must be "default"
  [Id <String>]: Resource identity path
  [ImmutabilityPolicyName <String>]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default'
  [Location <String>]: The location of the Azure Storage resource.
  [ManagementPolicyName <ManagementPolicyName?>]: The name of the Storage Account Management Policy. It should always be 'default'
  [ResourceGroupName <String>]: The name of the resource group within the user's subscription. The name is case insensitive.
  [ShareName <String>]: The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [SubscriptionId <String>]: The ID of the target subscription.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azfileserviceproperty
#>

function Get-AzFileServiceProperty {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IFileServiceProperties])]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${AccountName},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Get')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String[]]
    # The ID of the target subscription.
    ${SubscriptionId},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Get-AzFileServiceProperty_Get';
            GetViaIdentity = 'Az.Storage.private\Get-AzFileServiceProperty_GetViaIdentity';
        }
        if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

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

function Get-AzFileService {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IFileServiceProperties])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${AccountName},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String[]]
    # The ID of the target subscription.
    ${SubscriptionId},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Get-AzFileService_List';
        }
        if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Gets properties of a specified share.
.Description
Gets properties of a specified share.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azfileshare
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IFileShare
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IFileShareItem
.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 <IStorageIdentity>: Identity Parameter
  [AccountName <String>]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
  [BlobServicesName <String>]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default'
  [ContainerName <String>]: The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [FileServicesName <String>]: The name of the file Service within the specified storage account. File Service Name must be "default"
  [Id <String>]: Resource identity path
  [ImmutabilityPolicyName <String>]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default'
  [Location <String>]: The location of the Azure Storage resource.
  [ManagementPolicyName <ManagementPolicyName?>]: The name of the Storage Account Management Policy. It should always be 'default'
  [ResourceGroupName <String>]: The name of the resource group within the user's subscription. The name is case insensitive.
  [ShareName <String>]: The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [SubscriptionId <String>]: The ID of the target subscription.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azfileshare
#>

function Get-AzFileShare {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IFileShare], [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IFileShareItem])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${AccountName},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the file share within the specified storage account.
    # File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only.
    # Every dash (-) character must be immediately preceded and followed by a letter or number.
    ${ShareName},

    [Parameter(ParameterSetName='Get')]
    [Parameter(ParameterSetName='List')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String[]]
    # The ID of the target subscription.
    ${SubscriptionId},

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Query')]
    [System.String]
    # Optional.
    # When specified, only share names starting with the filter will be listed.
    ${Filter},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Query')]
    [System.String]
    # Optional.
    # Specified maximum number of shares that can be included in the list.
    ${Maxpagesize},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Query')]
    [System.String]
    # Optional.
    # Continuation token for the list operation.
    ${SkipToken},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Get-AzFileShare_Get';
            GetViaIdentity = 'Az.Storage.private\Get-AzFileShare_GetViaIdentity';
            List = 'Az.Storage.private\Get-AzFileShare_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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Gets the existing immutability policy along with the corresponding ETag in response headers and body.
.Description
Gets the existing immutability policy along with the corresponding ETag in response headers and body.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azrmstoragecontainerimmutabilitypolicy
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180201.IImmutabilityPolicy
.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 <IStorageIdentity>: Identity Parameter
  [AccountName <String>]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
  [BlobServicesName <String>]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default'
  [ContainerName <String>]: The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [FileServicesName <String>]: The name of the file Service within the specified storage account. File Service Name must be "default"
  [Id <String>]: Resource identity path
  [ImmutabilityPolicyName <String>]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default'
  [Location <String>]: The location of the Azure Storage resource.
  [ManagementPolicyName <ManagementPolicyName?>]: The name of the Storage Account Management Policy. It should always be 'default'
  [ResourceGroupName <String>]: The name of the resource group within the user's subscription. The name is case insensitive.
  [ShareName <String>]: The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [SubscriptionId <String>]: The ID of the target subscription.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azrmstoragecontainerimmutabilitypolicy
#>

function Get-AzRmStorageContainerImmutabilityPolicy {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180201.IImmutabilityPolicy])]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${AccountName},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the blob container within the specified storage account.
    # Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only.
    # Every dash (-) character must be immediately preceded and followed by a letter or number.
    ${ContainerName},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Get')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String[]]
    # The ID of the target subscription.
    ${SubscriptionId},

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

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Header')]
    [System.String]
    # The entity state (ETag) version of the immutability policy to update.
    # A value of "*" can be used to apply the operation only if the immutability policy already exists.
    # If omitted, this operation will always be applied.
    ${IfMatch},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Get-AzRmStorageContainerImmutabilityPolicy_Get';
            GetViaIdentity = 'Az.Storage.private\Get-AzRmStorageContainerImmutabilityPolicy_GetViaIdentity';
        }
        if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Gets properties of a specified container.
.Description
Gets properties of a specified container.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azrmstoragecontainer
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180201.IBlobContainer
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180201.IListContainerItem
.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 <IStorageIdentity>: Identity Parameter
  [AccountName <String>]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
  [BlobServicesName <String>]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default'
  [ContainerName <String>]: The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [FileServicesName <String>]: The name of the file Service within the specified storage account. File Service Name must be "default"
  [Id <String>]: Resource identity path
  [ImmutabilityPolicyName <String>]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default'
  [Location <String>]: The location of the Azure Storage resource.
  [ManagementPolicyName <ManagementPolicyName?>]: The name of the Storage Account Management Policy. It should always be 'default'
  [ResourceGroupName <String>]: The name of the resource group within the user's subscription. The name is case insensitive.
  [ShareName <String>]: The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [SubscriptionId <String>]: The ID of the target subscription.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azrmstoragecontainer
#>

function Get-AzRmStorageContainer {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180201.IBlobContainer], [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180201.IListContainerItem])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${AccountName},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the blob container within the specified storage account.
    # Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only.
    # Every dash (-) character must be immediately preceded and followed by a letter or number.
    ${ContainerName},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Get')]
    [Parameter(ParameterSetName='List')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String[]]
    # The ID of the target subscription.
    ${SubscriptionId},

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

    [Parameter(ParameterSetName='List')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Query')]
    [System.String]
    # Optional.
    # When specified, only container names starting with the filter will be listed.
    ${Filter},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Query')]
    [System.String]
    # Optional.
    # Specified maximum number of containers that can be included in the list.
    ${Maxpagesize},

    [Parameter(ParameterSetName='List')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Query')]
    [System.String]
    # Optional.
    # Continuation token for the list operation.
    ${SkipToken},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Get-AzRmStorageContainer_Get';
            GetViaIdentity = 'Az.Storage.private\Get-AzRmStorageContainer_GetViaIdentity';
            List = 'Az.Storage.private\Get-AzRmStorageContainer_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
    }
}
}

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

function Get-AzSku {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.ISku])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String[]]
    # The ID of the target subscription.
    ${SubscriptionId},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Get-AzSku_List';
        }
        if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

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

function Get-AzStorageAccountKey {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20171001.IStorageAccountKey])]
[CmdletBinding(DefaultParameterSetName='List1', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${Name},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String[]]
    # The ID of the target subscription.
    ${SubscriptionId},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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 = @{
            List1 = 'Az.Storage.private\Get-AzStorageAccountKey_List1';
        }
        if (('List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Gets the managementpolicy associated with the specified storage account.
.Description
Gets the managementpolicy associated with the specified storage account.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstorageaccountmanagementpolicy
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IManagementPolicy
.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 <IStorageIdentity>: Identity Parameter
  [AccountName <String>]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
  [BlobServicesName <String>]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default'
  [ContainerName <String>]: The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [FileServicesName <String>]: The name of the file Service within the specified storage account. File Service Name must be "default"
  [Id <String>]: Resource identity path
  [ImmutabilityPolicyName <String>]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default'
  [Location <String>]: The location of the Azure Storage resource.
  [ManagementPolicyName <ManagementPolicyName?>]: The name of the Storage Account Management Policy. It should always be 'default'
  [ResourceGroupName <String>]: The name of the resource group within the user's subscription. The name is case insensitive.
  [ShareName <String>]: The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [SubscriptionId <String>]: The ID of the target subscription.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstorageaccountmanagementpolicy
#>

function Get-AzStorageAccountManagementPolicy {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IManagementPolicy])]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${Name},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Get')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String[]]
    # The ID of the target subscription.
    ${SubscriptionId},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Get-AzStorageAccountManagementPolicy_Get';
            GetViaIdentity = 'Az.Storage.private\Get-AzStorageAccountManagementPolicy_GetViaIdentity';
        }
        if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
List SAS credentials of a storage account.
.Description
List SAS credentials of a storage account.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstorageaccountsas
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20171001.IAccountSasParameters
.Outputs
System.String
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
PARAMETER <IAccountSasParameters>: The parameters to list SAS credentials of a storage account.
  Permission <Permissions>: The signed permissions for the account SAS. Possible values include: Read (r), Write (w), Delete (d), List (l), Add (a), Create (c), Update (u) and Process (p).
  ResourceType <SignedResourceTypes>: The signed resource types that are accessible with the account SAS. Service (s): Access to service-level APIs; Container (c): Access to container-level APIs; Object (o): Access to object-level APIs for blobs, queue messages, table entities, and files.
  Service <Services>: The signed services accessible with the account SAS. Possible values include: Blob (b), Queue (q), Table (t), File (f).
  SharedAccessExpiryTime <DateTime>: The time at which the shared access signature becomes invalid.
  [IPAddressOrRange <String>]: An IP address or a range of IP addresses from which to accept requests.
  [KeyToSign <String>]: The key to sign the account SAS token with.
  [Protocol <HttpProtocol?>]: The protocol permitted for a request made with the account SAS.
  [SharedAccessStartTime <DateTime?>]: The time at which the SAS becomes valid.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstorageaccountsas
#>

function Get-AzStorageAccountSas {
[OutputType([System.String])]
[CmdletBinding(DefaultParameterSetName='ListExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${Name},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String[]]
    # The ID of the target subscription.
    ${SubscriptionId},

    [Parameter(ParameterSetName='List', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20171001.IAccountSasParameters]
    # The parameters to list SAS credentials of a storage account.
    # To construct, see NOTES section for PARAMETER properties and create a hash table.
    ${Parameter},

    [Parameter(ParameterSetName='ListExpanded', Mandatory)]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.Permissions])]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.Permissions]
    # The signed permissions for the account SAS.
    # Possible values include: Read (r), Write (w), Delete (d), List (l), Add (a), Create (c), Update (u) and Process (p).
    ${Permission},

    [Parameter(ParameterSetName='ListExpanded', Mandatory)]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.SignedResourceTypes])]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.SignedResourceTypes]
    # The signed resource types that are accessible with the account SAS.
    # Service (s): Access to service-level APIs; Container (c): Access to container-level APIs; Object (o): Access to object-level APIs for blobs, queue messages, table entities, and files.
    ${ResourceType},

    [Parameter(ParameterSetName='ListExpanded', Mandatory)]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.Services])]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.Services]
    # The signed services accessible with the account SAS.
    # Possible values include: Blob (b), Queue (q), Table (t), File (f).
    ${Service},

    [Parameter(ParameterSetName='ListExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.DateTime]
    # The time at which the shared access signature becomes invalid.
    ${SharedAccessExpiryTime},

    [Parameter(ParameterSetName='ListExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # An IP address or a range of IP addresses from which to accept requests.
    ${IPAddressOrRange},

    [Parameter(ParameterSetName='ListExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # The key to sign the account SAS token with.
    ${KeyToSign},

    [Parameter(ParameterSetName='ListExpanded')]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.HttpProtocol])]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.HttpProtocol]
    # The protocol permitted for a request made with the account SAS.
    ${Protocol},

    [Parameter(ParameterSetName='ListExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.DateTime]
    # The time at which the SAS becomes valid.
    ${SharedAccessStartTime},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Get-AzStorageAccountSas_List';
            ListExpanded = 'Az.Storage.private\Get-AzStorageAccountSas_ListExpanded';
        }
        if (('List', 'ListExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
List service SAS credentials of a specific resource.
.Description
List service SAS credentials of a specific resource.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstorageaccountservicesas
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IServiceSasParameters
.Outputs
System.String
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
PARAMETER <IServiceSasParameters>: HELP MESSAGE MISSING
  CanonicalizedResource <String>: The canonical path to the signed resource.
  [CacheControl <String>]: The response header override for cache control.
  [ContentDisposition <String>]: The response header override for content disposition.
  [ContentEncoding <String>]: The response header override for content encoding.
  [ContentLanguage <String>]: The response header override for content language.
  [ContentType <String>]: The response header override for content type.
  [IPAddressOrRange <String>]: An IP address or a range of IP addresses from which to accept requests.
  [Identifier <String>]: A unique value up to 64 characters in length that correlates to an access policy specified for the container, queue, or table.
  [KeyToSign <String>]: The key to sign the account SAS token with.
  [PartitionKeyEnd <String>]: The end of partition key.
  [PartitionKeyStart <String>]: The start of partition key.
  [Permission <Permissions?>]: The signed permissions for the service SAS. Possible values include: Read (r), Write (w), Delete (d), List (l), Add (a), Create (c), Update (u) and Process (p).
  [Protocol <HttpProtocol?>]: The protocol permitted for a request made with the account SAS.
  [Resource <SignedResource?>]: The signed services accessible with the service SAS. Possible values include: Blob (b), Container (c), File (f), Share (s).
  [RowKeyEnd <String>]: The end of row key.
  [RowKeyStart <String>]: The start of row key.
  [SharedAccessExpiryTime <DateTime?>]: The time at which the shared access signature becomes invalid.
  [SharedAccessStartTime <DateTime?>]: The time at which the SAS becomes valid.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstorageaccountservicesas
#>

function Get-AzStorageAccountServiceSas {
[OutputType([System.String])]
[CmdletBinding(DefaultParameterSetName='ListExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${Name},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String[]]
    # The ID of the target subscription.
    ${SubscriptionId},

    [Parameter(ParameterSetName='List', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IServiceSasParameters]
    # HELP MESSAGE MISSING
    # To construct, see NOTES section for PARAMETER properties and create a hash table.
    ${Parameter},

    [Parameter(ParameterSetName='ListExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # The canonical path to the signed resource.
    ${CanonicalizedResource},

    [Parameter(ParameterSetName='ListExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # The response header override for cache control.
    ${CacheControl},

    [Parameter(ParameterSetName='ListExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # The response header override for content disposition.
    ${ContentDisposition},

    [Parameter(ParameterSetName='ListExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # The response header override for content encoding.
    ${ContentEncoding},

    [Parameter(ParameterSetName='ListExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # The response header override for content language.
    ${ContentLanguage},

    [Parameter(ParameterSetName='ListExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # The response header override for content type.
    ${ContentType},

    [Parameter(ParameterSetName='ListExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # An IP address or a range of IP addresses from which to accept requests.
    ${IPAddressOrRange},

    [Parameter(ParameterSetName='ListExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # A unique value up to 64 characters in length that correlates to an access policy specified for the container, queue, or table.
    ${Identifier},

    [Parameter(ParameterSetName='ListExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # The key to sign the account SAS token with.
    ${KeyToSign},

    [Parameter(ParameterSetName='ListExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # The end of partition key.
    ${PartitionKeyEnd},

    [Parameter(ParameterSetName='ListExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # The start of partition key.
    ${PartitionKeyStart},

    [Parameter(ParameterSetName='ListExpanded')]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.Permissions])]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.Permissions]
    # The signed permissions for the service SAS.
    # Possible values include: Read (r), Write (w), Delete (d), List (l), Add (a), Create (c), Update (u) and Process (p).
    ${Permission},

    [Parameter(ParameterSetName='ListExpanded')]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.HttpProtocol])]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.HttpProtocol]
    # The protocol permitted for a request made with the account SAS.
    ${Protocol},

    [Parameter(ParameterSetName='ListExpanded')]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.SignedResource])]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.SignedResource]
    # The signed services accessible with the service SAS.
    # Possible values include: Blob (b), Container (c), File (f), Share (s).
    ${Resource},

    [Parameter(ParameterSetName='ListExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # The end of row key.
    ${RowKeyEnd},

    [Parameter(ParameterSetName='ListExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # The start of row key.
    ${RowKeyStart},

    [Parameter(ParameterSetName='ListExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.DateTime]
    # The time at which the shared access signature becomes invalid.
    ${SharedAccessExpiryTime},

    [Parameter(ParameterSetName='ListExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.DateTime]
    # The time at which the SAS becomes valid.
    ${SharedAccessStartTime},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Get-AzStorageAccountServiceSas_List';
            ListExpanded = 'Az.Storage.private\Get-AzStorageAccountServiceSas_ListExpanded';
        }
        if (('List', 'ListExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

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

function Get-AzStorageAccount {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IStorageAccount])]
[CmdletBinding(DefaultParameterSetName='List2', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String[]]
    # The ID of the target subscription.
    ${SubscriptionId},

    [Parameter(ParameterSetName='List3', Mandatory)]
    [Parameter(ParameterSetName='GetByName', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='GetByName', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # The name of the storage account.
    ${Name},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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 = @{
            List2 = 'Az.Storage.private\Get-AzStorageAccount_List2';
            List3 = 'Az.Storage.private\Get-AzStorageAccount_List3';
            GetByName = 'Az.Storage.custom\Get-AzStorageAccount_GetByName';
        }
        if (('List2', 'List3', 'GetByName') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstorageblob
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
Microsoft.Azure.Commands.Common.Storage.ResourceModel.AzureStorageBlob
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstorageblob
#>

function Get-AzStorageBlob {
[OutputType([Microsoft.Azure.Commands.Common.Storage.ResourceModel.AzureStorageBlob])]
[CmdletBinding(DefaultParameterSetName='BlobName', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Name')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Container name
    ${Container},

    [Parameter(ParameterSetName='BlobName', Position=0)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Blob name
    ${Blob},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Include deleted blobs, by default get blob won't include deleted blobs
    ${IncludeDeleted},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The max count of the blobs that can return.
    ${MaxCount},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.Blob.BlobContinuationToken]
    # Continuation Token.
    ${ContinuationToken},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount},

    [Parameter(ParameterSetName='BlobPrefix')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Blob Prefix
    ${Prefix}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            BlobName = 'Az.Storage.private\Get-AzStorageBlob!V2';
            BlobPrefix = 'Az.Storage.private\Get-AzStorageBlob!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstorageblobcontent
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
Microsoft.Azure.Storage.Blob.CloudBlob
.Inputs
Microsoft.Azure.Storage.Blob.CloudBlobContainer
.Outputs
Microsoft.Azure.Commands.Common.Storage.ResourceModel.AzureStorageBlob
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstorageblobcontent
#>

function Get-AzStorageBlobContent {
[OutputType([Microsoft.Azure.Commands.Common.Storage.ResourceModel.AzureStorageBlob])]
[CmdletBinding(DefaultParameterSetName='ReceiveManual', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='ReceiveManual', Position=0, Mandatory)]
    [Parameter(ParameterSetName='ContainerPipeline', Position=0, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Blob name
    ${Blob},

    [Parameter(ParameterSetName='ReceiveManual', Position=1, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Container name
    ${Container},

    [Parameter()]
    [Alias('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # File Path.
    ${Destination},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # check the md5sum
    ${CheckMd5},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Force to overwrite the existing blob or file
    ${Force},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Run cmdlet in the background
    ${AsJob},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount},

    [Parameter(ParameterSetName='BlobPipeline', Mandatory, ValueFromPipelineByPropertyName)]
    [Alias('ICloudBlob')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.Blob.CloudBlob]
    # Azure Blob Object
    ${CloudBlob},

    [Parameter(ParameterSetName='ContainerPipeline', Mandatory, ValueFromPipelineByPropertyName)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.Blob.CloudBlobContainer]
    # Azure Container Object
    ${CloudBlobContainer}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            ReceiveManual = 'Az.Storage.private\Get-AzStorageBlobContent!V2';
            BlobPipeline = 'Az.Storage.private\Get-AzStorageBlobContent!V2';
            ContainerPipeline = 'Az.Storage.private\Get-AzStorageBlobContent!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstorageblobcopystate
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
Microsoft.Azure.Storage.Blob.CloudBlob
.Inputs
Microsoft.Azure.Storage.Blob.CloudBlobContainer
.Outputs
Microsoft.Azure.Commands.Common.Storage.ResourceModel.AzureStorageBlob
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstorageblobcopystate
#>

function Get-AzStorageBlobCopyState {
[OutputType([Microsoft.Azure.Commands.Common.Storage.ResourceModel.AzureStorageBlob])]
[CmdletBinding(DefaultParameterSetName='NamePipeline', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='NamePipeline', Position=0, Mandatory)]
    [Parameter(ParameterSetName='ContainerPipeline', Position=0, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Blob name
    ${Blob},

    [Parameter(ParameterSetName='NamePipeline', Position=1, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Container name
    ${Container},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Wait for copy task complete
    ${WaitForComplete},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount},

    [Parameter(ParameterSetName='BlobPipeline', Mandatory, ValueFromPipelineByPropertyName)]
    [Alias('ICloudBlob')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.Blob.CloudBlob]
    # CloudBlob Object
    ${CloudBlob},

    [Parameter(ParameterSetName='ContainerPipeline', Mandatory, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.Blob.CloudBlobContainer]
    # CloudBlobContainer Object
    ${CloudBlobContainer}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            NamePipeline = 'Az.Storage.private\Get-AzStorageBlobCopyState!V2';
            BlobPipeline = 'Az.Storage.private\Get-AzStorageBlobCopyState!V2';
            ContainerPipeline = 'Az.Storage.private\Get-AzStorageBlobCopyState!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Gets the properties of a storage account’s Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.
.Description
Gets the properties of a storage account’s Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstorageblobserviceproperty
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IBlobServiceProperties
.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 <IStorageIdentity>: Identity Parameter
  [AccountName <String>]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
  [BlobServicesName <String>]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default'
  [ContainerName <String>]: The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [FileServicesName <String>]: The name of the file Service within the specified storage account. File Service Name must be "default"
  [Id <String>]: Resource identity path
  [ImmutabilityPolicyName <String>]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default'
  [Location <String>]: The location of the Azure Storage resource.
  [ManagementPolicyName <ManagementPolicyName?>]: The name of the Storage Account Management Policy. It should always be 'default'
  [ResourceGroupName <String>]: The name of the resource group within the user's subscription. The name is case insensitive.
  [ShareName <String>]: The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [SubscriptionId <String>]: The ID of the target subscription.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstorageblobserviceproperty
#>

function Get-AzStorageBlobServiceProperty {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IBlobServiceProperties])]
[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${AccountName},

    [Parameter(ParameterSetName='Get', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Get')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String[]]
    # The ID of the target subscription.
    ${SubscriptionId},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Get-AzStorageBlobServiceProperty_Get';
            GetViaIdentity = 'Az.Storage.private\Get-AzStorageBlobServiceProperty_GetViaIdentity';
        }
        if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

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

function Get-AzStorageBlobService {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IBlobServiceProperties])]
[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${AccountName},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String[]]
    # The ID of the target subscription.
    ${SubscriptionId},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Get-AzStorageBlobService_List';
        }
        if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstoragecontainer
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
Microsoft.Azure.Commands.Common.Storage.ResourceModel.AzureStorageContainer
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstoragecontainer
#>

function Get-AzStorageContainer {
[Alias('Get-AzStorageContainerAcl')]
[OutputType([Microsoft.Azure.Commands.Common.Storage.ResourceModel.AzureStorageContainer])]
[CmdletBinding(DefaultParameterSetName='ContainerName', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='ContainerName', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Container')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Container Name
    ${Name},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The max count of the containers that can return.
    ${MaxCount},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.Blob.BlobContinuationToken]
    # Continuation Token.
    ${ContinuationToken},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount},

    [Parameter(ParameterSetName='ContainerPrefix', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Container Prefix
    ${Prefix}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            ContainerName = 'Az.Storage.private\Get-AzStorageContainer!V2';
            ContainerPrefix = 'Az.Storage.private\Get-AzStorageContainer!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstoragecontainerstoredaccesspolicy
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
Microsoft.Azure.Storage.Blob.SharedAccessBlobPolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstoragecontainerstoredaccesspolicy
#>

function Get-AzStorageContainerStoredAccessPolicy {
[OutputType([Microsoft.Azure.Storage.Blob.SharedAccessBlobPolicy])]
[CmdletBinding(PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Name')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Container name
    ${Container},

    [Parameter(Position=1, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Policy Identifier
    ${Policy},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            __AllParameterSets = 'Az.Storage.private\Get-AzStorageContainerStoredAccessPolicy!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstoragecorsrule
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Outputs
Microsoft.Azure.Commands.Storage.Model.ResourceModel.PSCorsRule
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstoragecorsrule
#>

function Get-AzStorageCORSRule {
[OutputType([Microsoft.Azure.Commands.Storage.Model.ResourceModel.PSCorsRule])]
[CmdletBinding(PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Storage.Common.StorageServiceType]
    # Azure storage service type(Blob, Table, Queue).
    ${ServiceType},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            __AllParameterSets = 'Az.Storage.private\Get-AzStorageCORSRule!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstoragefile
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
Microsoft.Azure.Storage.File.CloudFileDirectory
.Inputs
Microsoft.Azure.Storage.File.CloudFileShare
.Outputs
Microsoft.Azure.Storage.File.CloudFile
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstoragefile
#>

function Get-AzStorageFile {
[OutputType([Microsoft.Azure.Storage.File.CloudFile])]
[CmdletBinding(DefaultParameterSetName='ShareName', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='ShareName', Position=0, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Name of the file share where the files/directories would be listed.
    ${ShareName},

    [Parameter(Position=1)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Path to an existing file/directory.
    ${Path},

    [Parameter(ParameterSetName='ShareName', ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount},

    [Parameter(ParameterSetName='Share', Position=0, Mandatory, ValueFromPipeline)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFileShare]
    # CloudFileShare object indicated the share where the files/directories would be listed.
    ${Share},

    [Parameter(ParameterSetName='Directory', Position=0, Mandatory, ValueFromPipeline)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFileDirectory]
    # CloudFileDirectory object indicated the base folder where the files/directories would be listed.
    ${Directory}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            ShareName = 'Az.Storage.private\Get-AzStorageFile!V2';
            Share = 'Az.Storage.private\Get-AzStorageFile!V2';
            Directory = 'Az.Storage.private\Get-AzStorageFile!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstoragefilecontent
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
Microsoft.Azure.Storage.File.CloudFile
.Inputs
Microsoft.Azure.Storage.File.CloudFileDirectory
.Inputs
Microsoft.Azure.Storage.File.CloudFileShare
.Outputs
Microsoft.Azure.Storage.File.CloudFile
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstoragefilecontent
#>

function Get-AzStorageFileContent {
[OutputType([Microsoft.Azure.Storage.File.CloudFile])]
[CmdletBinding(DefaultParameterSetName='ShareName', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='ShareName', Position=0, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Name of the file share where the file would be downloaded.
    ${ShareName},

    [Parameter(ParameterSetName='ShareName', Position=1, Mandatory)]
    [Parameter(ParameterSetName='Share', Position=1, Mandatory)]
    [Parameter(ParameterSetName='Directory', Position=1, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Path to the cloud file to be downloaded.
    ${Path},

    [Parameter(Position=2)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Path to the local file or directory when the downloaded file would be put.
    ${Destination},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # check the md5sum
    ${CheckMd5},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Returns an object representing the downloaded cloud file.
    # By default, this cmdlet does not generate any output.
    ${PassThru},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Force to overwrite the existing file.
    ${Force},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Run cmdlet in the background
    ${AsJob},

    [Parameter(ParameterSetName='ShareName', ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount},

    [Parameter(ParameterSetName='Share', Position=0, Mandatory, ValueFromPipeline)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFileShare]
    # CloudFileShare object indicated the share where the file would be downloaded.
    ${Share},

    [Parameter(ParameterSetName='Directory', Position=0, Mandatory, ValueFromPipeline)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFileDirectory]
    # CloudFileDirectory object indicated the cloud directory where the file would be downloaded.
    ${Directory},

    [Parameter(ParameterSetName='File', Position=0, Mandatory, ValueFromPipeline)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFile]
    # CloudFile object indicated the cloud file to be downloaded.
    ${File}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            ShareName = 'Az.Storage.private\Get-AzStorageFileContent!V2';
            Share = 'Az.Storage.private\Get-AzStorageFileContent!V2';
            Directory = 'Az.Storage.private\Get-AzStorageFileContent!V2';
            File = 'Az.Storage.private\Get-AzStorageFileContent!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstoragefilecopystate
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
Microsoft.Azure.Storage.File.CloudFile
.Outputs
Microsoft.Azure.Storage.File.CloudFile
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstoragefilecopystate
#>

function Get-AzStorageFileCopyState {
[OutputType([Microsoft.Azure.Storage.File.CloudFile])]
[CmdletBinding(DefaultParameterSetName='ShareName', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='ShareName', Position=0, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Target share name
    ${ShareName},

    [Parameter(ParameterSetName='ShareName', Position=1, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Target file path
    ${FilePath},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Indicates whether or not to wait util the copying finished.
    ${WaitForComplete},

    [Parameter(ParameterSetName='ShareName', ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount},

    [Parameter(ParameterSetName='File', Position=0, Mandatory, ValueFromPipeline)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFile]
    # Target file instance
    ${File}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            ShareName = 'Az.Storage.private\Get-AzStorageFileCopyState!V2';
            File = 'Az.Storage.private\Get-AzStorageFileCopyState!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstoragefilehandle
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
Microsoft.Azure.Storage.File.CloudFile
.Inputs
Microsoft.Azure.Storage.File.CloudFileDirectory
.Inputs
Microsoft.Azure.Storage.File.CloudFileShare
.Outputs
Microsoft.Azure.Commands.Storage.Model.ResourceModel.PSFileHandle
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstoragefilehandle
#>

function Get-AzStorageFileHandle {
[OutputType([Microsoft.Azure.Commands.Storage.Model.ResourceModel.PSFileHandle])]
[CmdletBinding(DefaultParameterSetName='ShareName', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='ShareName', Position=0, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Name of the file share where the files/directories would list File Handles.
    ${ShareName},

    [Parameter(ParameterSetName='ShareName', Position=1)]
    [Parameter(ParameterSetName='Share', Position=1)]
    [Parameter(ParameterSetName='Directory', Position=1)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Path to an existing file/directory.
    ${Path},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # List handles Recursively.
    # Only works on File Directory.
    ${Recursive},

    [Parameter(ParameterSetName='ShareName', ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount},

    [Parameter(ParameterSetName='Share', Position=0, Mandatory, ValueFromPipeline)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFileShare]
    # CloudFileShare object indicated the share where the files/directories would list File Handles.
    ${Share},

    [Parameter(ParameterSetName='Directory', Position=0, Mandatory, ValueFromPipeline)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFileDirectory]
    # CloudFileDirectory object indicated the base folder where the files/directories would list File Handles.
    ${Directory},

    [Parameter(ParameterSetName='File', Position=0, Mandatory, ValueFromPipeline)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFile]
    # CloudFile object indicated the file to list File Handles.
    ${File}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            ShareName = 'Az.Storage.private\Get-AzStorageFileHandle!V2';
            Share = 'Az.Storage.private\Get-AzStorageFileHandle!V2';
            Directory = 'Az.Storage.private\Get-AzStorageFileHandle!V2';
            File = 'Az.Storage.private\Get-AzStorageFileHandle!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstoragequeue
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
Microsoft.Azure.Commands.Common.Storage.ResourceModel.AzureStorageQueue
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstoragequeue
#>

function Get-AzStorageQueue {
[OutputType([Microsoft.Azure.Commands.Common.Storage.ResourceModel.AzureStorageQueue])]
[CmdletBinding(DefaultParameterSetName='QueueName', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='QueueName', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Queue')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Queue name
    ${Name},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

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

    [Parameter(ParameterSetName='QueuePrefix', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Queue Prefix
    ${Prefix}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            QueueName = 'Az.Storage.private\Get-AzStorageQueue!V2';
            QueuePrefix = 'Az.Storage.private\Get-AzStorageQueue!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstoragequeuestoredaccesspolicy
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
Microsoft.Azure.Storage.Queue.SharedAccessQueuePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstoragequeuestoredaccesspolicy
#>

function Get-AzStorageQueueStoredAccessPolicy {
[OutputType([Microsoft.Azure.Storage.Queue.SharedAccessQueuePolicy])]
[CmdletBinding(PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Name')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Queue Name
    ${Queue},

    [Parameter(Position=1, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Policy Identifier
    ${Policy},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('AzureRmContext', 'AzureCredential')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Get-AzStorageQueueStoredAccessPolicy!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstorageserviceloggingproperty
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Outputs
Microsoft.Azure.Storage.Shared.Protocol.LoggingProperties
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstorageserviceloggingproperty
#>

function Get-AzStorageServiceLoggingProperty {
[OutputType([Microsoft.Azure.Storage.Shared.Protocol.LoggingProperties])]
[CmdletBinding(PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Storage.Common.StorageServiceType]
    # Azure storage service type(Blob, Table, Queue).
    ${ServiceType},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('AzureRmContext', 'AzureCredential')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Get-AzStorageServiceLoggingProperty!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstorageservicemetricsproperty
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Outputs
Microsoft.Azure.Storage.Shared.Protocol.MetricsProperties
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstorageservicemetricsproperty
#>

function Get-AzStorageServiceMetricsProperty {
[OutputType([Microsoft.Azure.Storage.Shared.Protocol.MetricsProperties])]
[CmdletBinding(PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Storage.Common.StorageServiceType]
    # Azure storage service type(Blob, Table, Queue).
    ${ServiceType},

    [Parameter(Position=1, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Storage.Common.ServiceMetricsType]
    # Azure storage service metrics type(Hour, Minute).
    ${MetricsType},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('AzureRmContext', 'AzureCredential')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Get-AzStorageServiceMetricsProperty!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstorageserviceproperty
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Outputs
Microsoft.Azure.Commands.Storage.Model.ResourceModel.PSSeriviceProperties
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstorageserviceproperty
#>

function Get-AzStorageServiceProperty {
[OutputType([Microsoft.Azure.Commands.Storage.Model.ResourceModel.PSSeriviceProperties])]
[CmdletBinding(PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Storage.Common.StorageServiceType]
    # Azure storage service type(Blob, Table, Queue).
    ${ServiceType},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('AzureRmContext', 'AzureCredential')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Get-AzStorageServiceProperty!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstorageshare
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Outputs
Microsoft.Azure.Storage.File.CloudFileShare
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstorageshare
#>

function Get-AzStorageShare {
[OutputType([Microsoft.Azure.Storage.File.CloudFileShare])]
[CmdletBinding(DefaultParameterSetName='MatchingPrefix', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='MatchingPrefix', Position=0)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # A prefix of the file shares to be listed.
    ${Prefix},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount},

    [Parameter(ParameterSetName='Specific', Position=0, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Name of the file share to be received.
    ${Name},

    [Parameter(ParameterSetName='Specific', Position=1)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTimeOffset]]
    # SnapshotTime of the file share snapshot to be received.
    ${SnapshotTime}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            MatchingPrefix = 'Az.Storage.private\Get-AzStorageShare!V2';
            Specific = 'Az.Storage.private\Get-AzStorageShare!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstoragesharestoredaccesspolicy
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
Microsoft.Azure.Storage.File.SharedAccessFilePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstoragesharestoredaccesspolicy
#>

function Get-AzStorageShareStoredAccessPolicy {
[OutputType([Microsoft.Azure.Storage.File.SharedAccessFilePolicy])]
[CmdletBinding(DefaultParameterSetName='ShareName', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Name')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Share name
    ${ShareName},

    [Parameter(Position=1, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Policy Identifier
    ${Policy},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            ShareName = 'Az.Storage.private\Get-AzStorageShareStoredAccessPolicy!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstoragetable
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
Microsoft.Azure.Commands.Common.Storage.ResourceModel.AzureStorageTable
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstoragetable
#>

function Get-AzStorageTable {
[OutputType([Microsoft.Azure.Commands.Common.Storage.ResourceModel.AzureStorageTable])]
[CmdletBinding(DefaultParameterSetName='TableName', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='TableName', Position=0, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Table')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Table name
    ${Name},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

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

    [Parameter(ParameterSetName='TablePrefix', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Table Prefix
    ${Prefix}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            TableName = 'Az.Storage.private\Get-AzStorageTable!V2';
            TablePrefix = 'Az.Storage.private\Get-AzStorageTable!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstoragetablestoredaccesspolicy
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
Microsoft.Azure.Cosmos.Table.SharedAccessTablePolicy
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstoragetablestoredaccesspolicy
#>

function Get-AzStorageTableStoredAccessPolicy {
[OutputType([Microsoft.Azure.Cosmos.Table.SharedAccessTablePolicy])]
[CmdletBinding(PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Name')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Table Name
    ${Table},

    [Parameter(Position=1, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Policy Identifier
    ${Policy},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('AzureRmContext', 'AzureCredential')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Get-AzStorageTableStoredAccessPolicy!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

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

function Get-AzStorageUsage {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20171001.IUsage])]
[CmdletBinding(DefaultParameterSetName='List1', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='List', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The location of the Azure Storage resource.
    ${Location},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String[]]
    # The ID of the target subscription.
    ${SubscriptionId},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Get-AzStorageUsage_List';
            List1 = 'Az.Storage.private\Get-AzStorageUsage_List1';
        }
        if (('List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
The Lease Container operation establishes and manages a lock on a container for delete operations.
The lock duration can be 15 to 60 seconds, or can be infinite.
.Description
The Lease Container operation establishes and manages a lock on a container for delete operations.
The lock duration can be 15 to 60 seconds, or can be infinite.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/invoke-azleaseblobcontainer
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.ILeaseContainerRequest
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.ILeaseContainerResponse
.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 <IStorageIdentity>: Identity Parameter
  [AccountName <String>]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
  [BlobServicesName <String>]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default'
  [ContainerName <String>]: The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [FileServicesName <String>]: The name of the file Service within the specified storage account. File Service Name must be "default"
  [Id <String>]: Resource identity path
  [ImmutabilityPolicyName <String>]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default'
  [Location <String>]: The location of the Azure Storage resource.
  [ManagementPolicyName <ManagementPolicyName?>]: The name of the Storage Account Management Policy. It should always be 'default'
  [ResourceGroupName <String>]: The name of the resource group within the user's subscription. The name is case insensitive.
  [ShareName <String>]: The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [SubscriptionId <String>]: The ID of the target subscription.
 
PARAMETER <ILeaseContainerRequest>: Lease Container request schema.
  Action <String>: Specifies the lease action. Can be one of the available actions.
  [BreakPeriod <Int32?>]: Optional. For a break action, proposed duration the lease should continue before it is broken, in seconds, between 0 and 60.
  [LeaseDuration <Int32?>]: Required for acquire. Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires.
  [LeaseId <String>]: Identifies the lease. Can be specified in any valid GUID string format.
  [ProposedLeaseId <String>]: Optional for acquire, required for change. Proposed lease ID, in a GUID string format.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/invoke-azleaseblobcontainer
#>

function Invoke-AzLeaseBlobContainer {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.ILeaseContainerResponse])]
[CmdletBinding(DefaultParameterSetName='LeaseExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Lease', Mandatory)]
    [Parameter(ParameterSetName='LeaseExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${AccountName},

    [Parameter(ParameterSetName='Lease', Mandatory)]
    [Parameter(ParameterSetName='LeaseExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the blob container within the specified storage account.
    # Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only.
    # Every dash (-) character must be immediately preceded and followed by a letter or number.
    ${ContainerName},

    [Parameter(ParameterSetName='Lease', Mandatory)]
    [Parameter(ParameterSetName='LeaseExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Lease')]
    [Parameter(ParameterSetName='LeaseExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # The ID of the target subscription.
    ${SubscriptionId},

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

    [Parameter(ParameterSetName='Lease', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='LeaseViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.ILeaseContainerRequest]
    # Lease Container request schema.
    # To construct, see NOTES section for PARAMETER properties and create a hash table.
    ${Parameter},

    [Parameter(ParameterSetName='LeaseExpanded', Mandatory)]
    [Parameter(ParameterSetName='LeaseViaIdentityExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Specifies the lease action.
    # Can be one of the available actions.
    ${Action},

    [Parameter(ParameterSetName='LeaseExpanded')]
    [Parameter(ParameterSetName='LeaseViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Int32]
    # Optional.
    # For a break action, proposed duration the lease should continue before it is broken, in seconds, between 0 and 60.
    ${BreakPeriod},

    [Parameter(ParameterSetName='LeaseExpanded')]
    [Parameter(ParameterSetName='LeaseViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Int32]
    # Required for acquire.
    # Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires.
    ${LeaseDuration},

    [Parameter(ParameterSetName='LeaseExpanded')]
    [Parameter(ParameterSetName='LeaseViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Identifies the lease.
    # Can be specified in any valid GUID string format.
    ${LeaseId},

    [Parameter(ParameterSetName='LeaseExpanded')]
    [Parameter(ParameterSetName='LeaseViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Optional for acquire, required for change.
    # Proposed lease ID, in a GUID string format.
    ${ProposedLeaseId},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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 = @{
            Lease = 'Az.Storage.private\Invoke-AzLeaseBlobContainer_Lease';
            LeaseExpanded = 'Az.Storage.private\Invoke-AzLeaseBlobContainer_LeaseExpanded';
            LeaseViaIdentity = 'Az.Storage.private\Invoke-AzLeaseBlobContainer_LeaseViaIdentity';
            LeaseViaIdentityExpanded = 'Az.Storage.private\Invoke-AzLeaseBlobContainer_LeaseViaIdentityExpanded';
        }
        if (('Lease', 'LeaseExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Failover request can be triggered for a storage account in case of availability issues.
The failover occurs from the storage account's primary cluster to secondary cluster for RA-GRS accounts.
The secondary cluster will become primary after failover.
.Description
Failover request can be triggered for a storage account in case of availability issues.
The failover occurs from the storage account's primary cluster to secondary cluster for RA-GRS accounts.
The secondary cluster will become primary after failover.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/invoke-azstorageaccountfailover
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity
.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 <IStorageIdentity>: Identity Parameter
  [AccountName <String>]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
  [BlobServicesName <String>]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default'
  [ContainerName <String>]: The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [FileServicesName <String>]: The name of the file Service within the specified storage account. File Service Name must be "default"
  [Id <String>]: Resource identity path
  [ImmutabilityPolicyName <String>]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default'
  [Location <String>]: The location of the Azure Storage resource.
  [ManagementPolicyName <ManagementPolicyName?>]: The name of the Storage Account Management Policy. It should always be 'default'
  [ResourceGroupName <String>]: The name of the resource group within the user's subscription. The name is case insensitive.
  [ShareName <String>]: The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [SubscriptionId <String>]: The ID of the target subscription.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/invoke-azstorageaccountfailover
#>

function Invoke-AzStorageAccountFailover {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Failover', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Failover', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${Name},

    [Parameter(ParameterSetName='Failover', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Failover')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # The ID of the target subscription.
    ${SubscriptionId},

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

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

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

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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 = @{
            Failover = 'Az.Storage.private\Invoke-AzStorageAccountFailover_Failover';
            FailoverViaIdentity = 'Az.Storage.private\Invoke-AzStorageAccountFailover_FailoverViaIdentity';
        }
        if (('Failover') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Sets the ImmutabilityPolicy to Locked state.
The only action allowed on a Locked policy is ExtendImmutabilityPolicy action.
ETag in If-Match is required for this operation.
.Description
Sets the ImmutabilityPolicy to Locked state.
The only action allowed on a Locked policy is ExtendImmutabilityPolicy action.
ETag in If-Match is required for this operation.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/lock-azrmstoragecontainerimmutabilitypolicy
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180201.IImmutabilityPolicy
.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 <IStorageIdentity>: Identity Parameter
  [AccountName <String>]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
  [BlobServicesName <String>]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default'
  [ContainerName <String>]: The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [FileServicesName <String>]: The name of the file Service within the specified storage account. File Service Name must be "default"
  [Id <String>]: Resource identity path
  [ImmutabilityPolicyName <String>]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default'
  [Location <String>]: The location of the Azure Storage resource.
  [ManagementPolicyName <ManagementPolicyName?>]: The name of the Storage Account Management Policy. It should always be 'default'
  [ResourceGroupName <String>]: The name of the resource group within the user's subscription. The name is case insensitive.
  [ShareName <String>]: The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [SubscriptionId <String>]: The ID of the target subscription.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/lock-azrmstoragecontainerimmutabilitypolicy
#>

function Lock-AzRmStorageContainerImmutabilityPolicy {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180201.IImmutabilityPolicy])]
[CmdletBinding(DefaultParameterSetName='Lock', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Lock', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${AccountName},

    [Parameter(ParameterSetName='Lock', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the blob container within the specified storage account.
    # Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only.
    # Every dash (-) character must be immediately preceded and followed by a letter or number.
    ${ContainerName},

    [Parameter(ParameterSetName='Lock', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Lock')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # The ID of the target subscription.
    ${SubscriptionId},

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

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Header')]
    [System.String]
    # The entity state (ETag) version of the immutability policy to update.
    # A value of "*" can be used to apply the operation only if the immutability policy already exists.
    # If omitted, this operation will always be applied.
    ${IfMatch},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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 = @{
            Lock = 'Az.Storage.private\Lock-AzRmStorageContainerImmutabilityPolicy_Lock';
            LockViaIdentity = 'Az.Storage.private\Lock-AzRmStorageContainerImmutabilityPolicy_LockViaIdentity';
        }
        if (('Lock') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Creates a new share under the specified account as described by request body.
The share resource includes metadata and properties for that share.
It does not include a list of the files contained by the share.
.Description
Creates a new share under the specified account as described by request body.
The share resource includes metadata and properties for that share.
It does not include a list of the files contained by the share.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azfileshare
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IFileShare
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IFileShare
.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.
 
FILESHARE <IFileShare>: Properties of the file share, including Id, resource name, resource type, Etag.
  [Metadata <IFileSharePropertiesMetadata>]: A name-value pair to associate with the share as metadata.
    [(Any) <String>]: This indicates any property can be added to this object.
  [ShareQuota <Int32?>]: The maximum size of the share, in gigabytes. Must be greater than 0, and less than or equal to 5TB (5120).
 
INPUTOBJECT <IStorageIdentity>: Identity Parameter
  [AccountName <String>]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
  [BlobServicesName <String>]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default'
  [ContainerName <String>]: The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [FileServicesName <String>]: The name of the file Service within the specified storage account. File Service Name must be "default"
  [Id <String>]: Resource identity path
  [ImmutabilityPolicyName <String>]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default'
  [Location <String>]: The location of the Azure Storage resource.
  [ManagementPolicyName <ManagementPolicyName?>]: The name of the Storage Account Management Policy. It should always be 'default'
  [ResourceGroupName <String>]: The name of the resource group within the user's subscription. The name is case insensitive.
  [ShareName <String>]: The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [SubscriptionId <String>]: The ID of the target subscription.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azfileshare
#>

function New-AzFileShare {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IFileShare])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${AccountName},

    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the file share within the specified storage account.
    # File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only.
    # Every dash (-) character must be immediately preceded and followed by a letter or number.
    ${ShareName},

    [Parameter(ParameterSetName='Create')]
    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # The ID of the target subscription.
    ${SubscriptionId},

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

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IFileShare]
    # Properties of the file share, including Id, resource name, resource type, Etag.
    # To construct, see NOTES section for FILESHARE properties and create a hash table.
    ${FileShare},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IFileSharePropertiesMetadata]))]
    [System.Collections.Hashtable]
    # A name-value pair to associate with the share as metadata.
    ${Metadata},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Int32]
    # The maximum size of the share, in gigabytes.
    # Must be greater than 0, and less than or equal to 5TB (5120).
    ${ShareQuota},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Create = 'Az.Storage.private\New-AzFileShare_Create';
            CreateExpanded = 'Az.Storage.private\New-AzFileShare_CreateExpanded';
            CreateViaIdentity = 'Az.Storage.private\New-AzFileShare_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Az.Storage.private\New-AzFileShare_CreateViaIdentityExpanded';
        }
        if (('Create', '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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Creates or updates an unlocked immutability policy.
ETag in If-Match is honored if given but not required for this operation.
.Description
Creates or updates an unlocked immutability policy.
ETag in If-Match is honored if given but not required for this operation.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azrmstoragecontainerimmutabilitypolicy
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180201.IImmutabilityPolicy
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180201.IImmutabilityPolicy
.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 <IStorageIdentity>: Identity Parameter
  [AccountName <String>]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
  [BlobServicesName <String>]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default'
  [ContainerName <String>]: The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [FileServicesName <String>]: The name of the file Service within the specified storage account. File Service Name must be "default"
  [Id <String>]: Resource identity path
  [ImmutabilityPolicyName <String>]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default'
  [Location <String>]: The location of the Azure Storage resource.
  [ManagementPolicyName <ManagementPolicyName?>]: The name of the Storage Account Management Policy. It should always be 'default'
  [ResourceGroupName <String>]: The name of the resource group within the user's subscription. The name is case insensitive.
  [ShareName <String>]: The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [SubscriptionId <String>]: The ID of the target subscription.
 
PARAMETER <IImmutabilityPolicy>: The ImmutabilityPolicy property of a blob container, including Id, resource name, resource type, Etag.
  ImmutabilityPeriodSinceCreationInDay <Int32>: The immutability period for the blobs in the container since the policy creation, in days.
  [ETag <String>]: The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azrmstoragecontainerimmutabilitypolicy
#>

function New-AzRmStorageContainerImmutabilityPolicy {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180201.IImmutabilityPolicy])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${AccountName},

    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the blob container within the specified storage account.
    # Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only.
    # Every dash (-) character must be immediately preceded and followed by a letter or number.
    ${ContainerName},

    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Create')]
    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # The ID of the target subscription.
    ${SubscriptionId},

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

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Header')]
    [System.String]
    # The entity state (ETag) version of the immutability policy to update.
    # A value of "*" can be used to apply the operation only if the immutability policy already exists.
    # If omitted, this operation will always be applied.
    ${IfMatch},

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180201.IImmutabilityPolicy]
    # The ImmutabilityPolicy property of a blob container, including Id, resource name, resource type, Etag.
    # To construct, see NOTES section for PARAMETER properties and create a hash table.
    ${Parameter},

    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Int32]
    # The immutability period for the blobs in the container since the policy creation, in days.
    ${ImmutabilityPeriod},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Create = 'Az.Storage.private\New-AzRmStorageContainerImmutabilityPolicy_Create';
            CreateExpanded = 'Az.Storage.private\New-AzRmStorageContainerImmutabilityPolicy_CreateExpanded';
            CreateViaIdentity = 'Az.Storage.private\New-AzRmStorageContainerImmutabilityPolicy_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Az.Storage.private\New-AzRmStorageContainerImmutabilityPolicy_CreateViaIdentityExpanded';
        }
        if (('Create', '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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Creates a new container under the specified account as described by request body.
The container resource includes metadata and properties for that container.
It does not include a list of the blobs contained by the container.
.Description
Creates a new container under the specified account as described by request body.
The container resource includes metadata and properties for that container.
It does not include a list of the blobs contained by the container.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azrmstoragecontainer
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180201.IBlobContainer
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180201.IBlobContainer
.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.
 
BLOBCONTAINER <IBlobContainer>: Properties of the blob container, including Id, resource name, resource type, Etag.
  ImmutabilityPeriodSinceCreationInDay <Int32>: The immutability period for the blobs in the container since the policy creation, in days.
  [LegalHoldTag <ITagProperty[]>]: The list of LegalHold tags of a blob container.
  [Metadata <IContainerPropertiesMetadata>]: A name-value pair to associate with the container as metadata.
    [(Any) <String>]: This indicates any property can be added to this object.
  [PublicAccess <PublicAccess?>]: Specifies whether data in the container may be accessed publicly and the level of access.
 
INPUTOBJECT <IStorageIdentity>: Identity Parameter
  [AccountName <String>]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
  [BlobServicesName <String>]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default'
  [ContainerName <String>]: The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [FileServicesName <String>]: The name of the file Service within the specified storage account. File Service Name must be "default"
  [Id <String>]: Resource identity path
  [ImmutabilityPolicyName <String>]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default'
  [Location <String>]: The location of the Azure Storage resource.
  [ManagementPolicyName <ManagementPolicyName?>]: The name of the Storage Account Management Policy. It should always be 'default'
  [ResourceGroupName <String>]: The name of the resource group within the user's subscription. The name is case insensitive.
  [ShareName <String>]: The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [SubscriptionId <String>]: The ID of the target subscription.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azrmstoragecontainer
#>

function New-AzRmStorageContainer {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180201.IBlobContainer])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${AccountName},

    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the blob container within the specified storage account.
    # Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only.
    # Every dash (-) character must be immediately preceded and followed by a letter or number.
    ${ContainerName},

    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Create')]
    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # The ID of the target subscription.
    ${SubscriptionId},

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

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180201.IBlobContainer]
    # Properties of the blob container, including Id, resource name, resource type, Etag.
    # To construct, see NOTES section for BLOBCONTAINER properties and create a hash table.
    ${BlobContainer},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Int32]
    # The immutability period for the blobs in the container since the policy creation, in days.
    ${ImmutabilityPeriodSinceCreationInDay},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180201.ITagProperty[]]
    # The list of LegalHold tags of a blob container.
    ${LegalHoldTag},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180201.IContainerPropertiesMetadata]))]
    [System.Collections.Hashtable]
    # A name-value pair to associate with the container as metadata.
    ${Metadata},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.PublicAccess])]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.PublicAccess]
    # Specifies whether data in the container may be accessed publicly and the level of access.
    ${PublicAccess},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Create = 'Az.Storage.private\New-AzRmStorageContainer_Create';
            CreateExpanded = 'Az.Storage.private\New-AzRmStorageContainer_CreateExpanded';
            CreateViaIdentity = 'Az.Storage.private\New-AzRmStorageContainer_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Az.Storage.private\New-AzRmStorageContainer_CreateViaIdentityExpanded';
        }
        if (('Create', '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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Regenerates one of the access keys for the specified storage account.
.Description
Regenerates one of the access keys for the specified storage account.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstorageaccountkey
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20171001.IStorageAccountRegenerateKeyParameters
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20171001.IStorageAccountKey
.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 <IStorageIdentity>: Identity Parameter
  [AccountName <String>]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
  [BlobServicesName <String>]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default'
  [ContainerName <String>]: The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [FileServicesName <String>]: The name of the file Service within the specified storage account. File Service Name must be "default"
  [Id <String>]: Resource identity path
  [ImmutabilityPolicyName <String>]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default'
  [Location <String>]: The location of the Azure Storage resource.
  [ManagementPolicyName <ManagementPolicyName?>]: The name of the Storage Account Management Policy. It should always be 'default'
  [ResourceGroupName <String>]: The name of the resource group within the user's subscription. The name is case insensitive.
  [ShareName <String>]: The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [SubscriptionId <String>]: The ID of the target subscription.
 
REGENERATEKEY <IStorageAccountRegenerateKeyParameters>: The parameters used to regenerate the storage account key.
  KeyName <String>: The name of storage keys that want to be regenerated, possible values are key1, key2.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstorageaccountkey
#>

function New-AzStorageAccountKey {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20171001.IStorageAccountKey])]
[CmdletBinding(DefaultParameterSetName='RegenerateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Regenerate', Mandatory)]
    [Parameter(ParameterSetName='RegenerateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${Name},

    [Parameter(ParameterSetName='Regenerate', Mandatory)]
    [Parameter(ParameterSetName='RegenerateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Regenerate')]
    [Parameter(ParameterSetName='RegenerateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # The ID of the target subscription.
    ${SubscriptionId},

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

    [Parameter(ParameterSetName='Regenerate', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='RegenerateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20171001.IStorageAccountRegenerateKeyParameters]
    # The parameters used to regenerate the storage account key.
    # To construct, see NOTES section for REGENERATEKEY properties and create a hash table.
    ${RegenerateKey},

    [Parameter(ParameterSetName='RegenerateExpanded', Mandatory)]
    [Parameter(ParameterSetName='RegenerateViaIdentityExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # The name of storage keys that want to be regenerated, possible values are key1, key2.
    ${KeyName},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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 = @{
            Regenerate = 'Az.Storage.private\New-AzStorageAccountKey_Regenerate';
            RegenerateExpanded = 'Az.Storage.private\New-AzStorageAccountKey_RegenerateExpanded';
            RegenerateViaIdentity = 'Az.Storage.private\New-AzStorageAccountKey_RegenerateViaIdentity';
            RegenerateViaIdentityExpanded = 'Az.Storage.private\New-AzStorageAccountKey_RegenerateViaIdentityExpanded';
        }
        if (('Regenerate', 'RegenerateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Sets the managementpolicy to the specified storage account.
.Description
Sets the managementpolicy to the specified storage account.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstorageaccountmanagementpolicy
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IManagementPolicy
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IManagementPolicy
.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 <IStorageIdentity>: Identity Parameter
  [AccountName <String>]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
  [BlobServicesName <String>]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default'
  [ContainerName <String>]: The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [FileServicesName <String>]: The name of the file Service within the specified storage account. File Service Name must be "default"
  [Id <String>]: Resource identity path
  [ImmutabilityPolicyName <String>]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default'
  [Location <String>]: The location of the Azure Storage resource.
  [ManagementPolicyName <ManagementPolicyName?>]: The name of the Storage Account Management Policy. It should always be 'default'
  [ResourceGroupName <String>]: The name of the resource group within the user's subscription. The name is case insensitive.
  [ShareName <String>]: The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [SubscriptionId <String>]: The ID of the target subscription.
 
POLICYRULE <IManagementPolicyRule[]>: The Storage Account ManagementPolicies Rules. See more details in: https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts.
  DeleteDaysAfterCreationGreaterThan <Single>: Value indicating the age in days after creation
  DeleteDaysAfterModificationGreaterThan <Single>: Value indicating the age in days after last modification
  FilterBlobType <String[]>: An array of predefined enum values. Only blockBlob is supported.
  Name <String>: A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy.
  TierToArchiveDaysAfterModificationGreaterThan <Single>: Value indicating the age in days after last modification
  TierToCoolDaysAfterModificationGreaterThan <Single>: Value indicating the age in days after last modification
  [Enabled <Boolean?>]: Rule is enabled if set to true.
  [FilterPrefixMatch <String[]>]: An array of strings for prefixes to be match.
 
PROPERTY <IManagementPolicy>: The Get Storage Account ManagementPolicies operation response.
  PolicyRule <IManagementPolicyRule[]>: The Storage Account ManagementPolicies Rules. See more details in: https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts.
    DeleteDaysAfterCreationGreaterThan <Single>: Value indicating the age in days after creation
    DeleteDaysAfterModificationGreaterThan <Single>: Value indicating the age in days after last modification
    FilterBlobType <String[]>: An array of predefined enum values. Only blockBlob is supported.
    Name <String>: A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy.
    TierToArchiveDaysAfterModificationGreaterThan <Single>: Value indicating the age in days after last modification
    TierToCoolDaysAfterModificationGreaterThan <Single>: Value indicating the age in days after last modification
    [Enabled <Boolean?>]: Rule is enabled if set to true.
    [FilterPrefixMatch <String[]>]: An array of strings for prefixes to be match.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstorageaccountmanagementpolicy
#>

function New-AzStorageAccountManagementPolicy {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IManagementPolicy])]
[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${Name},

    [Parameter(ParameterSetName='Create', Mandatory)]
    [Parameter(ParameterSetName='CreateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Create')]
    [Parameter(ParameterSetName='CreateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # The ID of the target subscription.
    ${SubscriptionId},

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

    [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CreateViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IManagementPolicy]
    # The Get Storage Account ManagementPolicies operation response.
    # To construct, see NOTES section for PROPERTY properties and create a hash table.
    ${Property},

    [Parameter(ParameterSetName='CreateExpanded')]
    [Parameter(ParameterSetName='CreateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IManagementPolicyRule[]]
    # The Storage Account ManagementPolicies Rules.
    # See more details in: https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts.
    # To construct, see NOTES section for POLICYRULE properties and create a hash table.
    ${PolicyRule},

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

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

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

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

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

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

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

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            Create = 'Az.Storage.private\New-AzStorageAccountManagementPolicy_Create';
            CreateExpanded = 'Az.Storage.private\New-AzStorageAccountManagementPolicy_CreateExpanded';
            CreateViaIdentity = 'Az.Storage.private\New-AzStorageAccountManagementPolicy_CreateViaIdentity';
            CreateViaIdentityExpanded = 'Az.Storage.private\New-AzStorageAccountManagementPolicy_CreateViaIdentityExpanded';
        }
        if (('Create', '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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstorageaccountsastoken
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Outputs
System.String
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstorageaccountsastoken
#>

function New-AzStorageAccountSASToken {
[OutputType([System.String])]
[CmdletBinding(PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.SharedAccessAccountServices]
    # Service type that this SAS token applies to.
    ${Service},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.SharedAccessAccountResourceTypes]
    # Resource type that this SAS token applies to.
    ${ResourceType},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Permissions.
    ${Permission},

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[Microsoft.Azure.Storage.SharedAccessProtocol]]
    # Protocol can be used in the request with this SAS token.
    ${Protocol},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # IP, or IP range ACL (access control list) that the request would be accepted by Azure Storage.
    ${IPAddressOrRange},

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTime]]
    # Start Time
    ${StartTime},

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTime]]
    # Expiry Time
    ${ExpiryTime},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('AzureRmContext', 'AzureCredential')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\New-AzStorageAccountSASToken!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstorageblobsastoken
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
Microsoft.Azure.Storage.Blob.CloudBlob
.Outputs
System.String
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstorageblobsastoken
#>

function New-AzStorageBlobSASToken {
[OutputType([System.String])]
[CmdletBinding(DefaultParameterSetName='BlobNameWithPermission', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='BlobNameWithPermission', Position=0, Mandatory)]
    [Parameter(ParameterSetName='BlobNameWithPolicy', Position=0, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Container Name
    ${Container},

    [Parameter(ParameterSetName='BlobNameWithPermission', Position=1, Mandatory)]
    [Parameter(ParameterSetName='BlobNameWithPolicy', Position=1, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Blob Name
    ${Blob},

    [Parameter(ParameterSetName='BlobNameWithPermission')]
    [Parameter(ParameterSetName='BlobPipelineWithPermission')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Permissions for a blob.
    # Permissions can be any not-empty subset of "rwd".
    ${Permission},

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[Microsoft.Azure.Storage.SharedAccessProtocol]]
    # Protocol can be used in the request with this SAS token.
    ${Protocol},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # IP, or IP range ACL (access control list) that the request would be accepted by Azure Storage.
    ${IPAddressOrRange},

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTime]]
    # Start Time
    ${StartTime},

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTime]]
    # Expiry Time
    ${ExpiryTime},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Display full uri with sas token
    ${FullUri},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

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

    [Parameter(ParameterSetName='BlobPipelineWithPolicy', Mandatory, ValueFromPipelineByPropertyName)]
    [Parameter(ParameterSetName='BlobPipelineWithPermission', Mandatory, ValueFromPipelineByPropertyName)]
    [Alias('ICloudBlob')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.Blob.CloudBlob]
    # CloudBlob Object
    ${CloudBlob},

    [Parameter(ParameterSetName='BlobPipelineWithPolicy', Mandatory)]
    [Parameter(ParameterSetName='BlobNameWithPolicy', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Policy Identifier
    ${Policy}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            BlobNameWithPermission = 'Az.Storage.private\New-AzStorageBlobSASToken!V2';
            BlobPipelineWithPolicy = 'Az.Storage.private\New-AzStorageBlobSASToken!V2';
            BlobPipelineWithPermission = 'Az.Storage.private\New-AzStorageBlobSASToken!V2';
            BlobNameWithPolicy = 'Az.Storage.private\New-AzStorageBlobSASToken!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragecontainer
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
Microsoft.Azure.Commands.Common.Storage.ResourceModel.AzureStorageContainer
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragecontainer
#>

function New-AzStorageContainer {
[OutputType([Microsoft.Azure.Commands.Common.Storage.ResourceModel.AzureStorageContainer])]
[CmdletBinding(PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Container')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Container name
    ${Name},

    [Parameter(Position=1)]
    [Alias('PublicAccess')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[Microsoft.Azure.Storage.Blob.BlobContainerPublicAccessType]]
    # Permission string Off/Blob/Container
    ${Permission},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            __AllParameterSets = 'Az.Storage.private\New-AzStorageContainer!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragecontainersastoken
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
System.String
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragecontainersastoken
#>

function New-AzStorageContainerSASToken {
[OutputType([System.String])]
[CmdletBinding(DefaultParameterSetName='SasPermission', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Container')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Container Name
    ${Name},

    [Parameter(ParameterSetName='SasPolicy', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Policy Identifier
    ${Policy},

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[Microsoft.Azure.Storage.SharedAccessProtocol]]
    # Protocol can be used in the request with this SAS token.
    ${Protocol},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # IP, or IP range ACL (access control list) that the request would be accepted by Azure Storage.
    ${IPAddressOrRange},

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTime]]
    # Start Time
    ${StartTime},

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTime]]
    # Expiry Time
    ${ExpiryTime},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Display full uri with sas token
    ${FullUri},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

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

    [Parameter(ParameterSetName='SasPermission')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Permissions for a container.
    # Permissions can be any not-empty subset of "rwdl".
    ${Permission}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            SasPolicy = 'Az.Storage.private\New-AzStorageContainerSASToken!V2';
            SasPermission = 'Az.Storage.private\New-AzStorageContainerSASToken!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragecontainerstoredaccesspolicy
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
System.String
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragecontainerstoredaccesspolicy
#>

function New-AzStorageContainerStoredAccessPolicy {
[OutputType([System.String])]
[CmdletBinding(PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Name')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Container name
    ${Container},

    [Parameter(Position=1, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Policy Identifier.
    # Need to be unique in the Container
    ${Policy},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Permissions for a container.
    # Permissions can be any subset of "rwdl".
    ${Permission},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTime]]
    # Start Time
    ${StartTime},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTime]]
    # Expiry Time
    ${ExpiryTime},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            __AllParameterSets = 'Az.Storage.private\New-AzStorageContainerStoredAccessPolicy!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragecontext
.Inputs
System.String
.Outputs
Microsoft.Azure.Commands.Storage.AzureStorageContext
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragecontext
#>

function New-AzStorageContext {
[OutputType([Microsoft.Azure.Commands.Storage.AzureStorageContext])]
[CmdletBinding(DefaultParameterSetName='OAuthAccount', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='OAuthAccount', Position=0, Mandatory)]
    [Parameter(ParameterSetName='AccountNameAndKey', Position=0, Mandatory)]
    [Parameter(ParameterSetName='AccountNameAndKeyEnvironment', Position=0, Mandatory)]
    [Parameter(ParameterSetName='AnonymousAccount', Position=0, Mandatory)]
    [Parameter(ParameterSetName='AnonymousAccountEnvironment', Position=0, Mandatory)]
    [Parameter(ParameterSetName='SasToken', Position=0, Mandatory)]
    [Parameter(ParameterSetName='SasTokenWithAzureEnvironment', Position=0, Mandatory)]
    [Parameter(ParameterSetName='OAuthAccountEnvironment', Position=0, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Azure Storage Account Name
    ${StorageAccountName},

    [Parameter(ParameterSetName='OAuthAccount')]
    [Parameter(ParameterSetName='OAuthAccountEnvironment')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Use OAuth storage account
    ${UseConnectedAccount},

    [Parameter(ParameterSetName='OAuthAccount')]
    [Parameter(ParameterSetName='AccountNameAndKey')]
    [Parameter(ParameterSetName='AccountNameAndKeyEnvironment')]
    [Parameter(ParameterSetName='AnonymousAccount')]
    [Parameter(ParameterSetName='AnonymousAccountEnvironment')]
    [Parameter(ParameterSetName='SasToken')]
    [Parameter(ParameterSetName='OAuthAccountEnvironment')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Protocol specification (HTTP or HTTPS), default is HTTPS
    ${Protocol},

    [Parameter(ParameterSetName='OAuthAccount')]
    [Parameter(ParameterSetName='AccountNameAndKey')]
    [Parameter(ParameterSetName='AnonymousAccount')]
    [Parameter(ParameterSetName='SasToken')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Azure storage endpoint
    ${Endpoint},

    [Parameter(ParameterSetName='AccountNameAndKey', Position=1, Mandatory)]
    [Parameter(ParameterSetName='AccountNameAndKeyEnvironment', Position=1, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Azure Storage Account Key
    ${StorageAccountKey},

    [Parameter(ParameterSetName='AccountNameAndKeyEnvironment', Mandatory, ValueFromPipelineByPropertyName)]
    [Parameter(ParameterSetName='AnonymousAccountEnvironment', Mandatory, ValueFromPipelineByPropertyName)]
    [Parameter(ParameterSetName='SasTokenWithAzureEnvironment', Mandatory)]
    [Parameter(ParameterSetName='OAuthAccountEnvironment', Mandatory)]
    [Alias('Name', 'EnvironmentName')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Azure environment name
    ${Environment},

    [Parameter(ParameterSetName='AnonymousAccount', Mandatory)]
    [Parameter(ParameterSetName='AnonymousAccountEnvironment', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Use anonymous storage account
    ${Anonymous},

    [Parameter(ParameterSetName='SasToken', Mandatory)]
    [Parameter(ParameterSetName='SasTokenWithAzureEnvironment', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Azure Storage SAS Token
    ${SasToken},

    [Parameter(ParameterSetName='ConnectionString', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Azure Storage Connection String
    ${ConnectionString},

    [Parameter(ParameterSetName='LocalDevelopment', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Use local development storage account
    ${Local}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            OAuthAccount = 'Az.Storage.private\New-AzStorageContext!V2';
            AccountNameAndKey = 'Az.Storage.private\New-AzStorageContext!V2';
            AccountNameAndKeyEnvironment = 'Az.Storage.private\New-AzStorageContext!V2';
            AnonymousAccount = 'Az.Storage.private\New-AzStorageContext!V2';
            AnonymousAccountEnvironment = 'Az.Storage.private\New-AzStorageContext!V2';
            SasToken = 'Az.Storage.private\New-AzStorageContext!V2';
            SasTokenWithAzureEnvironment = 'Az.Storage.private\New-AzStorageContext!V2';
            OAuthAccountEnvironment = 'Az.Storage.private\New-AzStorageContext!V2';
            ConnectionString = 'Az.Storage.private\New-AzStorageContext!V2';
            LocalDevelopment = 'Az.Storage.private\New-AzStorageContext!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragedirectory
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
Microsoft.Azure.Storage.File.CloudFileDirectory
.Inputs
Microsoft.Azure.Storage.File.CloudFileShare
.Inputs
System.String
.Outputs
Microsoft.Azure.Storage.File.CloudFileDirectory
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragedirectory
#>

function New-AzStorageDirectory {
[OutputType([Microsoft.Azure.Storage.File.CloudFileDirectory])]
[CmdletBinding(DefaultParameterSetName='ShareName', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=1, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Path of the directory to be created.
    ${Path},

    [Parameter(ParameterSetName='ShareName', Position=0, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Name of the file share where the directory would be created.
    ${ShareName},

    [Parameter(ParameterSetName='ShareName', ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount},

    [Parameter(ParameterSetName='Share', Position=0, Mandatory, ValueFromPipeline)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFileShare]
    # CloudFileShare object indicated the share where the directory would be created.
    ${Share},

    [Parameter(ParameterSetName='Directory', Position=0, Mandatory, ValueFromPipeline)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFileDirectory]
    # CloudFileDirectory object indicated the base folder where the new directory would be created.
    ${Directory}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            ShareName = 'Az.Storage.private\New-AzStorageDirectory!V2';
            Share = 'Az.Storage.private\New-AzStorageDirectory!V2';
            Directory = 'Az.Storage.private\New-AzStorageDirectory!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragefilesastoken
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
Microsoft.Azure.Storage.File.CloudFile
.Inputs
System.String
.Outputs
System.String
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragefilesastoken
#>

function New-AzStorageFileSASToken {
[OutputType([System.String])]
[CmdletBinding(DefaultParameterSetName='NameSasPermission', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='NameSasPermission', Position=0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Parameter(ParameterSetName='NameSasPolicy', Position=0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Share Name
    ${ShareName},

    [Parameter(ParameterSetName='NameSasPermission', Position=1, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Parameter(ParameterSetName='NameSasPolicy', Position=1, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Path to the cloud file to generate sas token against.
    ${Path},

    [Parameter(ParameterSetName='NameSasPermission')]
    [Parameter(ParameterSetName='FileSasPermission')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Permissions for a file.
    # Permissions can be any subset of "rwd".
    ${Permission},

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[Microsoft.Azure.Storage.SharedAccessProtocol]]
    # Protocol can be used in the request with this SAS token.
    ${Protocol},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # IP, or IP range ACL (access control list) that the request would be accepted by Azure Storage.
    ${IPAddressOrRange},

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTime]]
    # Start Time
    ${StartTime},

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTime]]
    # Expiry Time
    ${ExpiryTime},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Display full uri with sas token
    ${FullUri},

    [Parameter(ParameterSetName='NameSasPermission', ValueFromPipeline)]
    [Parameter(ParameterSetName='NameSasPolicy', ValueFromPipeline)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

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

    [Parameter(ParameterSetName='NameSasPolicy', Mandatory)]
    [Parameter(ParameterSetName='FileSasPolicy', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Policy Identifier
    ${Policy},

    [Parameter(ParameterSetName='FileSasPermission', Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Parameter(ParameterSetName='FileSasPolicy', Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFile]
    # CloudFile instance to represent the file to get SAS token against.
    ${File}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            NameSasPermission = 'Az.Storage.private\New-AzStorageFileSASToken!V2';
            NameSasPolicy = 'Az.Storage.private\New-AzStorageFileSASToken!V2';
            FileSasPermission = 'Az.Storage.private\New-AzStorageFileSASToken!V2';
            FileSasPolicy = 'Az.Storage.private\New-AzStorageFileSASToken!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragequeue
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
Microsoft.Azure.Commands.Common.Storage.ResourceModel.AzureStorageQueue
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragequeue
#>

function New-AzStorageQueue {
[OutputType([Microsoft.Azure.Commands.Common.Storage.ResourceModel.AzureStorageQueue])]
[CmdletBinding(PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Queue')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Queue name
    ${Name},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('AzureRmContext', 'AzureCredential')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\New-AzStorageQueue!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragequeuesastoken
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
System.String
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragequeuesastoken
#>

function New-AzStorageQueueSASToken {
[OutputType([System.String])]
[CmdletBinding(DefaultParameterSetName='SasPermission', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Queue')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Table Name
    ${Name},

    [Parameter(ParameterSetName='SasPolicy', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Policy Identifier
    ${Policy},

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[Microsoft.Azure.Storage.SharedAccessProtocol]]
    # Protocol can be used in the request with this SAS token.
    ${Protocol},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # IP, or IP range ACL (access control list) that the request would be accepted from by Azure Storage.
    ${IPAddressOrRange},

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTime]]
    # Start Time
    ${StartTime},

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTime]]
    # Expiry Time
    ${ExpiryTime},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Display full uri with sas token
    ${FullUri},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

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

    [Parameter(ParameterSetName='SasPermission')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Permissions for a container.
    # Permissions can be any not-empty subset of "raup".
    ${Permission}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            SasPolicy = 'Az.Storage.private\New-AzStorageQueueSASToken!V2';
            SasPermission = 'Az.Storage.private\New-AzStorageQueueSASToken!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragequeuestoredaccesspolicy
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
System.String
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragequeuestoredaccesspolicy
#>

function New-AzStorageQueueStoredAccessPolicy {
[OutputType([System.String])]
[CmdletBinding(PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Name')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Queue Name
    ${Queue},

    [Parameter(Position=1, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Policy Identifier.
    # Need to be unique in the Queue
    ${Policy},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Permissions for a queue.
    # Permissions can be any not-empty subset of "arup".
    ${Permission},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTime]]
    # Start Time
    ${StartTime},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTime]]
    # Expiry Time
    ${ExpiryTime},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('AzureRmContext', 'AzureCredential')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\New-AzStorageQueueStoredAccessPolicy!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstorageshare
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
Microsoft.Azure.Storage.File.CloudFileShare
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstorageshare
#>

function New-AzStorageShare {
[OutputType([Microsoft.Azure.Storage.File.CloudFileShare])]
[CmdletBinding(DefaultParameterSetName='ShareName', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Name of the file share to be created.
    ${Name},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            ShareName = 'Az.Storage.private\New-AzStorageShare!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragesharesastoken
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
System.String
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragesharesastoken
#>

function New-AzStorageShareSASToken {
[OutputType([System.String])]
[CmdletBinding(DefaultParameterSetName='SasPermission', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Name')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Share Name
    ${ShareName},

    [Parameter(ParameterSetName='SasPolicy', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Policy Identifier
    ${Policy},

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[Microsoft.Azure.Storage.SharedAccessProtocol]]
    # Protocol can be used in the request with this SAS token.
    ${Protocol},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # IP, or IP range ACL (access control list) that the request would be accepted by Azure Storage.
    ${IPAddressOrRange},

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTime]]
    # Start Time
    ${StartTime},

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTime]]
    # Expiry Time
    ${ExpiryTime},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Display full uri with sas token
    ${FullUri},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

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

    [Parameter(ParameterSetName='SasPermission')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Permissions for a share.
    # Permissions can be any subset of "rwdl".
    ${Permission}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            SasPolicy = 'Az.Storage.private\New-AzStorageShareSASToken!V2';
            SasPermission = 'Az.Storage.private\New-AzStorageShareSASToken!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragesharestoredaccesspolicy
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
System.String
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragesharestoredaccesspolicy
#>

function New-AzStorageShareStoredAccessPolicy {
[OutputType([System.String])]
[CmdletBinding(DefaultParameterSetName='ShareName', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Name')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Share name
    ${ShareName},

    [Parameter(Position=1, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Policy Identifier.
    # Need to be unique in the Share
    ${Policy},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Permissions for a share.
    # Permissions can be any subset of "rwdl".
    ${Permission},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTime]]
    # Start Time
    ${StartTime},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTime]]
    # Expiry Time
    ${ExpiryTime},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            ShareName = 'Az.Storage.private\New-AzStorageShareStoredAccessPolicy!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragetable
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
Microsoft.Azure.Commands.Common.Storage.ResourceModel.AzureStorageTable
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragetable
#>

function New-AzStorageTable {
[OutputType([Microsoft.Azure.Commands.Common.Storage.ResourceModel.AzureStorageTable])]
[CmdletBinding(PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Table')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Table name
    ${Name},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('AzureRmContext', 'AzureCredential')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\New-AzStorageTable!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragetablesastoken
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
System.String
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragetablesastoken
#>

function New-AzStorageTableSASToken {
[OutputType([System.String])]
[CmdletBinding(DefaultParameterSetName='SasPermission', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Table')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Table Name
    ${Name},

    [Parameter(ParameterSetName='SasPolicy', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Policy Identifier
    ${Policy},

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[Microsoft.Azure.Cosmos.Table.SharedAccessProtocol]]
    # Protocol can be used in the request with this SAS token.
    ${Protocol},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # IP, or IP range ACL (access control list) that the request would be accepted by Azure Storage.
    ${IPAddressOrRange},

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTime]]
    # Start Time
    ${StartTime},

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTime]]
    # Expiry Time
    ${ExpiryTime},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Display full uri with sas token
    ${FullUri},

    [Parameter()]
    [Alias('startpk')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Start Partition Key
    ${StartPartitionKey},

    [Parameter()]
    [Alias('startrk')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Start Row Key
    ${StartRowKey},

    [Parameter()]
    [Alias('endpk')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # End Partition Key
    ${EndPartitionKey},

    [Parameter()]
    [Alias('endrk')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # End Row Key
    ${EndRowKey},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

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

    [Parameter(ParameterSetName='SasPermission')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Permissions for a container.
    # Permissions can be any not-empty subset of "audq".
    ${Permission}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            SasPolicy = 'Az.Storage.private\New-AzStorageTableSASToken!V2';
            SasPermission = 'Az.Storage.private\New-AzStorageTableSASToken!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragetablestoredaccesspolicy
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
System.String
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstoragetablestoredaccesspolicy
#>

function New-AzStorageTableStoredAccessPolicy {
[OutputType([System.String])]
[CmdletBinding(PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Name')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Table Name
    ${Table},

    [Parameter(Position=1, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Policy Identifier.
    # Need to be unique in the Table
    ${Policy},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Permissions for a table.
    # Permissions can be any not-empty subset of "audqr".
    ${Permission},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTime]]
    # Start Time
    ${StartTime},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTime]]
    # Expiry Time
    ${ExpiryTime},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('AzureRmContext', 'AzureCredential')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\New-AzStorageTableStoredAccessPolicy!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Deletes specified share under its account.
.Description
Deletes specified share under its account.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azfileshare
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity
.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 <IStorageIdentity>: Identity Parameter
  [AccountName <String>]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
  [BlobServicesName <String>]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default'
  [ContainerName <String>]: The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [FileServicesName <String>]: The name of the file Service within the specified storage account. File Service Name must be "default"
  [Id <String>]: Resource identity path
  [ImmutabilityPolicyName <String>]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default'
  [Location <String>]: The location of the Azure Storage resource.
  [ManagementPolicyName <ManagementPolicyName?>]: The name of the Storage Account Management Policy. It should always be 'default'
  [ResourceGroupName <String>]: The name of the resource group within the user's subscription. The name is case insensitive.
  [ShareName <String>]: The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [SubscriptionId <String>]: The ID of the target subscription.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azfileshare
#>

function Remove-AzFileShare {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${AccountName},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the file share within the specified storage account.
    # File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only.
    # Every dash (-) character must be immediately preceded and followed by a letter or number.
    ${ShareName},

    [Parameter(ParameterSetName='Delete')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # The ID of the target subscription.
    ${SubscriptionId},

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

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Remove-AzFileShare_Delete';
            DeleteViaIdentity = 'Az.Storage.private\Remove-AzFileShare_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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Aborts an unlocked immutability policy.
The response of delete has immutabilityPeriodSinceCreationInDays set to 0.
ETag in If-Match is required for this operation.
Deleting a locked immutability policy is not allowed, only way is to delete the container after deleting all blobs inside the container.
.Description
Aborts an unlocked immutability policy.
The response of delete has immutabilityPeriodSinceCreationInDays set to 0.
ETag in If-Match is required for this operation.
Deleting a locked immutability policy is not allowed, only way is to delete the container after deleting all blobs inside the container.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azrmstoragecontainerimmutabilitypolicy
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180201.IImmutabilityPolicy
.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 <IStorageIdentity>: Identity Parameter
  [AccountName <String>]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
  [BlobServicesName <String>]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default'
  [ContainerName <String>]: The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [FileServicesName <String>]: The name of the file Service within the specified storage account. File Service Name must be "default"
  [Id <String>]: Resource identity path
  [ImmutabilityPolicyName <String>]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default'
  [Location <String>]: The location of the Azure Storage resource.
  [ManagementPolicyName <ManagementPolicyName?>]: The name of the Storage Account Management Policy. It should always be 'default'
  [ResourceGroupName <String>]: The name of the resource group within the user's subscription. The name is case insensitive.
  [ShareName <String>]: The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [SubscriptionId <String>]: The ID of the target subscription.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azrmstoragecontainerimmutabilitypolicy
#>

function Remove-AzRmStorageContainerImmutabilityPolicy {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180201.IImmutabilityPolicy])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${AccountName},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the blob container within the specified storage account.
    # Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only.
    # Every dash (-) character must be immediately preceded and followed by a letter or number.
    ${ContainerName},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Delete')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # The ID of the target subscription.
    ${SubscriptionId},

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

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Header')]
    [System.String]
    # The entity state (ETag) version of the immutability policy to update.
    # A value of "*" can be used to apply the operation only if the immutability policy already exists.
    # If omitted, this operation will always be applied.
    ${IfMatch},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Remove-AzRmStorageContainerImmutabilityPolicy_Delete';
            DeleteViaIdentity = 'Az.Storage.private\Remove-AzRmStorageContainerImmutabilityPolicy_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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Deletes specified container under its account.
.Description
Deletes specified container under its account.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azrmstoragecontainer
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity
.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 <IStorageIdentity>: Identity Parameter
  [AccountName <String>]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
  [BlobServicesName <String>]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default'
  [ContainerName <String>]: The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [FileServicesName <String>]: The name of the file Service within the specified storage account. File Service Name must be "default"
  [Id <String>]: Resource identity path
  [ImmutabilityPolicyName <String>]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default'
  [Location <String>]: The location of the Azure Storage resource.
  [ManagementPolicyName <ManagementPolicyName?>]: The name of the Storage Account Management Policy. It should always be 'default'
  [ResourceGroupName <String>]: The name of the resource group within the user's subscription. The name is case insensitive.
  [ShareName <String>]: The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [SubscriptionId <String>]: The ID of the target subscription.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azrmstoragecontainer
#>

function Remove-AzRmStorageContainer {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${AccountName},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the blob container within the specified storage account.
    # Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only.
    # Every dash (-) character must be immediately preceded and followed by a letter or number.
    ${ContainerName},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Delete')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # The ID of the target subscription.
    ${SubscriptionId},

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

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Remove-AzRmStorageContainer_Delete';
            DeleteViaIdentity = 'Az.Storage.private\Remove-AzRmStorageContainer_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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Deletes the managementpolicy associated with the specified storage account.
.Description
Deletes the managementpolicy associated with the specified storage account.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azstorageaccountmanagementpolicy
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity
.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 <IStorageIdentity>: Identity Parameter
  [AccountName <String>]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
  [BlobServicesName <String>]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default'
  [ContainerName <String>]: The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [FileServicesName <String>]: The name of the file Service within the specified storage account. File Service Name must be "default"
  [Id <String>]: Resource identity path
  [ImmutabilityPolicyName <String>]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default'
  [Location <String>]: The location of the Azure Storage resource.
  [ManagementPolicyName <ManagementPolicyName?>]: The name of the Storage Account Management Policy. It should always be 'default'
  [ResourceGroupName <String>]: The name of the resource group within the user's subscription. The name is case insensitive.
  [ShareName <String>]: The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [SubscriptionId <String>]: The ID of the target subscription.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azstorageaccountmanagementpolicy
#>

function Remove-AzStorageAccountManagementPolicy {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${Name},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Delete')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # The ID of the target subscription.
    ${SubscriptionId},

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

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Remove-AzStorageAccountManagementPolicy_Delete';
            DeleteViaIdentity = 'Az.Storage.private\Remove-AzStorageAccountManagementPolicy_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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Deletes a storage account in Microsoft Azure.
.Description
Deletes a storage account in Microsoft Azure.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azstorageaccount
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity
.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 <IStorageIdentity>: Identity Parameter
  [AccountName <String>]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
  [BlobServicesName <String>]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default'
  [ContainerName <String>]: The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [FileServicesName <String>]: The name of the file Service within the specified storage account. File Service Name must be "default"
  [Id <String>]: Resource identity path
  [ImmutabilityPolicyName <String>]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default'
  [Location <String>]: The location of the Azure Storage resource.
  [ManagementPolicyName <ManagementPolicyName?>]: The name of the Storage Account Management Policy. It should always be 'default'
  [ResourceGroupName <String>]: The name of the resource group within the user's subscription. The name is case insensitive.
  [ShareName <String>]: The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [SubscriptionId <String>]: The ID of the target subscription.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azstorageaccount
#>

function Remove-AzStorageAccount {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${Name},

    [Parameter(ParameterSetName='Delete', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Delete')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # The ID of the target subscription.
    ${SubscriptionId},

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

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Remove-AzStorageAccount_Delete';
            DeleteViaIdentity = 'Az.Storage.private\Remove-AzStorageAccount_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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azstorageblob
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
Microsoft.Azure.Storage.Blob.CloudBlob
.Inputs
Microsoft.Azure.Storage.Blob.CloudBlobContainer
.Outputs
System.Boolean
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azstorageblob
#>

function Remove-AzStorageBlob {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='NamePipeline', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='NamePipeline', Position=0, Mandatory)]
    [Parameter(ParameterSetName='ContainerPipeline', Position=0, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Blob name
    ${Blob},

    [Parameter(ParameterSetName='NamePipeline', Position=1, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Container name
    ${Container},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Only delete blob snapshots
    ${DeleteSnapshot},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Force to remove the blob and its snapshot
    ${Force},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Return whether the specified blob is successfully removed
    ${PassThru},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount},

    [Parameter(ParameterSetName='BlobPipeline', Mandatory, ValueFromPipelineByPropertyName)]
    [Alias('ICloudBlob')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.Blob.CloudBlob]
    # CloudBlob Object
    ${CloudBlob},

    [Parameter(ParameterSetName='ContainerPipeline', Mandatory, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.Blob.CloudBlobContainer]
    # CloudBlobContainer Object
    ${CloudBlobContainer}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            NamePipeline = 'Az.Storage.private\Remove-AzStorageBlob!V2';
            BlobPipeline = 'Az.Storage.private\Remove-AzStorageBlob!V2';
            ContainerPipeline = 'Az.Storage.private\Remove-AzStorageBlob!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azstoragecontainer
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
System.Boolean
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azstoragecontainer
#>

function Remove-AzStorageContainer {
[OutputType([System.Boolean])]
[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Container')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Container Name
    ${Name},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Force to remove the container and all content in it
    ${Force},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Return whether the specified container is successfully removed
    ${PassThru},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            __AllParameterSets = 'Az.Storage.private\Remove-AzStorageContainer!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azstoragecontainerstoredaccesspolicy
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
System.Boolean
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azstoragecontainerstoredaccesspolicy
#>

function Remove-AzStorageContainerStoredAccessPolicy {
[OutputType([System.Boolean])]
[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Name')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Container name
    ${Container},

    [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Policy Identifier
    ${Policy},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Return whether the specified policy is successfully removed
    ${PassThru},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            __AllParameterSets = 'Az.Storage.private\Remove-AzStorageContainerStoredAccessPolicy!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azstoragecorsrule
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Outputs
System.Void
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azstoragecorsrule
#>

function Remove-AzStorageCORSRule {
[OutputType([System.Void])]
[CmdletBinding(PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Storage.Common.StorageServiceType]
    # Azure storage service type(Blob, Table, Queue).
    ${ServiceType},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            __AllParameterSets = 'Az.Storage.private\Remove-AzStorageCORSRule!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azstoragedirectory
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
Microsoft.Azure.Storage.File.CloudFileDirectory
.Inputs
Microsoft.Azure.Storage.File.CloudFileShare
.Inputs
System.String
.Outputs
Microsoft.Azure.Storage.File.CloudFileDirectory
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azstoragedirectory
#>

function Remove-AzStorageDirectory {
[OutputType([Microsoft.Azure.Storage.File.CloudFileDirectory])]
[CmdletBinding(DefaultParameterSetName='ShareName', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=1, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Path to the directory to be removed.
    ${Path},

    [Parameter(ParameterSetName='ShareName', Position=0, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Name of the file share where the directory would be removed.
    ${ShareName},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Returns an object representing the removed directory.
    # By default, this cmdlet does not generate any output.
    ${PassThru},

    [Parameter(ParameterSetName='ShareName', ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount},

    [Parameter(ParameterSetName='Share', Position=0, Mandatory, ValueFromPipeline)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFileShare]
    # CloudFileShare object indicated the share where the directory would be removed.
    ${Share},

    [Parameter(ParameterSetName='Directory', Position=0, Mandatory, ValueFromPipeline)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFileDirectory]
    # CloudFileDirectory object indicated the base folder where the directory would be removed.
    ${Directory}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            ShareName = 'Az.Storage.private\Remove-AzStorageDirectory!V2';
            Share = 'Az.Storage.private\Remove-AzStorageDirectory!V2';
            Directory = 'Az.Storage.private\Remove-AzStorageDirectory!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azstoragefile
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
Microsoft.Azure.Storage.File.CloudFile
.Inputs
Microsoft.Azure.Storage.File.CloudFileDirectory
.Inputs
Microsoft.Azure.Storage.File.CloudFileShare
.Outputs
Microsoft.Azure.Storage.File.CloudFile
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azstoragefile
#>

function Remove-AzStorageFile {
[OutputType([Microsoft.Azure.Storage.File.CloudFile])]
[CmdletBinding(DefaultParameterSetName='ShareName', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='ShareName', Position=0, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Name of the file share where the file would be removed.
    ${ShareName},

    [Parameter(ParameterSetName='ShareName', Position=1, Mandatory)]
    [Parameter(ParameterSetName='Share', Position=1, Mandatory)]
    [Parameter(ParameterSetName='Directory', Position=1, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Path of the file to be removed.
    ${Path},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Returns an object representing the removed file.
    # By default, this cmdlet does not generate any output.
    ${PassThru},

    [Parameter(ParameterSetName='ShareName', ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount},

    [Parameter(ParameterSetName='Share', Position=0, Mandatory, ValueFromPipeline)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFileShare]
    # CloudFileShare object indicated the share where the file would be removed.
    ${Share},

    [Parameter(ParameterSetName='Directory', Position=0, Mandatory, ValueFromPipeline)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFileDirectory]
    # CloudFileDirectory object indicated the cloud directory where the file would be removed.
    ${Directory},

    [Parameter(ParameterSetName='File', Position=0, Mandatory, ValueFromPipeline)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFile]
    # CloudFile object indicated the file to be removed.
    ${File}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            ShareName = 'Az.Storage.private\Remove-AzStorageFile!V2';
            Share = 'Az.Storage.private\Remove-AzStorageFile!V2';
            Directory = 'Az.Storage.private\Remove-AzStorageFile!V2';
            File = 'Az.Storage.private\Remove-AzStorageFile!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azstoragequeue
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
System.Boolean
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azstoragequeue
#>

function Remove-AzStorageQueue {
[OutputType([System.Boolean])]
[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Queue')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Queue name
    ${Name},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Force to remove the queue and all content in it
    ${Force},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Return whether the specified queue is successfully removed
    ${PassThru},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('AzureRmContext', 'AzureCredential')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Remove-AzStorageQueue!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azstoragequeuestoredaccesspolicy
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
System.Boolean
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azstoragequeuestoredaccesspolicy
#>

function Remove-AzStorageQueueStoredAccessPolicy {
[OutputType([System.Boolean])]
[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Name')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Queue Name
    ${Queue},

    [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Policy Identifier
    ${Policy},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Return whether the specified policy is successfully removed
    ${PassThru},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('AzureRmContext', 'AzureCredential')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Remove-AzStorageQueueStoredAccessPolicy!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azstorageshare
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
Microsoft.Azure.Storage.File.CloudFileShare
.Inputs
System.String
.Outputs
Microsoft.Azure.Storage.File.CloudFileShare
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azstorageshare
#>

function Remove-AzStorageShare {
[OutputType([Microsoft.Azure.Storage.File.CloudFileShare])]
[CmdletBinding(DefaultParameterSetName='ShareName', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='ShareName', Position=0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Name of the file share to be removed.
    ${Name},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Remove File Share with all of its snapshots
    ${IncludeAllSnapshot},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Force to remove the share with all its snapshots, and all content in them.
    ${Force},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Returns an object representing the removed file share.
    # By default, this cmdlet does not generate any output.
    ${PassThru},

    [Parameter(ParameterSetName='ShareName', ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount},

    [Parameter(ParameterSetName='Share', Position=0, Mandatory, ValueFromPipeline)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFileShare]
    # File share object to be removed.
    ${Share}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            ShareName = 'Az.Storage.private\Remove-AzStorageShare!V2';
            Share = 'Az.Storage.private\Remove-AzStorageShare!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azstoragesharestoredaccesspolicy
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
System.Boolean
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azstoragesharestoredaccesspolicy
#>

function Remove-AzStorageShareStoredAccessPolicy {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='ShareName', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Name')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Share name
    ${ShareName},

    [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Policy Identifier
    ${Policy},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Return whether the specified policy is successfully removed
    ${PassThru},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            ShareName = 'Az.Storage.private\Remove-AzStorageShareStoredAccessPolicy!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azstoragetable
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
System.Boolean
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azstoragetable
#>

function Remove-AzStorageTable {
[OutputType([System.Boolean])]
[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Table')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Table name
    ${Name},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Force to remove the table and all content in it
    ${Force},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Return whether the specified table is successfully removed
    ${PassThru},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('AzureRmContext', 'AzureCredential')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Remove-AzStorageTable!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azstoragetablestoredaccesspolicy
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
System.Boolean
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/remove-azstoragetablestoredaccesspolicy
#>

function Remove-AzStorageTableStoredAccessPolicy {
[OutputType([System.Boolean])]
[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Name')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Table Name
    ${Table},

    [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Policy Identifier
    ${Policy},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Return whether the specified policy is successfully removed
    ${PassThru},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('AzureRmContext', 'AzureCredential')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Remove-AzStorageTableStoredAccessPolicy!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Revoke user delegation keys.
.Description
Revoke user delegation keys.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/revoke-azstorageaccountuserdelegationkey
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity
.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 <IStorageIdentity>: Identity Parameter
  [AccountName <String>]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
  [BlobServicesName <String>]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default'
  [ContainerName <String>]: The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [FileServicesName <String>]: The name of the file Service within the specified storage account. File Service Name must be "default"
  [Id <String>]: Resource identity path
  [ImmutabilityPolicyName <String>]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default'
  [Location <String>]: The location of the Azure Storage resource.
  [ManagementPolicyName <ManagementPolicyName?>]: The name of the Storage Account Management Policy. It should always be 'default'
  [ResourceGroupName <String>]: The name of the resource group within the user's subscription. The name is case insensitive.
  [ShareName <String>]: The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [SubscriptionId <String>]: The ID of the target subscription.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/revoke-azstorageaccountuserdelegationkey
#>

function Revoke-AzStorageAccountUserDelegationKey {
[OutputType([System.Boolean])]
[CmdletBinding(DefaultParameterSetName='Revoke', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Revoke', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${Name},

    [Parameter(ParameterSetName='Revoke', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Revoke')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # The ID of the target subscription.
    ${SubscriptionId},

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

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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 = @{
            Revoke = 'Az.Storage.private\Revoke-AzStorageAccountUserDelegationKey_Revoke';
            RevokeViaIdentity = 'Az.Storage.private\Revoke-AzStorageAccountUserDelegationKey_RevokeViaIdentity';
        }
        if (('Revoke') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Sets the properties of file services in storage accounts, including CORS (Cross-Origin Resource Sharing) rules.
.Description
Sets the properties of file services in storage accounts, including CORS (Cross-Origin Resource Sharing) rules.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azfileserviceproperty
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IFileServiceProperties
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IFileServiceProperties
.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.
 
CORCORSRULE <ICorsRule[]>: The List of CORS rules. You can include up to five CorsRule elements in the request.
  AllowedHeader <String[]>: Required if CorsRule element is present. A list of headers allowed to be part of the cross-origin request.
  AllowedMethod <String[]>: Required if CorsRule element is present. A list of HTTP methods that are allowed to be executed by the origin.
  AllowedOrigin <String[]>: Required if CorsRule element is present. A list of origin domains that will be allowed via CORS, or "*" to allow all domains
  ExposedHeader <String[]>: Required if CorsRule element is present. A list of response headers to expose to CORS clients.
  MaxAgeInSecond <Int32>: Required if CorsRule element is present. The number of seconds that the client/browser should cache a preflight response.
 
PARAMETER <IFileServiceProperties>: The properties of File services in storage account.
  [CorCorsRule <ICorsRule[]>]: The List of CORS rules. You can include up to five CorsRule elements in the request.
    AllowedHeader <String[]>: Required if CorsRule element is present. A list of headers allowed to be part of the cross-origin request.
    AllowedMethod <String[]>: Required if CorsRule element is present. A list of HTTP methods that are allowed to be executed by the origin.
    AllowedOrigin <String[]>: Required if CorsRule element is present. A list of origin domains that will be allowed via CORS, or "*" to allow all domains
    ExposedHeader <String[]>: Required if CorsRule element is present. A list of response headers to expose to CORS clients.
    MaxAgeInSecond <Int32>: Required if CorsRule element is present. The number of seconds that the client/browser should cache a preflight response.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azfileserviceproperty
#>

function Set-AzFileServiceProperty {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IFileServiceProperties])]
[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${AccountName},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # The ID of the target subscription.
    ${SubscriptionId},

    [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IFileServiceProperties]
    # The properties of File services in storage account.
    # To construct, see NOTES section for PARAMETER properties and create a hash table.
    ${Parameter},

    [Parameter(ParameterSetName='SetExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180701.ICorsRule[]]
    # The List of CORS rules.
    # You can include up to five CorsRule elements in the request.
    #
    # To construct, see NOTES section for CORCORSRULE properties and create a hash table.
    ${CorCorsRule},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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 = @{
            Set = 'Az.Storage.private\Set-AzFileServiceProperty_Set';
            SetExpanded = 'Az.Storage.private\Set-AzFileServiceProperty_SetExpanded';
        }
        if (('Set', 'SetExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Sets legal hold tags.
Setting the same tag results in an idempotent operation.
SetLegalHold follows an append pattern and does not clear out the existing tags that are not specified in the request.
.Description
Sets legal hold tags.
Setting the same tag results in an idempotent operation.
SetLegalHold follows an append pattern and does not clear out the existing tags that are not specified in the request.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azrmstoragecontainerlegalhold
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.ILegalHold
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.ILegalHold
.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.
 
LEGALHOLD <ILegalHold>: The LegalHold property of a blob container.
  Tag <String[]>: Each tag should be 3 to 23 alphanumeric characters and is normalized to lower case at SRP.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azrmstoragecontainerlegalhold
#>

function Set-AzRmStorageContainerLegalHold {
[Alias('Add-AzRmStorageContainerLegalHold')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.ILegalHold])]
[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${AccountName},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the blob container within the specified storage account.
    # Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only.
    # Every dash (-) character must be immediately preceded and followed by a letter or number.
    ${ContainerName},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # The ID of the target subscription.
    ${SubscriptionId},

    [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.ILegalHold]
    # The LegalHold property of a blob container.
    # To construct, see NOTES section for LEGALHOLD properties and create a hash table.
    ${LegalHold},

    [Parameter(ParameterSetName='SetExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String[]]
    # Each tag should be 3 to 23 alphanumeric characters and is normalized to lower case at SRP.
    ${Tag},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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 = @{
            Set = 'Az.Storage.private\Set-AzRmStorageContainerLegalHold_Set';
            SetExpanded = 'Az.Storage.private\Set-AzRmStorageContainerLegalHold_SetExpanded';
        }
        if (('Set', 'SetExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Sets the managementpolicy to the specified storage account.
.Description
Sets the managementpolicy to the specified storage account.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azstorageaccountmanagementpolicy
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IManagementPolicy
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IManagementPolicy
.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.
 
POLICYRULE <IManagementPolicyRule[]>: The Storage Account ManagementPolicies Rules. See more details in: https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts.
  DeleteDaysAfterCreationGreaterThan <Single>: Value indicating the age in days after creation
  DeleteDaysAfterModificationGreaterThan <Single>: Value indicating the age in days after last modification
  FilterBlobType <String[]>: An array of predefined enum values. Only blockBlob is supported.
  Name <String>: A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy.
  TierToArchiveDaysAfterModificationGreaterThan <Single>: Value indicating the age in days after last modification
  TierToCoolDaysAfterModificationGreaterThan <Single>: Value indicating the age in days after last modification
  [Enabled <Boolean?>]: Rule is enabled if set to true.
  [FilterPrefixMatch <String[]>]: An array of strings for prefixes to be match.
 
PROPERTY <IManagementPolicy>: The Get Storage Account ManagementPolicies operation response.
  PolicyRule <IManagementPolicyRule[]>: The Storage Account ManagementPolicies Rules. See more details in: https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts.
    DeleteDaysAfterCreationGreaterThan <Single>: Value indicating the age in days after creation
    DeleteDaysAfterModificationGreaterThan <Single>: Value indicating the age in days after last modification
    FilterBlobType <String[]>: An array of predefined enum values. Only blockBlob is supported.
    Name <String>: A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy.
    TierToArchiveDaysAfterModificationGreaterThan <Single>: Value indicating the age in days after last modification
    TierToCoolDaysAfterModificationGreaterThan <Single>: Value indicating the age in days after last modification
    [Enabled <Boolean?>]: Rule is enabled if set to true.
    [FilterPrefixMatch <String[]>]: An array of strings for prefixes to be match.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azstorageaccountmanagementpolicy
#>

function Set-AzStorageAccountManagementPolicy {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IManagementPolicy])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${Name},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # The ID of the target subscription.
    ${SubscriptionId},

    [Parameter(ParameterSetName='Update', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IManagementPolicy]
    # The Get Storage Account ManagementPolicies operation response.
    # To construct, see NOTES section for PROPERTY properties and create a hash table.
    ${Property},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IManagementPolicyRule[]]
    # The Storage Account ManagementPolicies Rules.
    # See more details in: https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts.
    # To construct, see NOTES section for POLICYRULE properties and create a hash table.
    ${PolicyRule},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Set-AzStorageAccountManagementPolicy_Update';
            UpdateExpanded = 'Az.Storage.private\Set-AzStorageAccountManagementPolicy_UpdateExpanded';
        }
        if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azstorageblobcontent
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
Microsoft.Azure.Storage.Blob.CloudBlob
.Inputs
Microsoft.Azure.Storage.Blob.CloudBlobContainer
.Inputs
System.String
.Outputs
Microsoft.Azure.Commands.Common.Storage.ResourceModel.AzureStorageBlob
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azstorageblobcontent
#>

function Set-AzStorageBlobContent {
[OutputType([Microsoft.Azure.Commands.Common.Storage.ResourceModel.AzureStorageBlob])]
[CmdletBinding(DefaultParameterSetName='SendManual', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory, ValueFromPipelineByPropertyName)]
    [Alias('FullName')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # file Path.
    ${File},

    [Parameter(ParameterSetName='SendManual', Position=1, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Container name
    ${Container},

    [Parameter(ParameterSetName='SendManual')]
    [Parameter(ParameterSetName='ContainerPipeline')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Blob name
    ${Blob},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Blob Type('Block', 'Page', 'Append')
    ${BlobType},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Collections.Hashtable]
    # Blob Properties
    ${Properties},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Collections.Hashtable]
    # Blob Metadata
    ${Metadata},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.Blob.PremiumPageBlobTier]
    # Page Blob Tier
    ${PremiumPageBlobTier},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Force to overwrite the existing blob or file
    ${Force},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Run cmdlet in the background
    ${AsJob},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount},

    [Parameter(ParameterSetName='ContainerPipeline', Mandatory, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.Blob.CloudBlobContainer]
    # Azure Blob Container Object
    ${CloudBlobContainer},

    [Parameter(ParameterSetName='BlobPipeline', Mandatory, ValueFromPipelineByPropertyName)]
    [Alias('ICloudBlob')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.Blob.CloudBlob]
    # Azure Blob Object
    ${CloudBlob}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            SendManual = 'Az.Storage.private\Set-AzStorageBlobContent!V2';
            ContainerPipeline = 'Az.Storage.private\Set-AzStorageBlobContent!V2';
            BlobPipeline = 'Az.Storage.private\Set-AzStorageBlobContent!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Sets the properties of a storage account’s Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.
.Description
Sets the properties of a storage account’s Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azstorageblobserviceproperty
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IBlobServiceProperties
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IBlobServiceProperties
.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.
 
CORCORSRULE <ICorsRule[]>: The List of CORS rules. You can include up to five CorsRule elements in the request.
  AllowedHeader <String[]>: Required if CorsRule element is present. A list of headers allowed to be part of the cross-origin request.
  AllowedMethod <String[]>: Required if CorsRule element is present. A list of HTTP methods that are allowed to be executed by the origin.
  AllowedOrigin <String[]>: Required if CorsRule element is present. A list of origin domains that will be allowed via CORS, or "*" to allow all domains
  ExposedHeader <String[]>: Required if CorsRule element is present. A list of response headers to expose to CORS clients.
  MaxAgeInSecond <Int32>: Required if CorsRule element is present. The number of seconds that the client/browser should cache a preflight response.
 
PARAMETER <IBlobServiceProperties>: The properties of a storage account’s Blob service.
  [AutomaticSnapshotPolicyEnabled <Boolean?>]: Automatic Snapshot is enabled if set to true.
  [ChangeFeedEnabled <Boolean?>]: Indicates whether change feed event logging is enabled for the Blob service.
  [CorCorsRule <ICorsRule[]>]: The List of CORS rules. You can include up to five CorsRule elements in the request.
    AllowedHeader <String[]>: Required if CorsRule element is present. A list of headers allowed to be part of the cross-origin request.
    AllowedMethod <String[]>: Required if CorsRule element is present. A list of HTTP methods that are allowed to be executed by the origin.
    AllowedOrigin <String[]>: Required if CorsRule element is present. A list of origin domains that will be allowed via CORS, or "*" to allow all domains
    ExposedHeader <String[]>: Required if CorsRule element is present. A list of response headers to expose to CORS clients.
    MaxAgeInSecond <Int32>: Required if CorsRule element is present. The number of seconds that the client/browser should cache a preflight response.
  [DefaultServiceVersion <String>]: DefaultServiceVersion indicates the default version to use for requests to the Blob service if an incoming request’s version is not specified. Possible values include version 2008-10-27 and all more recent versions.
  [DeleteRetentionPolicyDay <Int32?>]: Indicates the number of days that the deleted blob should be retained. The minimum specified value can be 1 and the maximum value can be 365.
  [DeleteRetentionPolicyEnabled <Boolean?>]: Indicates whether DeleteRetentionPolicy is enabled for the Blob service.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azstorageblobserviceproperty
#>

function Set-AzStorageBlobServiceProperty {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IBlobServiceProperties])]
[CmdletBinding(DefaultParameterSetName='SetExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${AccountName},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # The ID of the target subscription.
    ${SubscriptionId},

    [Parameter(ParameterSetName='Set', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IBlobServiceProperties]
    # The properties of a storage account’s Blob service.
    # To construct, see NOTES section for PARAMETER properties and create a hash table.
    ${Parameter},

    [Parameter(ParameterSetName='SetExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Automatic Snapshot is enabled if set to true.
    ${AutomaticSnapshotPolicyEnabled},

    [Parameter(ParameterSetName='SetExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Indicates whether change feed event logging is enabled for the Blob service.
    ${ChangeFeedEnabled},

    [Parameter(ParameterSetName='SetExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180701.ICorsRule[]]
    # The List of CORS rules.
    # You can include up to five CorsRule elements in the request.
    #
    # To construct, see NOTES section for CORCORSRULE properties and create a hash table.
    ${CorCorsRule},

    [Parameter(ParameterSetName='SetExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # DefaultServiceVersion indicates the default version to use for requests to the Blob service if an incoming request’s version is not specified.
    # Possible values include version 2008-10-27 and all more recent versions.
    ${DefaultServiceVersion},

    [Parameter(ParameterSetName='SetExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Int32]
    # Indicates the number of days that the deleted blob should be retained.
    # The minimum specified value can be 1 and the maximum value can be 365.
    ${DeleteRetentionPolicyDay},

    [Parameter(ParameterSetName='SetExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Indicates whether DeleteRetentionPolicy is enabled for the Blob service.
    ${DeleteRetentionPolicyEnabled},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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 = @{
            Set = 'Az.Storage.private\Set-AzStorageBlobServiceProperty_Set';
            SetExpanded = 'Az.Storage.private\Set-AzStorageBlobServiceProperty_SetExpanded';
        }
        if (('Set', 'SetExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azstoragecontaineracl
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
Microsoft.Azure.Commands.Common.Storage.ResourceModel.AzureStorageContainer
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azstoragecontaineracl
#>

function Set-AzStorageContainerAcl {
[OutputType([Microsoft.Azure.Commands.Common.Storage.ResourceModel.AzureStorageContainer])]
[CmdletBinding(PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Container')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Container Name
    ${Name},

    [Parameter(Position=1, Mandatory)]
    [Alias('PublicAccess')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.Blob.BlobContainerPublicAccessType]
    # Permission string Off/Blob/Container
    ${Permission},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Display Container Information
    ${PassThru},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            __AllParameterSets = 'Az.Storage.private\Set-AzStorageContainerAcl!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azstoragecontainerstoredaccesspolicy
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
System.String
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azstoragecontainerstoredaccesspolicy
#>

function Set-AzStorageContainerStoredAccessPolicy {
[OutputType([System.String])]
[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Name')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Container name
    ${Container},

    [Parameter(Position=1, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Policy Identifier
    ${Policy},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Permissions for a container.
    # Permissions can be any non-empty subset of "rdwl".
    ${Permission},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTime]]
    # Start Time
    ${StartTime},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTime]]
    # Expiry Time
    ${ExpiryTime},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Set StartTime as null for the policy
    ${NoStartTime},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Set ExpiryTime as null for the policy
    ${NoExpiryTime},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            __AllParameterSets = 'Az.Storage.private\Set-AzStorageContainerStoredAccessPolicy!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azstoragecorsrule
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Outputs
Microsoft.Azure.Commands.Storage.Model.ResourceModel.PSCorsRule
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azstoragecorsrule
#>

function Set-AzStorageCORSRule {
[OutputType([Microsoft.Azure.Commands.Storage.Model.ResourceModel.PSCorsRule])]
[CmdletBinding(PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Storage.Common.StorageServiceType]
    # Azure storage service type(Blob, Table, Queue).
    ${ServiceType},

    [Parameter(Mandatory)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Storage.Model.ResourceModel.PSCorsRule[]]
    # CorsRule instances to represent rules to be set.
    ${CorsRules},

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

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            __AllParameterSets = 'Az.Storage.private\Set-AzStorageCORSRule!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azstoragefilecontent
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
Microsoft.Azure.Storage.File.CloudFileDirectory
.Inputs
Microsoft.Azure.Storage.File.CloudFileShare
.Inputs
System.String
.Outputs
Microsoft.Azure.Storage.File.CloudFile
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azstoragefilecontent
#>

function Set-AzStorageFileContent {
[OutputType([Microsoft.Azure.Storage.File.CloudFile])]
[CmdletBinding(DefaultParameterSetName='ShareName', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=1, Mandatory, ValueFromPipelineByPropertyName)]
    [Alias('FullName')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Path to the local file to be uploaded.
    ${Source},

    [Parameter(ParameterSetName='ShareName', Position=0, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Name of the file share where the file would be uploaded to.
    ${ShareName},

    [Parameter(Position=2)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Path to the cloud file which would be uploaded to.
    ${Path},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Returns an object representing the downloaded cloud file.
    # By default, this cmdlet does not generate any output.
    ${PassThru},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Force to overwrite the existing file.
    ${Force},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Run cmdlet in the background
    ${AsJob},

    [Parameter(ParameterSetName='ShareName', ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount},

    [Parameter(ParameterSetName='Share', Position=0, Mandatory, ValueFromPipeline)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFileShare]
    # CloudFileShare object indicated the share where the file would be uploaded to.
    ${Share},

    [Parameter(ParameterSetName='Directory', Position=0, Mandatory, ValueFromPipeline)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFileDirectory]
    # CloudFileDirectory object indicated the cloud directory where the file would be uploaded.
    ${Directory}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            ShareName = 'Az.Storage.private\Set-AzStorageFileContent!V2';
            Share = 'Az.Storage.private\Set-AzStorageFileContent!V2';
            Directory = 'Az.Storage.private\Set-AzStorageFileContent!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azstoragequeuestoredaccesspolicy
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
System.String
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azstoragequeuestoredaccesspolicy
#>

function Set-AzStorageQueueStoredAccessPolicy {
[OutputType([System.String])]
[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Name')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Queue Name
    ${Queue},

    [Parameter(Position=1, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Policy Identifier
    ${Policy},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Permissions for a queue.
    # Permissions can be any not-empty subset of "arup".
    ${Permission},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTime]]
    # Start Time
    ${StartTime},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTime]]
    # Expiry Time
    ${ExpiryTime},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Set StartTime as null for the policy
    ${NoStartTime},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Set ExpiryTime as null for the policy
    ${NoExpiryTime},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('AzureRmContext', 'AzureCredential')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Set-AzStorageQueueStoredAccessPolicy!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azstorageserviceloggingproperty
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Outputs
Microsoft.Azure.Storage.Shared.Protocol.LoggingProperties
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azstorageserviceloggingproperty
#>

function Set-AzStorageServiceLoggingProperty {
[OutputType([Microsoft.Azure.Storage.Shared.Protocol.LoggingProperties])]
[CmdletBinding(PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Storage.Common.StorageServiceType]
    # Azure storage service type(Blob, Table, Queue).
    ${ServiceType},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Double]]
    # Logging version
    ${Version},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # Logging retention days.
    # -1 means disable Logging retention policy, otherwise enable.
    ${RetentionDays},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.Shared.Protocol.LoggingOperations[]]
    # Logging operations.
    # (All, None, combinations of Read, Write, Delete that are seperated by semicolon.)
    ${LoggingOperations},

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

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('AzureRmContext', 'AzureCredential')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Set-AzStorageServiceLoggingProperty!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azstorageservicemetricsproperty
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Outputs
Microsoft.Azure.Storage.Shared.Protocol.MetricsProperties
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azstorageservicemetricsproperty
#>

function Set-AzStorageServiceMetricsProperty {
[OutputType([Microsoft.Azure.Storage.Shared.Protocol.MetricsProperties])]
[CmdletBinding(PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Storage.Common.StorageServiceType]
    # Azure storage service type(Blob, Table, Queue).
    ${ServiceType},

    [Parameter(Position=1, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Storage.Common.ServiceMetricsType]
    # Azure storage service metrics type(Hour, Minute).
    ${MetricsType},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Double]]
    # Metrics version
    ${Version},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # Metrics retention days.
    # -1 means disable Metrics retention policy, otherwise enable.
    ${RetentionDays},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[Microsoft.Azure.Storage.Shared.Protocol.MetricsLevel]]
    # Metrics level.(None/Service/ServiceAndApi)
    ${MetricsLevel},

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

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('AzureRmContext', 'AzureCredential')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Set-AzStorageServiceMetricsProperty!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azstoragesharequota
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
Microsoft.Azure.Storage.File.CloudFileShare
.Inputs
System.String
.Outputs
Microsoft.Azure.Storage.File.FileShareProperties
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azstoragesharequota
#>

function Set-AzStorageShareQuota {
[OutputType([Microsoft.Azure.Storage.File.FileShareProperties])]
[CmdletBinding(DefaultParameterSetName='ShareName', PositionalBinding=$false)]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=1, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Int32]
    # Share Quota
    ${Quota},

    [Parameter(ParameterSetName='ShareName', Position=0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Name')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Share name
    ${ShareName},

    [Parameter(ParameterSetName='ShareName', ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount},

    [Parameter(ParameterSetName='Share', Position=0, Mandatory, ValueFromPipeline)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFileShare]
    # CloudFileShare object indicated the share whose quota to set.
    ${Share}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            ShareName = 'Az.Storage.private\Set-AzStorageShareQuota!V2';
            Share = 'Az.Storage.private\Set-AzStorageShareQuota!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azstoragesharestoredaccesspolicy
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
System.String
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azstoragesharestoredaccesspolicy
#>

function Set-AzStorageShareStoredAccessPolicy {
[OutputType([System.String])]
[CmdletBinding(DefaultParameterSetName='ShareName', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Name')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Share name
    ${ShareName},

    [Parameter(Position=1, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Policy Identifier
    ${Policy},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Permissions for a share.
    # Permissions can be any non-empty subset of "rwdl".
    ${Permission},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTime]]
    # Start Time
    ${StartTime},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTime]]
    # Expiry Time
    ${ExpiryTime},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Set StartTime as null for the policy
    ${NoStartTime},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Set ExpiryTime as null for the policy
    ${NoExpiryTime},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            ShareName = 'Az.Storage.private\Set-AzStorageShareStoredAccessPolicy!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azstoragetablestoredaccesspolicy
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
System.String
.Outputs
System.String
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azstoragetablestoredaccesspolicy
#>

function Set-AzStorageTableStoredAccessPolicy {
[OutputType([System.String])]
[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('N', 'Name')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Table Name
    ${Table},

    [Parameter(Position=1, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Policy Identifier
    ${Policy},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Permissions for a table.
    # Permissions can be any not-empty subset of "audqr".
    ${Permission},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTime]]
    # Start Time
    ${StartTime},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTime]]
    # Expirty Time
    ${ExpiryTime},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Set StartTime as null for the policy
    ${NoStartTime},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Set ExpiryTime as null for the policy
    ${NoExpiryTime},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('AzureRmContext', 'AzureCredential')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Set-AzStorageTableStoredAccessPolicy!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/start-azstorageblobcopy
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
Microsoft.Azure.Storage.Blob.CloudBlob
.Inputs
Microsoft.Azure.Storage.Blob.CloudBlobContainer
.Inputs
Microsoft.Azure.Storage.File.CloudFile
.Inputs
System.String
.Outputs
Microsoft.Azure.Commands.Common.Storage.ResourceModel.AzureStorageBlob
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/start-azstorageblobcopy
#>

function Start-AzStorageBlobCopy {
[Alias('Start-CopyAzureStorageBlob')]
[OutputType([Microsoft.Azure.Commands.Common.Storage.ResourceModel.AzureStorageBlob])]
[CmdletBinding(DefaultParameterSetName='ContainerName', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='ContainerName', Position=0, Mandatory)]
    [Parameter(ParameterSetName='ContainerInstance', Position=0, Mandatory)]
    [Alias('SourceBlob')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Blob name
    ${SrcBlob},

    [Parameter(ParameterSetName='ContainerName', Mandatory)]
    [Alias('SourceContainer')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Source Container name
    ${SrcContainer},

    [Parameter(ParameterSetName='ContainerName', Mandatory)]
    [Parameter(ParameterSetName='BlobInstance', Mandatory)]
    [Parameter(ParameterSetName='ContainerInstance', Mandatory)]
    [Parameter(ParameterSetName='ShareName', Mandatory)]
    [Parameter(ParameterSetName='ShareInstance', Mandatory)]
    [Parameter(ParameterSetName='DirInstance', Mandatory)]
    [Parameter(ParameterSetName='FileInstance', Mandatory)]
    [Parameter(ParameterSetName='UriPipeline', Mandatory)]
    [Alias('DestinationContainer')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Destination container name
    ${DestContainer},

    [Parameter(ParameterSetName='ContainerName')]
    [Parameter(ParameterSetName='BlobInstance')]
    [Parameter(ParameterSetName='ContainerInstance')]
    [Parameter(ParameterSetName='ShareName')]
    [Parameter(ParameterSetName='ShareInstance')]
    [Parameter(ParameterSetName='DirInstance')]
    [Parameter(ParameterSetName='FileInstance')]
    [Parameter(ParameterSetName='UriPipeline', Mandatory)]
    [Alias('DestinationBlob')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Destination blob name
    ${DestBlob},

    [Parameter(ParameterSetName='ContainerName')]
    [Parameter(ParameterSetName='BlobInstance')]
    [Parameter(ParameterSetName='BlobInstanceToBlobInstance')]
    [Parameter(ParameterSetName='ContainerInstance')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.Blob.PremiumPageBlobTier]
    # Premium Page Blob Tier
    ${PremiumPageBlobTier},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('SrcContext', 'SourceContext')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Source Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('DestinationContext')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Destination Storage context object
    ${DestContext},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Force to overwrite the existing blob or file
    ${Force},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount},

    [Parameter(ParameterSetName='BlobInstance', Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Parameter(ParameterSetName='BlobInstanceToBlobInstance', Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('SrcICloudBlob', 'SrcCloudBlob', 'ICloudBlob', 'SourceICloudBlob', 'SourceCloudBlob')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.Blob.CloudBlob]
    # CloudBlob Object
    ${CloudBlob},

    [Parameter(ParameterSetName='BlobInstanceToBlobInstance', Mandatory)]
    [Parameter(ParameterSetName='FileInstanceToBlobInstance', Mandatory)]
    [Alias('DestICloudBlob', 'DestinationCloudBlob', 'DestinationICloudBlob')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.Blob.CloudBlob]
    # Destination CloudBlob object
    ${DestCloudBlob},

    [Parameter(ParameterSetName='ContainerInstance', Mandatory, ValueFromPipelineByPropertyName)]
    [Alias('SourceCloudBlobContainer')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.Blob.CloudBlobContainer]
    # CloudBlobContainer Object
    ${CloudBlobContainer},

    [Parameter(ParameterSetName='ShareName', Mandatory)]
    [Alias('SourceShareName')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Source share name
    ${SrcShareName},

    [Parameter(ParameterSetName='ShareName', Mandatory)]
    [Parameter(ParameterSetName='ShareInstance', Mandatory)]
    [Parameter(ParameterSetName='DirInstance', Mandatory)]
    [Alias('SourceFilePath')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Source file path
    ${SrcFilePath},

    [Parameter(ParameterSetName='ShareInstance', Mandatory)]
    [Alias('SourceShare')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFileShare]
    # Source share
    ${SrcShare},

    [Parameter(ParameterSetName='DirInstance', Mandatory)]
    [Alias('SourceDir')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFileDirectory]
    # Source file directory
    ${SrcDir},

    [Parameter(ParameterSetName='FileInstance', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='FileInstanceToBlobInstance', Mandatory, ValueFromPipeline)]
    [Alias('SourceFile')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFile]
    # Source file
    ${SrcFile},

    [Parameter(ParameterSetName='UriPipeline', Mandatory, ValueFromPipelineByPropertyName)]
    [Alias('SrcUri', 'SourceUri')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Source blob uri
    ${AbsoluteUri}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            ContainerName = 'Az.Storage.private\Start-AzStorageBlobCopy!V2';
            BlobInstance = 'Az.Storage.private\Start-AzStorageBlobCopy!V2';
            BlobInstanceToBlobInstance = 'Az.Storage.private\Start-AzStorageBlobCopy!V2';
            ContainerInstance = 'Az.Storage.private\Start-AzStorageBlobCopy!V2';
            ShareName = 'Az.Storage.private\Start-AzStorageBlobCopy!V2';
            ShareInstance = 'Az.Storage.private\Start-AzStorageBlobCopy!V2';
            DirInstance = 'Az.Storage.private\Start-AzStorageBlobCopy!V2';
            FileInstance = 'Az.Storage.private\Start-AzStorageBlobCopy!V2';
            FileInstanceToBlobInstance = 'Az.Storage.private\Start-AzStorageBlobCopy!V2';
            UriPipeline = 'Az.Storage.private\Start-AzStorageBlobCopy!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/start-azstorageblobincrementalcopy
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
Microsoft.Azure.Storage.Blob.CloudBlobContainer
.Inputs
Microsoft.Azure.Storage.Blob.CloudPageBlob
.Inputs
System.String
.Outputs
Microsoft.Azure.Commands.Common.Storage.ResourceModel.AzureStorageBlob
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/start-azstorageblobincrementalcopy
#>

function Start-AzStorageBlobIncrementalCopy {
[OutputType([Microsoft.Azure.Commands.Common.Storage.ResourceModel.AzureStorageBlob])]
[CmdletBinding(DefaultParameterSetName='ContainerInstance', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='ContainerInstance', Mandatory, ValueFromPipelineByPropertyName)]
    [Alias('SourceCloudBlobContainer')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.Blob.CloudBlobContainer]
    # CloudBlobContainer Object
    ${CloudBlobContainer},

    [Parameter(ParameterSetName='ContainerInstance', Mandatory)]
    [Parameter(ParameterSetName='ContainerName', Mandatory)]
    [Alias('SourceBlob')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Blob name
    ${SrcBlob},

    [Parameter(ParameterSetName='ContainerInstance', Mandatory)]
    [Parameter(ParameterSetName='ContainerName', Mandatory)]
    [Alias('SourceBlobSnapshotTime')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.DateTimeOffset]]
    # Source Blob Snapshot Time
    ${SrcBlobSnapshotTime},

    [Parameter(ParameterSetName='ContainerInstance', Mandatory)]
    [Parameter(ParameterSetName='BlobInstance', Mandatory)]
    [Parameter(ParameterSetName='ContainerName', Mandatory)]
    [Parameter(ParameterSetName='UriPipeline', Mandatory)]
    [Alias('DestinationContainer')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Destination container name
    ${DestContainer},

    [Parameter(ParameterSetName='ContainerInstance')]
    [Parameter(ParameterSetName='BlobInstance')]
    [Parameter(ParameterSetName='ContainerName')]
    [Parameter(ParameterSetName='UriPipeline', Mandatory)]
    [Alias('DestinationBlob')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Destination blob name
    ${DestBlob},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('SrcContext', 'SourceContext')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Source Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('DestinationContext')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Destination Storage context object
    ${DestContext},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount},

    [Parameter(ParameterSetName='BlobInstance', Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Parameter(ParameterSetName='BlobInstanceToBlobInstance', Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('SrcICloudBlob', 'SrcCloudBlob', 'ICloudBlob', 'SourceICloudBlob', 'SourceCloudBlob')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.Blob.CloudPageBlob]
    # CloudBlob Object
    ${CloudBlob},

    [Parameter(ParameterSetName='BlobInstanceToBlobInstance', Mandatory)]
    [Alias('DestICloudBlob', 'DestinationCloudBlob', 'DestinationICloudBlob')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.Blob.CloudPageBlob]
    # Destination CloudBlob object
    ${DestCloudBlob},

    [Parameter(ParameterSetName='ContainerName', Mandatory)]
    [Alias('SourceContainer')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Source Container name
    ${SrcContainer},

    [Parameter(ParameterSetName='UriPipeline', Mandatory, ValueFromPipelineByPropertyName)]
    [Alias('SrcUri', 'SourceUri')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Source blob uri
    ${AbsoluteUri}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            ContainerInstance = 'Az.Storage.private\Start-AzStorageBlobIncrementalCopy!V2';
            BlobInstance = 'Az.Storage.private\Start-AzStorageBlobIncrementalCopy!V2';
            BlobInstanceToBlobInstance = 'Az.Storage.private\Start-AzStorageBlobIncrementalCopy!V2';
            ContainerName = 'Az.Storage.private\Start-AzStorageBlobIncrementalCopy!V2';
            UriPipeline = 'Az.Storage.private\Start-AzStorageBlobIncrementalCopy!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/start-azstoragefilecopy
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
Microsoft.Azure.Storage.Blob.CloudBlob
.Inputs
Microsoft.Azure.Storage.File.CloudFile
.Outputs
System.Void
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/start-azstoragefilecopy
#>

function Start-AzStorageFileCopy {
[OutputType([System.Void])]
[CmdletBinding(DefaultParameterSetName='UriToFilePath', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='ContainerName', Mandatory)]
    [Parameter(ParameterSetName='ContainerInstance', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Source blob name
    ${SrcBlobName},

    [Parameter(ParameterSetName='ContainerName', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Source container name
    ${SrcContainerName},

    [Parameter(ParameterSetName='ContainerName', Mandatory)]
    [Parameter(ParameterSetName='ContainerInstance', Mandatory)]
    [Parameter(ParameterSetName='BlobInstanceFilePath', Mandatory)]
    [Parameter(ParameterSetName='ShareName', Mandatory)]
    [Parameter(ParameterSetName='ShareInstance', Mandatory)]
    [Parameter(ParameterSetName='FileInstanceToFilePath', Mandatory)]
    [Parameter(ParameterSetName='UriToFilePath', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Dest share name
    ${DestShareName},

    [Parameter(ParameterSetName='ContainerName', Mandatory)]
    [Parameter(ParameterSetName='ContainerInstance', Mandatory)]
    [Parameter(ParameterSetName='BlobInstanceFilePath', Mandatory)]
    [Parameter(ParameterSetName='ShareName', Mandatory)]
    [Parameter(ParameterSetName='ShareInstance', Mandatory)]
    [Parameter(ParameterSetName='FileInstanceToFilePath', Mandatory)]
    [Parameter(ParameterSetName='UriToFilePath', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Dest file path
    ${DestFilePath},

    [Parameter(ParameterSetName='ContainerName', ValueFromPipelineByPropertyName)]
    [Parameter(ParameterSetName='ShareName', ValueFromPipelineByPropertyName)]
    [Alias('SrcContext')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Source Azure Storage Context Object
    ${Context},

    [Parameter(ParameterSetName='ContainerName')]
    [Parameter(ParameterSetName='ContainerInstance')]
    [Parameter(ParameterSetName='BlobInstanceFilePath')]
    [Parameter(ParameterSetName='ShareName')]
    [Parameter(ParameterSetName='ShareInstance')]
    [Parameter(ParameterSetName='FileInstanceToFilePath')]
    [Parameter(ParameterSetName='UriToFilePath')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Destination Storage context object
    ${DestContext},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Force to overwrite the existing file.
    ${Force},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount},

    [Parameter(ParameterSetName='ContainerInstance', Mandatory)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.Blob.CloudBlobContainer]
    # Source container instance
    ${SrcContainer},

    [Parameter(ParameterSetName='BlobInstanceFilePath', Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Parameter(ParameterSetName='BlobInstanceFileInstance', Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Alias('ICloudBlob')]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.Blob.CloudBlob]
    # Source blob instance
    ${SrcBlob},

    [Parameter(ParameterSetName='BlobInstanceFileInstance', Mandatory)]
    [Parameter(ParameterSetName='FileInstanceToFileInstance', Mandatory)]
    [Parameter(ParameterSetName='UriToFileInstance', Mandatory)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFile]
    # Dest file instance
    ${DestFile},

    [Parameter(ParameterSetName='ShareName', Mandatory)]
    [Parameter(ParameterSetName='ShareInstance', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Source file path
    ${SrcFilePath},

    [Parameter(ParameterSetName='ShareName', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Source share name
    ${SrcShareName},

    [Parameter(ParameterSetName='ShareInstance', Mandatory)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFileShare]
    # Source share instance
    ${SrcShare},

    [Parameter(ParameterSetName='FileInstanceToFilePath', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='FileInstanceToFileInstance', Mandatory, ValueFromPipeline)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFile]
    # Source file instance
    ${SrcFile},

    [Parameter(ParameterSetName='UriToFilePath', Mandatory)]
    [Parameter(ParameterSetName='UriToFileInstance', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Source Uri
    ${AbsoluteUri}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            ContainerName = 'Az.Storage.private\Start-AzStorageFileCopy!V2';
            ContainerInstance = 'Az.Storage.private\Start-AzStorageFileCopy!V2';
            BlobInstanceFilePath = 'Az.Storage.private\Start-AzStorageFileCopy!V2';
            BlobInstanceFileInstance = 'Az.Storage.private\Start-AzStorageFileCopy!V2';
            ShareName = 'Az.Storage.private\Start-AzStorageFileCopy!V2';
            ShareInstance = 'Az.Storage.private\Start-AzStorageFileCopy!V2';
            FileInstanceToFilePath = 'Az.Storage.private\Start-AzStorageFileCopy!V2';
            FileInstanceToFileInstance = 'Az.Storage.private\Start-AzStorageFileCopy!V2';
            UriToFilePath = 'Az.Storage.private\Start-AzStorageFileCopy!V2';
            UriToFileInstance = 'Az.Storage.private\Start-AzStorageFileCopy!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/stop-azstorageblobcopy
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
Microsoft.Azure.Storage.Blob.CloudBlob
.Inputs
Microsoft.Azure.Storage.Blob.CloudBlobContainer
.Outputs
Microsoft.Azure.Commands.Common.Storage.ResourceModel.AzureStorageBlob
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/stop-azstorageblobcopy
#>

function Stop-AzStorageBlobCopy {
[Alias('Stop-CopyAzureStorageBlob')]
[OutputType([Microsoft.Azure.Commands.Common.Storage.ResourceModel.AzureStorageBlob])]
[CmdletBinding(DefaultParameterSetName='NamePipeline', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='NamePipeline', Position=0, Mandatory)]
    [Parameter(ParameterSetName='ContainerPipeline', Position=0, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Blob name
    ${Blob},

    [Parameter(ParameterSetName='NamePipeline', Position=1, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Container name
    ${Container},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Force to stop the current copy task on the specified blob
    ${Force},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Copy Id
    ${CopyId},

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount},

    [Parameter(ParameterSetName='BlobPipeline', Mandatory, ValueFromPipelineByPropertyName)]
    [Alias('ICloudBlob')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.Blob.CloudBlob]
    # CloudBlob Object
    ${CloudBlob},

    [Parameter(ParameterSetName='ContainerPipeline', Mandatory, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.Blob.CloudBlobContainer]
    # CloudBlobContainer Object
    ${CloudBlobContainer}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            NamePipeline = 'Az.Storage.private\Stop-AzStorageBlobCopy!V2';
            BlobPipeline = 'Az.Storage.private\Stop-AzStorageBlobCopy!V2';
            ContainerPipeline = 'Az.Storage.private\Stop-AzStorageBlobCopy!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/stop-azstoragefilecopy
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Inputs
Microsoft.Azure.Storage.File.CloudFile
.Outputs
System.Void
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/stop-azstoragefilecopy
#>

function Stop-AzStorageFileCopy {
[OutputType([System.Void])]
[CmdletBinding(DefaultParameterSetName='ShareName', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='ShareName', Position=0, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Target share name
    ${ShareName},

    [Parameter(ParameterSetName='ShareName', Position=1, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Target file path
    ${FilePath},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Copy Id
    ${CopyId},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Whether to stop the copy when copy id is different with the one input.
    ${Force},

    [Parameter(ParameterSetName='ShareName', ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('ServerTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The server time out for each request in seconds.
    ${ServerTimeoutPerRequest},

    [Parameter()]
    [Alias('ClientTimeoutPerRequestInSeconds')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The client side maximum execution time for each request in seconds.
    ${ClientTimeoutPerRequest},

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

    [Parameter()]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Nullable[System.Int32]]
    # The total amount of concurrent async tasks.
    # The default value is 10.
    ${ConcurrentTaskCount},

    [Parameter(ParameterSetName='File', Position=0, Mandatory, ValueFromPipeline)]
    [ValidateNotNull()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Storage.File.CloudFile]
    # Target file instance
    ${File}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName
        $mapping = @{
            ShareName = 'Az.Storage.private\Stop-AzStorageFileCopy!V2';
            File = 'Az.Storage.private\Stop-AzStorageFileCopy!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Checks that the storage account name is valid and is not already in use.
.Description
Checks that the storage account name is valid and is not already in use.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/test-azstorageaccountnameavailability
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20171001.IStorageAccountCheckNameAvailabilityParameters
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20171001.ICheckNameAvailabilityResult
.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 <IStorageIdentity>: Identity Parameter
  [AccountName <String>]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
  [BlobServicesName <String>]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default'
  [ContainerName <String>]: The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [FileServicesName <String>]: The name of the file Service within the specified storage account. File Service Name must be "default"
  [Id <String>]: Resource identity path
  [ImmutabilityPolicyName <String>]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default'
  [Location <String>]: The location of the Azure Storage resource.
  [ManagementPolicyName <ManagementPolicyName?>]: The name of the Storage Account Management Policy. It should always be 'default'
  [ResourceGroupName <String>]: The name of the resource group within the user's subscription. The name is case insensitive.
  [ShareName <String>]: The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [SubscriptionId <String>]: The ID of the target subscription.
 
PARAMETER <IStorageAccountCheckNameAvailabilityParameters>: The parameters used to check the availability of the storage account name.
  Name <String>: The storage account name.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/test-azstorageaccountnameavailability
#>

function Test-AzStorageAccountNameAvailability {
[Alias('Get-AzStorageAccountNameAvailability')]
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20171001.ICheckNameAvailabilityResult])]
[CmdletBinding(DefaultParameterSetName='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Check')]
    [Parameter(ParameterSetName='CheckExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # The ID of the target subscription.
    ${SubscriptionId},

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

    [Parameter(ParameterSetName='Check', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='CheckViaIdentity', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20171001.IStorageAccountCheckNameAvailabilityParameters]
    # The parameters used to check the availability of the storage account name.
    # To construct, see NOTES section for PARAMETER properties and create a hash table.
    ${Parameter},

    [Parameter(ParameterSetName='CheckExpanded', Mandatory)]
    [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # The storage account name.
    ${Name},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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 = @{
            Check = 'Az.Storage.private\Test-AzStorageAccountNameAvailability_Check';
            CheckExpanded = 'Az.Storage.private\Test-AzStorageAccountNameAvailability_CheckExpanded';
            CheckViaIdentity = 'Az.Storage.private\Test-AzStorageAccountNameAvailability_CheckViaIdentity';
            CheckViaIdentityExpanded = 'Az.Storage.private\Test-AzStorageAccountNameAvailability_CheckViaIdentityExpanded';
        }
        if (('Check', 'CheckExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Updates share properties as specified in request body.
Properties not mentioned in the request will not be changed.
Update fails if the specified share does not already exist.
.Description
Updates share properties as specified in request body.
Properties not mentioned in the request will not be changed.
Update fails if the specified share does not already exist.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/update-azfileshare
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IFileShare
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IFileShare
.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.
 
FILESHARE <IFileShare>: Properties of the file share, including Id, resource name, resource type, Etag.
  [Metadata <IFileSharePropertiesMetadata>]: A name-value pair to associate with the share as metadata.
    [(Any) <String>]: This indicates any property can be added to this object.
  [ShareQuota <Int32?>]: The maximum size of the share, in gigabytes. Must be greater than 0, and less than or equal to 5TB (5120).
 
INPUTOBJECT <IStorageIdentity>: Identity Parameter
  [AccountName <String>]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
  [BlobServicesName <String>]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default'
  [ContainerName <String>]: The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [FileServicesName <String>]: The name of the file Service within the specified storage account. File Service Name must be "default"
  [Id <String>]: Resource identity path
  [ImmutabilityPolicyName <String>]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default'
  [Location <String>]: The location of the Azure Storage resource.
  [ManagementPolicyName <ManagementPolicyName?>]: The name of the Storage Account Management Policy. It should always be 'default'
  [ResourceGroupName <String>]: The name of the resource group within the user's subscription. The name is case insensitive.
  [ShareName <String>]: The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [SubscriptionId <String>]: The ID of the target subscription.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/update-azfileshare
#>

function Update-AzFileShare {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IFileShare])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${AccountName},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the file share within the specified storage account.
    # File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only.
    # Every dash (-) character must be immediately preceded and followed by a letter or number.
    ${ShareName},

    [Parameter(ParameterSetName='Update')]
    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # The ID of the target subscription.
    ${SubscriptionId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity]
    # 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.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IFileShare]
    # Properties of the file share, including Id, resource name, resource type, Etag.
    # To construct, see NOTES section for FILESHARE properties and create a hash table.
    ${FileShare},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IFileSharePropertiesMetadata]))]
    [System.Collections.Hashtable]
    # A name-value pair to associate with the share as metadata.
    ${Metadata},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Int32]
    # The maximum size of the share, in gigabytes.
    # Must be greater than 0, and less than or equal to 5TB (5120).
    ${ShareQuota},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Update-AzFileShare_Update';
            UpdateExpanded = 'Az.Storage.private\Update-AzFileShare_UpdateExpanded';
            UpdateViaIdentity = 'Az.Storage.private\Update-AzFileShare_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Az.Storage.private\Update-AzFileShare_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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Updates container properties as specified in request body.
Properties not mentioned in the request will be unchanged.
Update fails if the specified container doesn't already exist.
.Description
Updates container properties as specified in request body.
Properties not mentioned in the request will be unchanged.
Update fails if the specified container doesn't already exist.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/update-azrmstoragecontainer
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180201.IBlobContainer
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180201.IBlobContainer
.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.
 
BLOBCONTAINER <IBlobContainer>: Properties of the blob container, including Id, resource name, resource type, Etag.
  ImmutabilityPeriodSinceCreationInDay <Int32>: The immutability period for the blobs in the container since the policy creation, in days.
  [LegalHoldTag <ITagProperty[]>]: The list of LegalHold tags of a blob container.
  [Metadata <IContainerPropertiesMetadata>]: A name-value pair to associate with the container as metadata.
    [(Any) <String>]: This indicates any property can be added to this object.
  [PublicAccess <PublicAccess?>]: Specifies whether data in the container may be accessed publicly and the level of access.
 
INPUTOBJECT <IStorageIdentity>: Identity Parameter
  [AccountName <String>]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
  [BlobServicesName <String>]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default'
  [ContainerName <String>]: The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [FileServicesName <String>]: The name of the file Service within the specified storage account. File Service Name must be "default"
  [Id <String>]: Resource identity path
  [ImmutabilityPolicyName <String>]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default'
  [Location <String>]: The location of the Azure Storage resource.
  [ManagementPolicyName <ManagementPolicyName?>]: The name of the Storage Account Management Policy. It should always be 'default'
  [ResourceGroupName <String>]: The name of the resource group within the user's subscription. The name is case insensitive.
  [ShareName <String>]: The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [SubscriptionId <String>]: The ID of the target subscription.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/update-azrmstoragecontainer
#>

function Update-AzRmStorageContainer {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180201.IBlobContainer])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${AccountName},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the blob container within the specified storage account.
    # Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only.
    # Every dash (-) character must be immediately preceded and followed by a letter or number.
    ${ContainerName},

    [Parameter(ParameterSetName='Update', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='Update')]
    [Parameter(ParameterSetName='UpdateExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # The ID of the target subscription.
    ${SubscriptionId},

    [Parameter(ParameterSetName='UpdateViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity]
    # 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.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180201.IBlobContainer]
    # Properties of the blob container, including Id, resource name, resource type, Etag.
    # To construct, see NOTES section for BLOBCONTAINER properties and create a hash table.
    ${BlobContainer},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Int32]
    # The immutability period for the blobs in the container since the policy creation, in days.
    ${ImmutabilityPeriodSinceCreationInDay},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180201.ITagProperty[]]
    # The list of LegalHold tags of a blob container.
    ${LegalHoldTag},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180201.IContainerPropertiesMetadata]))]
    [System.Collections.Hashtable]
    # A name-value pair to associate with the container as metadata.
    ${Metadata},

    [Parameter(ParameterSetName='UpdateExpanded')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded')]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.PublicAccess])]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.PublicAccess]
    # Specifies whether data in the container may be accessed publicly and the level of access.
    ${PublicAccess},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Update-AzRmStorageContainer_Update';
            UpdateExpanded = 'Az.Storage.private\Update-AzRmStorageContainer_UpdateExpanded';
            UpdateViaIdentity = 'Az.Storage.private\Update-AzRmStorageContainer_UpdateViaIdentity';
            UpdateViaIdentityExpanded = 'Az.Storage.private\Update-AzRmStorageContainer_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
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis

.Description

.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/update-azstorageserviceproperty
.Inputs
Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
.Outputs
Microsoft.Azure.Commands.Storage.Model.ResourceModel.PSSeriviceProperties
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/update-azstorageserviceproperty
#>

function Update-AzStorageServiceProperty {
[OutputType([Microsoft.Azure.Commands.Storage.Model.ResourceModel.PSSeriviceProperties])]
[CmdletBinding(PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Position=0, Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Storage.Common.StorageServiceType]
    # Azure storage service type(Blob, Table, Queue).
    ${ServiceType},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Default Service Version to Set
    ${DefaultServiceVersion},

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

    [Parameter(ValueFromPipeline, ValueFromPipelineByPropertyName)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext]
    # Azure Storage Context Object
    ${Context},

    [Parameter()]
    [Alias('AzureRmContext', 'AzureCredential')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.private\Update-AzStorageServiceProperty!V2';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Creates a new storage account with the specified parameters.
If an account is already created and a subsequent create request is issued with different properties, the account properties will be updated.
If an account is already created and a subsequent create or update request is issued with the exact same set of properties, the request will succeed.
.Description
Creates a new storage account with the specified parameters.
If an account is already created and a subsequent create request is issued with different properties, the account properties will be updated.
If an account is already created and a subsequent create or update request is issued with the exact same set of properties, the request will succeed.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstorageaccount
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IStorageAccount
.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.
 
NETWORKRULESETIPRULE <IIPRule[]>: Sets the IP ACL rules
  IPAddressOrRange <String>: Specifies the IP or IP range in CIDR format. Only IPV4 address is allowed.
  [Action <Action?>]: The action of IP ACL rule.
 
NETWORKRULESETVIRTUALNETWORKRULE <IVirtualNetworkRule[]>: Sets the virtual network rules
  VirtualNetworkResourceId <String>: Resource ID of a subnet, for example: /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName}.
  [Action <Action?>]: The action of virtual network rule.
  [State <State?>]: Gets the state of virtual network rule.
 
SKURESTRICTION <IRestriction[]>: The restrictions because of which SKU cannot be used. This is empty if there are no restrictions.
  [ReasonCode <ReasonCode?>]: The reason for the restriction. As of now this can be "QuotaId" or "NotAvailableForSubscription". Quota Id is set when the SKU has requiredQuotas parameter as the subscription does not belong to that quota. The "NotAvailableForSubscription" is related to capacity at DC.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstorageaccount
#>

function New-AzStorageAccount {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IStorageAccount])]
[CmdletBinding(DefaultParameterSetName='CreateExpandedStorageEncryption', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${Name},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # The ID of the target subscription.
    ${SubscriptionId},

    [Parameter(Mandatory)]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.Kind])]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.Kind]
    # Required.
    # Indicates the type of storage account.
    ${Kind},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Required.
    # Gets or sets the location of the resource.
    # This will be one of the supported and registered Azure Geo Regions (e.g.
    # West US, East US, Southeast Asia, etc.).
    # The geo region of a resource cannot be changed once it is created, but if an identical geo region is specified on update, the request will succeed.
    ${Location},

    [Parameter(Mandatory)]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.SkuName])]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.SkuName]
    # Gets or sets the SKU name.
    # Required for account creation; optional for update.
    # Note that in older versions, SKU name was called accountType.
    ${SkuName},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Specify IdentityType as 'SystemAssigned'
    ${AssignIdentity},

    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.AccessTier])]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.AccessTier]
    # Required for storage accounts where kind = BlobStorage.
    # The access tier used for billing.
    ${AccessTier},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # A boolean indicating whether or not the service encrypts the data as it is stored.
    ${EncryptBlobService},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Gets or sets the custom domain name assigned to the storage account.
    # Name is the CNAME source.
    ${CustomDomainName},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Enables Azure Files AAD Integration for SMB if sets to true.
    ${EnableAzureFilesAadIntegration},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Allows https traffic only to storage service if sets to true.
    ${EnableHttpsTrafficOnly},

    [Parameter(ParameterSetName='CreateExpandedStorageEncryption')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    ${StorageEncryption},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # A boolean indicating whether or not the service encrypts the data as it is stored.
    ${EncryptFileService},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Account HierarchicalNamespace enabled if sets to true.
    ${EnableHierarchicalNamespace},

    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.Bypass])]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.Bypass]
    # Specifies whether traffic is bypassed for Logging/Metrics/AzureServices.
    # Possible values are any combination of Logging|Metrics|AzureServices (For example, "Logging, Metrics"), or None to bypass none of those traffics.
    ${NetworkRuleSetBypass},

    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.DefaultAction])]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.DefaultAction]
    # Specifies the default action of allow or deny when no other rules match.
    ${NetworkRuleSetDefaultAction},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20171001.IIPRule[]]
    # Sets the IP ACL rules
    # To construct, see NOTES section for NETWORKRULESETIPRULE properties and create a hash table.
    ${NetworkRuleSetIPRule},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20171001.IVirtualNetworkRule[]]
    # Sets the virtual network rules
    # To construct, see NOTES section for NETWORKRULESETVIRTUALNETWORKRULE properties and create a hash table.
    ${NetworkRuleSetVirtualNetworkRule},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # A boolean indicating whether or not the service encrypts the data as it is stored.
    ${EncryptQueueService},

    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.Kind])]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.Kind]
    # Indicates the type of storage account.
    ${SkuKind},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20171001.IRestriction[]]
    # The restrictions because of which SKU cannot be used.
    # This is empty if there are no restrictions.
    # To construct, see NOTES section for SKURESTRICTION properties and create a hash table.
    ${SkuRestriction},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # A boolean indicating whether or not the service encrypts the data as it is stored.
    ${EncryptTableService},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Collections.Hashtable]
    # Gets or sets a list of key value pairs that describe the resource.
    # These tags can be used for viewing and grouping this resource (across resource groups).
    # A maximum of 15 tags can be provided for a resource.
    # Each tag must have a key with a length no greater than 128 characters and a value with a length no greater than 256 characters.
    ${Tag},

    [Parameter(ParameterSetName='CreateExpandedKeyVaultEncryption')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    ${KeyVaultEncryption},

    [Parameter(ParameterSetName='CreateExpandedKeyVaultEncryption')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # The name of KeyVault key.
    ${KeyName},

    [Parameter(ParameterSetName='CreateExpandedKeyVaultEncryption')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # The Uri of KeyVault.
    ${KeyVaultUri},

    [Parameter(ParameterSetName='CreateExpandedKeyVaultEncryption')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # The version of KeyVault key.
    ${KeyVersion},

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

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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 = @{
            CreateExpandedStorageEncryption = 'Az.Storage.custom\New-AzStorageAccount';
            CreateExpandedKeyVaultEncryption = 'Az.Storage.custom\New-AzStorageAccount';
        }
        if (('CreateExpandedStorageEncryption', 'CreateExpandedKeyVaultEncryption') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
Creates or updates an unlocked immutability policy.
ETag in If-Match is honored if given but not required for this operation.
.Description
Creates or updates an unlocked immutability policy.
ETag in If-Match is honored if given but not required for this operation.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azrmstoragecontainerimmutabilitypolicy
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180201.IImmutabilityPolicy
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180201.IImmutabilityPolicy
.Notes
COMPLEX PARAMETER PROPERTIES
To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.
 
PARAMETER <IImmutabilityPolicy>: The ImmutabilityPolicy property of a blob container, including Id, resource name, resource type, Etag.
  ImmutabilityPeriodSinceCreationInDay <Int32>: The immutability period for the blobs in the container since the policy creation, in days.
  [ETag <String>]: The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/set-azrmstoragecontainerimmutabilitypolicy
#>

function Set-AzRmStorageContainerImmutabilityPolicy {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180201.IImmutabilityPolicy])]
[CmdletBinding(DefaultParameterSetName='Update', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${AccountName},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the blob container within the specified storage account.
    # Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only.
    # Every dash (-) character must be immediately preceded and followed by a letter or number.
    ${ContainerName},

    [Parameter(Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # The ID of the target subscription.
    ${SubscriptionId},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Header')]
    [System.String]
    # The entity state (ETag) version of the immutability policy to update.
    # A value of "*" can be used to apply the operation only if the immutability policy already exists.
    # If omitted, this operation will always be applied.
    ${IfMatch},

    [Parameter(ParameterSetName='Update', ValueFromPipeline)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20180201.IImmutabilityPolicy]
    # The ImmutabilityPolicy property of a blob container, including Id, resource name, resource type, Etag.
    # To construct, see NOTES section for PARAMETER properties and create a hash table.
    ${Parameter},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Indicate ExtendPolicy to Extend an existing ImmutabilityPolicy.
    # After ImmutabilityPolicy is locked, it can only be extend.
    ${ExtendPolicy},

    [Parameter(ParameterSetName='UpdateExpanded', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Int32]
    # The immutability period for the blobs in the container since the policy creation, in days.
    ${ImmutabilityPeriod},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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.Storage.custom\Set-AzRmStorageContainerImmutabilityPolicy';
            UpdateExpanded = 'Az.Storage.custom\Set-AzRmStorageContainerImmutabilityPolicy';
        }
        if (('Update', 'UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) {
            $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

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

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}

# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
<#
.Synopsis
The update operation can be used to update the SKU, encryption, access tier, or tags for a storage account.
It can also be used to map the account to a custom domain.
Only one custom domain is supported per storage account; the replacement/change of custom domain is not supported.
In order to replace an old custom domain, the old value must be cleared/unregistered before a new value can be set.
The update of multiple properties is supported.
This call does not change the storage keys for the account.
If you want to change the storage account keys, use the regenerate keys operation.
The location and name of the storage account cannot be changed after creation.
.Description
The update operation can be used to update the SKU, encryption, access tier, or tags for a storage account.
It can also be used to map the account to a custom domain.
Only one custom domain is supported per storage account; the replacement/change of custom domain is not supported.
In order to replace an old custom domain, the old value must be cleared/unregistered before a new value can be set.
The update of multiple properties is supported.
This call does not change the storage keys for the account.
If you want to change the storage account keys, use the regenerate keys operation.
The location and name of the storage account cannot be changed after creation.
.Example
To view examples, please use the -Online parameter with Get-Help or navigate to: https://docs.microsoft.com/en-us/powershell/module/az.storage/update-azstorageaccount
.Inputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.IStorageIdentity
.Outputs
Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IStorageAccount
.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 <IStorageIdentity>: Identity Parameter
  [AccountName <String>]: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
  [BlobServicesName <String>]: The name of the blob Service within the specified storage account. Blob Service Name must be 'default'
  [ContainerName <String>]: The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [FileServicesName <String>]: The name of the file Service within the specified storage account. File Service Name must be "default"
  [Id <String>]: Resource identity path
  [ImmutabilityPolicyName <String>]: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default'
  [Location <String>]: The location of the Azure Storage resource.
  [ManagementPolicyName <ManagementPolicyName?>]: The name of the Storage Account Management Policy. It should always be 'default'
  [ResourceGroupName <String>]: The name of the resource group within the user's subscription. The name is case insensitive.
  [ShareName <String>]: The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
  [SubscriptionId <String>]: The ID of the target subscription.
 
NETWORKRULESETIPRULE <IIPRule[]>: Sets the IP ACL rules
  IPAddressOrRange <String>: Specifies the IP or IP range in CIDR format. Only IPV4 address is allowed.
  [Action <Action?>]: The action of IP ACL rule.
 
NETWORKRULESETVIRTUALNETWORKRULE <IVirtualNetworkRule[]>: Sets the virtual network rules
  VirtualNetworkResourceId <String>: Resource ID of a subnet, for example: /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName}.
  [Action <Action?>]: The action of virtual network rule.
  [State <State?>]: Gets the state of virtual network rule.
 
SKURESTRICTION <IRestriction[]>: The restrictions because of which SKU cannot be used. This is empty if there are no restrictions.
  [ReasonCode <ReasonCode?>]: The reason for the restriction. As of now this can be "QuotaId" or "NotAvailableForSubscription". Quota Id is set when the SKU has requiredQuotas parameter as the subscription does not belong to that quota. The "NotAvailableForSubscription" is related to capacity at DC.
.Link
https://docs.microsoft.com/en-us/powershell/module/az.storage/update-azstorageaccount
#>

function Update-AzStorageAccount {
[OutputType([Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20190401.IStorageAccount])]
[CmdletBinding(DefaultParameterSetName='UpdateExpanded1', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[Microsoft.Azure.PowerShell.Cmdlets.Storage.Profile('latest-2019-04-30')]
param(
    [Parameter(ParameterSetName='UpdateExpanded1', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded1KeyVaultEncryption', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded1StorageEncryption', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the storage account within the specified resource group.
    # Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
    ${Name},

    [Parameter(ParameterSetName='UpdateExpanded1', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded1KeyVaultEncryption', Mandatory)]
    [Parameter(ParameterSetName='UpdateExpanded1StorageEncryption', Mandatory)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [System.String]
    # The name of the resource group within the user's subscription.
    # The name is case insensitive.
    ${ResourceGroupName},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateExpanded1KeyVaultEncryption')]
    [Parameter(ParameterSetName='UpdateExpanded1StorageEncryption')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Path')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')]
    [System.String]
    # The ID of the target subscription.
    ${SubscriptionId},

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

    [Parameter(Mandatory)]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.SkuName])]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.SkuName]
    # Gets or sets the SKU name.
    # Required for account creation; optional for update.
    # Note that in older versions, SKU name was called accountType.
    ${SkuName},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Specify IdentityType as 'SystemAssigned'
    ${AssignIdentity},

    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.AccessTier])]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.AccessTier]
    # Required for storage accounts where kind = BlobStorage.
    # The access tier used for billing.
    ${AccessTier},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # A boolean indicating whether or not the service encrypts the data as it is stored.
    ${EncryptBlobService},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # Gets or sets the custom domain name assigned to the storage account.
    # Name is the CNAME source.
    ${CustomDomainName},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Enables Azure Files AAD Integration for SMB if sets to true.
    ${EnableAzureFilesAadIntegration},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Allows https traffic only to storage service if sets to true.
    ${EnableHttpsTrafficOnly},

    [Parameter(ParameterSetName='UpdateExpanded1')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    ${NoEncryption},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # A boolean indicating whether or not the service encrypts the data as it is stored.
    ${EncryptFileService},

    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.Kind])]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.Kind]
    # Optional.
    # Indicates the type of storage account.
    # Currently only StorageV2 value supported by server.
    ${Kind},

    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.Bypass])]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.Bypass]
    # Specifies whether traffic is bypassed for Logging/Metrics/AzureServices.
    # Possible values are any combination of Logging|Metrics|AzureServices (For example, "Logging, Metrics"), or None to bypass none of those traffics.
    ${NetworkRuleSetBypass},

    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.DefaultAction])]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.DefaultAction]
    # Specifies the default action of allow or deny when no other rules match.
    ${NetworkRuleSetDefaultAction},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20171001.IIPRule[]]
    # Sets the IP ACL rules
    # To construct, see NOTES section for NETWORKRULESETIPRULE properties and create a hash table.
    ${NetworkRuleSetIPRule},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20171001.IVirtualNetworkRule[]]
    # Sets the virtual network rules
    # To construct, see NOTES section for NETWORKRULESETVIRTUALNETWORKRULE properties and create a hash table.
    ${NetworkRuleSetVirtualNetworkRule},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # A boolean indicating whether or not the service encrypts the data as it is stored.
    ${EncryptQueueService},

    [Parameter()]
    [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.Kind])]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Support.Kind]
    # Indicates the type of storage account.
    ${SkuKind},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Models.Api20171001.IRestriction[]]
    # The restrictions because of which SKU cannot be used.
    # This is empty if there are no restrictions.
    # To construct, see NOTES section for SKURESTRICTION properties and create a hash table.
    ${SkuRestriction},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # A boolean indicating whether or not the service encrypts the data as it is stored.
    ${EncryptTableService},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Collections.Hashtable]
    # Gets or sets a list of key value pairs that describe the resource.
    # These tags can be used in viewing and grouping this resource (across resource groups).
    # A maximum of 15 tags can be provided for a resource.
    # Each tag must have a key no greater in length than 128 characters and a value no greater in length than 256 characters.
    ${Tag},

    [Parameter()]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    # Indicates whether indirect CName validation is enabled.
    # Default value is false.
    # This should only be set on updates.
    ${UseSubDomain},

    [Parameter(ParameterSetName='UpdateExpanded1KeyVaultEncryption')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1KeyVaultEncryption')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    ${KeyVaultEncryption},

    [Parameter(ParameterSetName='UpdateExpanded1KeyVaultEncryption')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1KeyVaultEncryption')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # The name of KeyVault key.
    ${KeyName},

    [Parameter(ParameterSetName='UpdateExpanded1KeyVaultEncryption')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1KeyVaultEncryption')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # The Uri of KeyVault.
    ${KeyVaultUri},

    [Parameter(ParameterSetName='UpdateExpanded1KeyVaultEncryption')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1KeyVaultEncryption')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.String]
    # The version of KeyVault key.
    ${KeyVersion},

    [Parameter(ParameterSetName='UpdateExpanded1StorageEncryption')]
    [Parameter(ParameterSetName='UpdateViaIdentityExpanded1StorageEncryption')]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    ${StorageEncryption},

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

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

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

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

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

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

    [Parameter(DontShow)]
    [Microsoft.Azure.PowerShell.Cmdlets.Storage.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 = @{
            UpdateExpanded1 = 'Az.Storage.custom\Update-AzStorageAccount';
            UpdateExpanded1KeyVaultEncryption = 'Az.Storage.custom\Update-AzStorageAccount';
            UpdateExpanded1StorageEncryption = 'Az.Storage.custom\Update-AzStorageAccount';
            UpdateViaIdentityExpanded1KeyVaultEncryption = 'Az.Storage.custom\Update-AzStorageAccount';
            UpdateViaIdentityExpanded1StorageEncryption = 'Az.Storage.custom\Update-AzStorageAccount';
            UpdateViaIdentityExpanded1 = 'Az.Storage.custom\Update-AzStorageAccount';
        }
        if (('UpdateExpanded1', 'UpdateExpanded1KeyVaultEncryption', 'UpdateExpanded1StorageEncryption') -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
# MIIjhgYJKoZIhvcNAQcCoIIjdzCCI3MCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCnl5gKHQ4zRy4J
# NPxFOtz3alGxci3l75SE1tud3XqgtaCCDYEwggX/MIID56ADAgECAhMzAAABUZ6N
# j0Bxow5BAAAAAAFRMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p
# bmcgUENBIDIwMTEwHhcNMTkwNTAyMjEzNzQ2WhcNMjAwNTAyMjEzNzQ2WjB0MQsw
# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
# AQCVWsaGaUcdNB7xVcNmdfZiVBhYFGcn8KMqxgNIvOZWNH9JYQLuhHhmJ5RWISy1
# oey3zTuxqLbkHAdmbeU8NFMo49Pv71MgIS9IG/EtqwOH7upan+lIq6NOcw5fO6Os
# +12R0Q28MzGn+3y7F2mKDnopVu0sEufy453gxz16M8bAw4+QXuv7+fR9WzRJ2CpU
# 62wQKYiFQMfew6Vh5fuPoXloN3k6+Qlz7zgcT4YRmxzx7jMVpP/uvK6sZcBxQ3Wg
# B/WkyXHgxaY19IAzLq2QiPiX2YryiR5EsYBq35BP7U15DlZtpSs2wIYTkkDBxhPJ
# IDJgowZu5GyhHdqrst3OjkSRAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE
# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUV4Iarkq57esagu6FUBb270Zijc8w
# UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1
# ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDU0MTM1MB8GA1UdIwQYMBaAFEhu
# ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu
# bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w
# Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3
# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx
# MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAWg+A
# rS4Anq7KrogslIQnoMHSXUPr/RqOIhJX+32ObuY3MFvdlRElbSsSJxrRy/OCCZdS
# se+f2AqQ+F/2aYwBDmUQbeMB8n0pYLZnOPifqe78RBH2fVZsvXxyfizbHubWWoUf
# NW/FJlZlLXwJmF3BoL8E2p09K3hagwz/otcKtQ1+Q4+DaOYXWleqJrJUsnHs9UiL
# crVF0leL/Q1V5bshob2OTlZq0qzSdrMDLWdhyrUOxnZ+ojZ7UdTY4VnCuogbZ9Zs
# 9syJbg7ZUS9SVgYkowRsWv5jV4lbqTD+tG4FzhOwcRQwdb6A8zp2Nnd+s7VdCuYF
# sGgI41ucD8oxVfcAMjF9YX5N2s4mltkqnUe3/htVrnxKKDAwSYliaux2L7gKw+bD
# 1kEZ/5ozLRnJ3jjDkomTrPctokY/KaZ1qub0NUnmOKH+3xUK/plWJK8BOQYuU7gK
# YH7Yy9WSKNlP7pKj6i417+3Na/frInjnBkKRCJ/eYTvBH+s5guezpfQWtU4bNo/j
# 8Qw2vpTQ9w7flhH78Rmwd319+YTmhv7TcxDbWlyteaj4RK2wk3pY1oSz2JPE5PNu
# Nmd9Gmf6oePZgy7Ii9JLLq8SnULV7b+IP0UXRY9q+GdRjM2AEX6msZvvPCIoG0aY
# HQu9wZsKEK2jqvWi8/xdeeeSI9FN6K1w4oVQM4Mwggd6MIIFYqADAgECAgphDpDS
# AAAAAAADMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMK
# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
# IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0
# ZSBBdXRob3JpdHkgMjAxMTAeFw0xMTA3MDgyMDU5MDlaFw0yNjA3MDgyMTA5MDla
# MH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS
# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMT
# H01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTEwggIiMA0GCSqGSIb3DQEB
# AQUAA4ICDwAwggIKAoICAQCr8PpyEBwurdhuqoIQTTS68rZYIZ9CGypr6VpQqrgG
# OBoESbp/wwwe3TdrxhLYC/A4wpkGsMg51QEUMULTiQ15ZId+lGAkbK+eSZzpaF7S
# 35tTsgosw6/ZqSuuegmv15ZZymAaBelmdugyUiYSL+erCFDPs0S3XdjELgN1q2jz
# y23zOlyhFvRGuuA4ZKxuZDV4pqBjDy3TQJP4494HDdVceaVJKecNvqATd76UPe/7
# 4ytaEB9NViiienLgEjq3SV7Y7e1DkYPZe7J7hhvZPrGMXeiJT4Qa8qEvWeSQOy2u
# M1jFtz7+MtOzAz2xsq+SOH7SnYAs9U5WkSE1JcM5bmR/U7qcD60ZI4TL9LoDho33
# X/DQUr+MlIe8wCF0JV8YKLbMJyg4JZg5SjbPfLGSrhwjp6lm7GEfauEoSZ1fiOIl
# XdMhSz5SxLVXPyQD8NF6Wy/VI+NwXQ9RRnez+ADhvKwCgl/bwBWzvRvUVUvnOaEP
# 6SNJvBi4RHxF5MHDcnrgcuck379GmcXvwhxX24ON7E1JMKerjt/sW5+v/N2wZuLB
# l4F77dbtS+dJKacTKKanfWeA5opieF+yL4TXV5xcv3coKPHtbcMojyyPQDdPweGF
# RInECUzF1KVDL3SV9274eCBYLBNdYJWaPk8zhNqwiBfenk70lrC8RqBsmNLg1oiM
# CwIDAQABo4IB7TCCAekwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFEhuZOVQ
# BdOCqhc3NyK1bajKdQKVMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud
# DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFHItOgIxkEO5FAVO
# 4eqnxzHRI4k0MFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwubWljcm9zb2Z0
# LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y
# Mi5jcmwwXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUFBzAChkJodHRwOi8vd3d3Lm1p
# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y
# Mi5jcnQwgZ8GA1UdIASBlzCBlDCBkQYJKwYBBAGCNy4DMIGDMD8GCCsGAQUFBwIB
# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2RvY3MvcHJpbWFyeWNw
# cy5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AcABvAGwAaQBjAHkA
# XwBzAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAGfyhqWY
# 4FR5Gi7T2HRnIpsLlhHhY5KZQpZ90nkMkMFlXy4sPvjDctFtg/6+P+gKyju/R6mj
# 82nbY78iNaWXXWWEkH2LRlBV2AySfNIaSxzzPEKLUtCw/WvjPgcuKZvmPRul1LUd
# d5Q54ulkyUQ9eHoj8xN9ppB0g430yyYCRirCihC7pKkFDJvtaPpoLpWgKj8qa1hJ
# Yx8JaW5amJbkg/TAj/NGK978O9C9Ne9uJa7lryft0N3zDq+ZKJeYTQ49C/IIidYf
# wzIY4vDFLc5bnrRJOQrGCsLGra7lstnbFYhRRVg4MnEnGn+x9Cf43iw6IGmYslmJ
# aG5vp7d0w0AFBqYBKig+gj8TTWYLwLNN9eGPfxxvFX1Fp3blQCplo8NdUmKGwx1j
# NpeG39rz+PIWoZon4c2ll9DuXWNB41sHnIc+BncG0QaxdR8UvmFhtfDcxhsEvt9B
# xw4o7t5lL+yX9qFcltgA1qFGvVnzl6UJS0gQmYAf0AApxbGbpT9Fdx41xtKiop96
# eiL6SJUfq/tHI4D1nvi/a7dLl+LrdXga7Oo3mXkYS//WsyNodeav+vyL6wuA6mk7
# r/ww7QRMjt/fdW1jkT3RnVZOT7+AVyKheBEyIXrvQQqxP/uozKRdwaGIm1dxVk5I
# RcBCyZt2WwqASGv9eZ/BvW1taslScxMNelDNMYIVWzCCFVcCAQEwgZUwfjELMAkG
# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx
# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z
# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAVGejY9AcaMOQQAAAAABUTAN
# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor
# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQglhUhPNpf
# 18tp6Zo3BM4K20vZNeOmd2myuUoyKKD/WN4wQgYKKwYBBAGCNwIBDDE0MDKgFIAS
# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN
# BgkqhkiG9w0BAQEFAASCAQB5rQpjSvH72D73jXGclJs7KNrX5OUzVPRjeJOvHCPX
# xbmOYHna9AfkMBdxtGZwM3EMTC2AyLuis+zWzS/oRakHQmqfv3Ai6MPnihkmswF7
# bbgXsqd5/0dE9GYM+rP3f1FrX/QHWOYdV5Rmc3u+e4/+DDrru1+Q3pcCARl6GqQX
# EkQg2mO+xzG3uDbrYUZ3hEpHJZab1+9rnf8q2927KoUZB0P9HveIyqFE7fsVfe0/
# aK6kN8h5AwWnga5ipMeeWrdxcCJlueQPT51ff/C3tDEXFKinzx/EikA+bs/5/330
# vaFo7cxkE1usH4zXy6n+78s+uC8ybfwOwDx5NRysgMvCoYIS5TCCEuEGCisGAQQB
# gjcDAwExghLRMIISzQYJKoZIhvcNAQcCoIISvjCCEroCAQMxDzANBglghkgBZQME
# AgEFADCCAVEGCyqGSIb3DQEJEAEEoIIBQASCATwwggE4AgEBBgorBgEEAYRZCgMB
# MDEwDQYJYIZIAWUDBAIBBQAEIH1aMbiljdF12Vtg8sn0jM7hPpWBFBqA0jcCcs5j
# IEQ+AgZd+5CnULUYEzIwMTkxMjIwMDk0NTI3LjgwNFowBIACAfSggdCkgc0wgcox
# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt
# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1p
# Y3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJjAkBgNVBAsTHVRoYWxlcyBUU1Mg
# RVNOOjEyQkMtRTNBRS03NEVCMSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFt
# cCBTZXJ2aWNloIIOPDCCBPEwggPZoAMCAQICEzMAAAEh97GBmyNE1wwAAAAAASEw
# DQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0
# b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh
# dGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwHhcN
# MTkxMTEzMjE0MDQyWhcNMjEwMjExMjE0MDQyWjCByjELMAkGA1UEBhMCVVMxEzAR
# BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1p
# Y3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2Eg
# T3BlcmF0aW9uczEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046MTJCQy1FM0FFLTc0
# RUIxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggEiMA0G
# CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDQCHhpfx2GygASmkk36b/lhYA4pR/U
# y13RRupY6dzUpVeHJ9RORDtLhG+AnEeWrJcXj2K1tN0YfdJIqIIFwRwuPlqYRIvM
# GWSoa8g9OfMMoZPZhm06limLuJ+X4QlVHgyJ0Kh2mEB+Tp55jTf5OHhWYdGEnyCX
# GMJcj5MkC9UB0uuudHy+hu5HwvW1oXGcBcQEazrLtzG2t4lm6jwoxYjaDF9/0W4C
# HqapxD/8oPEcGCjnrNmcMc0Xt9aHdngTKIV/TL8UOs5pYTL+X9NaYDO6FFgASvfW
# vkrP42zoxE36pBhAWax8UhT67Km4+2Xrz+FN9RMukAOt+Lg1lKsGo2fHAgMBAAGj
# ggEbMIIBFzAdBgNVHQ4EFgQUgm2ixcxt3F/nuAwdE6nddtJe9BwwHwYDVR0jBBgw
# FoAU1WM6XIoxkPNDe3xGG8UzaFqFbVUwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDov
# L2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljVGltU3RhUENB
# XzIwMTAtMDctMDEuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0
# cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNUaW1TdGFQQ0FfMjAx
# MC0wNy0wMS5jcnQwDAYDVR0TAQH/BAIwADATBgNVHSUEDDAKBggrBgEFBQcDCDAN
# BgkqhkiG9w0BAQsFAAOCAQEAmchnoJ9VlIo1/w0OQTqq3GJb4BtOtNb3fIW1JlU5
# x80+QOP2JCzR+wHy+eha4OfeSbrBaI4+XKVv7ZWbX9DBYX2NJjpTMgEw1H80Fhyq
# ghJPMXp/mQbhkb6UpCQ4KldVlsvA1e18P7xft6Y7miM+ZYm+GIZztMkQizn0hAGV
# MnZ6hWDIA8Fa/1ZwxHMiHlzAYPA7JYpvVnfpnYJIfx0mue9BI40SsQWNiTrQ7tTI
# qd9M5IlPZ/Gy7ApXDTJWrw+qYDjL5ylN+v6uGsC+FXOfAzS4B1xj3KDpz/DRao82
# W4Gb5ILAKBWsvbi+M7l+TjPguE++tEXAcEJYwDsW+bBiTzCCBnEwggRZoAMCAQIC
# 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/edIhJEqGCAs4wggI3AgEBMIH4oYHQpIHNMIHKMQswCQYDVQQGEwJVUzETMBEG
# A1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWlj
# cm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBP
# cGVyYXRpb25zMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjoxMkJDLUUzQUUtNzRF
# QjElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcG
# BSsOAwIaAxUAr8ajO2jqA+vCGdK+EdBXUKpju2mggYMwgYCkfjB8MQswCQYDVQQG
# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG
# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQg
# VGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUFAAIFAOGmt+cwIhgPMjAx
# OTEyMjAxMTAwNTVaGA8yMDE5MTIyMTExMDA1NVowdzA9BgorBgEEAYRZCgQBMS8w
# LTAKAgUA4aa35wIBADAKAgEAAgIk9gIB/zAHAgEAAgIRtzAKAgUA4agJZwIBADA2
# BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIB
# AAIDAYagMA0GCSqGSIb3DQEBBQUAA4GBANN6/5gjmPO6TYQPezHDaATkldItbRAu
# 9aBNKTVfE2ZIuA8l6QGt0xOdpwXt0GFekAXPBZm9J3QyKvHEfyI+wTm3dGO+XprU
# h/pPttBzAvgdROVry6iej1KHpLGjWrhg7bTRZWu4P8wL0KBcQ+mHyqSDeoRy6bWC
# cN32VhAOI26rMYIDDTCCAwkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m
# dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB
# IDIwMTACEzMAAAEh97GBmyNE1wwAAAAAASEwDQYJYIZIAWUDBAIBBQCgggFKMBoG
# CSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgyznNd490
# rcHFuyaudbroiTCkJF8Dbo4J5v8Jt1uYYy8wgfoGCyqGSIb3DQEJEAIvMYHqMIHn
# MIHkMIG9BCD+EWyTV+m7ADABlfBFNTu+ajQt8d5kp47taXho+rTnYDCBmDCBgKR+
# MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS
# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMT
# HU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAABIfexgZsjRNcMAAAA
# AAEhMCIEIGDz0dNr19wesDG1q4gPmp0Hfnxjyo0fvuWNUMRdz3OHMA0GCSqGSIb3
# DQEBCwUABIIBAHLy1W1UHik5/bOMiJyvKSkxKX0auLJaWJ6P0PPDgqlQhkwcCGGf
# rci+mLYCsIo7gZUhXJFvouOhG/pvr0REVAIj91L7/CuW1fjzamee+LyrqnGK0/X1
# N2picVaXaV2XD7kUf0OHufEnzp7OB1on9LUQBFyGvnEWv8GevlkchFuDVd8Y/W8M
# ZZASlyDL04xlGOcUjMnsvsPIOjX2Fe0Ogm/VXkGDr75DWUEXkebgyqWUPysPsAf8
# mdCcOSsj2TQ/gvi+u2uz5C17o9qL91qvDCWNw7GIIkxxRv8K/dq5I4fXHYJgTvG/
# ocDYeexcU4GYX6joruzD6Lq1fcFPfeOgMo4=
# SIG # End signature block