diff --git a/src/Azs.ContainerRegistry.Admin/custom/Start-AzsContainerRegistrySetup.ps1 b/src/Azs.ContainerRegistry.Admin/custom/Start-AzsContainerRegistrySetup.ps1 new file mode 100644 index 00000000..31991a5f --- /dev/null +++ b/src/Azs.ContainerRegistry.Admin/custom/Start-AzsContainerRegistrySetup.ps1 @@ -0,0 +1,215 @@ + +# ---------------------------------------------------------------------------------- +# +# 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 +Invokes container registry certificate uploading and service deployment. +.Description +Invokes container registry certificate uploading and service deployment. +.Example +PS C:\> Start-AzsContainerRegistrySetup -Password $password -CertificateInputFile $pfx_cert_path | ConvertTo-Json + +{ + "Id": "/subscriptions/7e41090c-4aa7-40bc-856a-a993f8fbd215/providers/Microsoft.ContainerRegistry.Setup/locations/redmond/setup/value", + "Name": "redmond/value", + "StatusUri": "https://containerregistrysetup.ascu.azs:4335/providers/Microsoft.ContainerRegistry.Setup/subscriptions/7e41090c-4aa7-40bc-856a-a993f8fbd215/providers/Microsoft.ContainerRegistry.Setup/locations/redmond/setup?api-version=2019-11-01-preview", + "Type": "Microsoft.ContainerRegistry.Setup/locations/setup" +} +.Example +PS C:\> Start-AzsContainerRegistrySetup -Password $password -CertificateInputFile $pfx_cert_path | ConvertTo-Json + +Start-AzsContainerRegistrySetup : Container registry deployment is still running. It is not allowed to repeat deployment at this stage. +At line:1 char:1 ++ Start-AzsContainerRegistrySetup -Password $password -CertificateInputFile ... ++ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + CategoryInfo : InvalidOperation: ({ SubscriptionI...SetupProperty }:<>f__AnonymousType7`3) [Start-AzsContai...p_StartExpanded], Exception + + FullyQualifiedErrorId : AcrDeploymentStillRunning,Microsoft.Azure.PowerShell.Cmdlets.ContainerRegistryAdmin.Cmdlets.StartAzsContainerRegistrySetup_StartExpanded + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerRegistryAdmin.Models.Api20191101Preview.IContainerRegistrySetupProperty +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerRegistryAdmin.Models.IContainerRegistryAdminIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.ContainerRegistryAdmin.Models.Api20191101Preview.IContainerRegistrySetup +.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 : Identity Parameter + [CapacityName ]: The name of the capacity parameter. + [ConfigurationName ]: The name of the configuration. + [Id ]: Resource identity path + [Location ]: The name of Azure region. + [QuotaName ]: The name of the container registry quota. + [SubscriptionId ]: The ID of the target subscription. + +STARTSETUPREQUEST : Container registry setup properties. + [Password ]: Ssl certificate password. + [SslCertBase64 ]: Ssl certificate in base64 format. +.Link +https://docs.microsoft.com/en-us/powershell/module/azs.containerregistry.admin/start-azscontainerregistrysetup +#> +function Start-AzsContainerRegistrySetup { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.ContainerRegistryAdmin.Models.Api20191101Preview.IContainerRegistrySetup])] +[CmdletBinding(DefaultParameterSetName='StartExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Start')] + [Parameter(ParameterSetName='StartExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerRegistryAdmin.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerRegistryAdmin.Runtime.DefaultInfo(Script='(Get-AzLocation)[0].Location')] + [System.String] + # The name of Azure region. + ${Location}, + + [Parameter(ParameterSetName='Start')] + [Parameter(ParameterSetName='StartExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerRegistryAdmin.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerRegistryAdmin.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # The ID of the target subscription. + ${SubscriptionId}, + + [Parameter(ParameterSetName='StartViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='StartViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerRegistryAdmin.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerRegistryAdmin.Models.IContainerRegistryAdminIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Start', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='StartViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerRegistryAdmin.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerRegistryAdmin.Models.Api20191101Preview.IContainerRegistrySetupProperty] + # Container registry setup properties. + # To construct, see NOTES section for STARTSETUPREQUEST properties and create a hash table. + ${StartSetupRequest}, + + [Parameter(ParameterSetName='StartExpanded')] + [Parameter(ParameterSetName='StartViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerRegistryAdmin.Category('Body')] + [System.String] + # Input File for Certificate (Ssl certificate in base64 format.) + ${CertificateInputFile}, + + [Parameter(ParameterSetName='StartExpanded')] + [Parameter(ParameterSetName='StartViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerRegistryAdmin.Category('Body')] + [System.Security.SecureString] + # Ssl certificate password. + ${Password}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerRegistryAdmin.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerRegistryAdmin.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerRegistryAdmin.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerRegistryAdmin.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerRegistryAdmin.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerRegistryAdmin.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerRegistryAdmin.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerRegistryAdmin.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.ContainerRegistryAdmin.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 = @{ + Start = 'Azs.ContainerRegistry.Admin.private\Start-AzsContainerRegistrySetup_Start'; + StartExpanded = 'Azs.ContainerRegistry.Admin.private\Start-AzsContainerRegistrySetup_StartExpanded'; + StartViaIdentity = 'Azs.ContainerRegistry.Admin.private\Start-AzsContainerRegistrySetup_StartViaIdentity'; + StartViaIdentityExpanded = 'Azs.ContainerRegistry.Admin.private\Start-AzsContainerRegistrySetup_StartViaIdentityExpanded'; + } + if (('Start', 'StartExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('Location')) { + $PSBoundParameters['Location'] = (Get-AzLocation)[0].Location + } + if (('Start', 'StartExpanded') -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 { + + # Basic validation should be present in powershell for PFX file + if ($PSBoundParameters.ContainsKey(('CertificateInputFile'))) + { + if (!(Test-Path -Path $CertificateInputFile -PathType Leaf)) + { + throw "The specified ssl cert $CertificateInputFile does not exist." + } + + if ([IO.Path]::GetExtension($CertificateInputFile) -ne ".pfx" ) + { + throw "The specified file $CertificateInputFile is not cert with private key." + } + } +} + +end { + try { + $steppablePipeline.End() + } catch { + throw + } +} +} diff --git a/src/Azs.ContainerRegistry.Admin/docs/Azs.ContainerRegistry.Admin.md b/src/Azs.ContainerRegistry.Admin/docs/Azs.ContainerRegistry.Admin.md index 09e5ebf1..aba908d8 100644 --- a/src/Azs.ContainerRegistry.Admin/docs/Azs.ContainerRegistry.Admin.md +++ b/src/Azs.ContainerRegistry.Admin/docs/Azs.ContainerRegistry.Admin.md @@ -1,6 +1,6 @@ --- Module Name: Azs.ContainerRegistry.Admin -Module Guid: 900db1dd-8338-4e8f-a01c-81ab98484955 +Module Guid: b0f249b1-a0b6-42a8-837c-d20801583692 Download Help Link: https://docs.microsoft.com/en-us/powershell/module/azs.containerregistry.admin Help Version: 1.0.0.0 Locale: en-US @@ -29,9 +29,6 @@ Returns the status of the container registry setup. ### [New-AzsContainerRegistryQuota](New-AzsContainerRegistryQuota.md) Create or update an existing container registry quota. -### [Remove-AzsContainerRegistryConfiguration](Remove-AzsContainerRegistryConfiguration.md) -Delete an existing container registry configuration - ### [Remove-AzsContainerRegistryQuota](Remove-AzsContainerRegistryQuota.md) Delete an existing container registry quota diff --git a/src/Azs.ContainerRegistry.Admin/docs/Get-AzsContainerRegistryConfiguration.md b/src/Azs.ContainerRegistry.Admin/docs/Get-AzsContainerRegistryConfiguration.md index 27e67418..c9a21130 100644 --- a/src/Azs.ContainerRegistry.Admin/docs/Get-AzsContainerRegistryConfiguration.md +++ b/src/Azs.ContainerRegistry.Admin/docs/Get-AzsContainerRegistryConfiguration.md @@ -20,8 +20,8 @@ Get-AzsContainerRegistryConfiguration [-Location ] [-SubscriptionId [-Location ] - [-SubscriptionId ] [-DefaultProfile ] [] +Get-AzsContainerRegistryConfiguration -Name [-Location ] [-SubscriptionId ] + [-DefaultProfile ] [] ``` ### GetViaIdentity @@ -51,21 +51,6 @@ Returns the specified configuration details. ## PARAMETERS -### -ConfigurationName -The name of the configuration. - -```yaml -Type: System.String -Parameter Sets: Get -Aliases: - -Required: True -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - ### -DefaultProfile The credentials, account, tenant, and subscription used for communication with Azure. @@ -112,6 +97,21 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -Name +The name of the configuration. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -SubscriptionId The ID of the target subscription. diff --git a/src/Azs.ContainerRegistry.Admin/docs/Remove-AzsContainerRegistryConfiguration.md b/src/Azs.ContainerRegistry.Admin/docs/Remove-AzsContainerRegistryConfiguration.md deleted file mode 100644 index 28c12f0f..00000000 --- a/src/Azs.ContainerRegistry.Admin/docs/Remove-AzsContainerRegistryConfiguration.md +++ /dev/null @@ -1,193 +0,0 @@ ---- -external help file: -Module Name: Azs.ContainerRegistry.Admin -online version: https://docs.microsoft.com/en-us/powershell/module/azs.containerregistry.admin/remove-azscontainerregistryconfiguration -schema: 2.0.0 ---- - -# Remove-AzsContainerRegistryConfiguration - -## SYNOPSIS -Delete an existing container registry configuration - -## SYNTAX - -### Delete (Default) -``` -Remove-AzsContainerRegistryConfiguration -ConfigurationName [-Location ] - [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] -``` - -### DeleteViaIdentity -``` -Remove-AzsContainerRegistryConfiguration -InputObject - [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] -``` - -## DESCRIPTION -Delete an existing container registry configuration - -## EXAMPLES - -### Example 1: Remove Azs ContainerRegistry Configuration -```powershell -PS C:\> Remove-AzsContainerRegistryConfiguration -ConfigurationName default - -``` - -Delete an existing container registry configuration. - -## PARAMETERS - -### -ConfigurationName -The name of the configuration. - -```yaml -Type: System.String -Parameter Sets: Delete -Aliases: - -Required: True -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - -### -DefaultProfile -The credentials, account, tenant, and subscription used for communication with Azure. - -```yaml -Type: System.Management.Automation.PSObject -Parameter Sets: (All) -Aliases: AzureRMContext, AzureCredential - -Required: False -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - -### -InputObject -Identity Parameter -To construct, see NOTES section for INPUTOBJECT properties and create a hash table. - -```yaml -Type: Microsoft.Azure.PowerShell.Cmdlets.ContainerRegistryAdmin.Models.IContainerRegistryAdminIdentity -Parameter Sets: DeleteViaIdentity -Aliases: - -Required: True -Position: Named -Default value: None -Accept pipeline input: True (ByValue) -Accept wildcard characters: False -``` - -### -Location -The name of Azure region. - -```yaml -Type: System.String -Parameter Sets: Delete -Aliases: - -Required: False -Position: Named -Default value: (Get-AzLocation)[0].Location -Accept pipeline input: False -Accept wildcard characters: False -``` - -### -PassThru -Returns true when the command succeeds - -```yaml -Type: System.Management.Automation.SwitchParameter -Parameter Sets: (All) -Aliases: - -Required: False -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - -### -SubscriptionId -The ID of the target subscription. - -```yaml -Type: System.String -Parameter Sets: Delete -Aliases: - -Required: False -Position: Named -Default value: (Get-AzContext).Subscription.Id -Accept pipeline input: False -Accept wildcard characters: False -``` - -### -Confirm -Prompts you for confirmation before running the cmdlet. - -```yaml -Type: System.Management.Automation.SwitchParameter -Parameter Sets: (All) -Aliases: cf - -Required: False -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - -### -WhatIf -Shows what would happen if the cmdlet runs. -The cmdlet is not run. - -```yaml -Type: System.Management.Automation.SwitchParameter -Parameter Sets: (All) -Aliases: wi - -Required: False -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - -### CommonParameters -This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). - -## INPUTS - -### Microsoft.Azure.PowerShell.Cmdlets.ContainerRegistryAdmin.Models.IContainerRegistryAdminIdentity - -## OUTPUTS - -### System.Boolean - -## NOTES - -ALIASES - -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 : Identity Parameter - - `[CapacityName ]`: The name of the capacity parameter. - - `[ConfigurationName ]`: The name of the configuration. - - `[Id ]`: Resource identity path - - `[Location ]`: The name of Azure region. - - `[QuotaName ]`: The name of the container registry quota. - - `[SubscriptionId ]`: The ID of the target subscription. - -## RELATED LINKS - diff --git a/src/Azs.ContainerRegistry.Admin/docs/Set-AzsContainerRegistryConfiguration.md b/src/Azs.ContainerRegistry.Admin/docs/Set-AzsContainerRegistryConfiguration.md index 64a624e8..fc00a4c3 100644 --- a/src/Azs.ContainerRegistry.Admin/docs/Set-AzsContainerRegistryConfiguration.md +++ b/src/Azs.ContainerRegistry.Admin/docs/Set-AzsContainerRegistryConfiguration.md @@ -14,16 +14,15 @@ Configure container registry overall configuration properties. ### PutExpanded (Default) ``` -Set-AzsContainerRegistryConfiguration -ConfigurationName [-Location ] - [-SubscriptionId ] [-MaximumCapacityInGiB ] [-DefaultProfile ] [-Confirm] [-WhatIf] - [] +Set-AzsContainerRegistryConfiguration -MaximumCapacityInGiB [-Location ] + [-SubscriptionId ] [-DefaultProfile ] [-Confirm] [-WhatIf] [] ``` ### Put ``` -Set-AzsContainerRegistryConfiguration -ConfigurationName - -ConfigurationObject [-Location ] [-SubscriptionId ] - [-DefaultProfile ] [-Confirm] [-WhatIf] [] +Set-AzsContainerRegistryConfiguration -ConfigurationObject + [-Location ] [-SubscriptionId ] [-DefaultProfile ] [-Confirm] [-WhatIf] + [] ``` ## DESCRIPTION @@ -33,7 +32,7 @@ Configure container registry overall configuration properties. ### Example 1: Set Azs ContainerRegistry Configuration ```powershell -PS C:\> Set-AzsContainerRegistryConfiguration -MaximumCapacityInGib 30 -ConfigurationName default | ConvertTo-Json +PS C:\> Set-AzsContainerRegistryConfiguration -MaximumCapacityInGib 30 | ConvertTo-Json { "Id": "/subscriptions/7e41090c-4aa7-40bc-856a-a993f8fbd215/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations/Default", @@ -47,21 +46,6 @@ Configure container registry overall configuration properties. ## PARAMETERS -### -ConfigurationName -The name of the configuration. - -```yaml -Type: System.String -Parameter Sets: (All) -Aliases: - -Required: True -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - ### -ConfigurationObject Container registry configuration property. To construct, see NOTES section for CONFIGURATIONOBJECT properties and create a hash table. @@ -116,7 +100,7 @@ Type: System.Int32 Parameter Sets: PutExpanded Aliases: -Required: False +Required: True Position: Named Default value: None Accept pipeline input: False @@ -190,7 +174,7 @@ To create the parameters described below, construct a hash table containing the CONFIGURATIONOBJECT : Container registry configuration property. - - `[MaximumCapacityInGiB ]`: Total storage capacity (GiB) which can used by the registry. + - `MaximumCapacityInGiB `: Total storage capacity (GiB) which can used by the registry. ## RELATED LINKS diff --git a/src/Azs.ContainerRegistry.Admin/docs/Start-AzsContainerRegistrySetup.md b/src/Azs.ContainerRegistry.Admin/docs/Start-AzsContainerRegistrySetup.md index ff12d24c..1b7c872c 100644 --- a/src/Azs.ContainerRegistry.Admin/docs/Start-AzsContainerRegistrySetup.md +++ b/src/Azs.ContainerRegistry.Admin/docs/Start-AzsContainerRegistrySetup.md @@ -14,8 +14,9 @@ Invokes container registry certificate uploading and service deployment. ### StartExpanded (Default) ``` -Start-AzsContainerRegistrySetup [-Location ] [-SubscriptionId ] [-Password ] - [-SslCertInputFile ] [-DefaultProfile ] [-Confirm] [-WhatIf] [] +Start-AzsContainerRegistrySetup [-Location ] [-SubscriptionId ] + [-CertificateInputFile ] [-Password ] [-DefaultProfile ] [-Confirm] [-WhatIf] + [] ``` ### Start @@ -33,8 +34,9 @@ Start-AzsContainerRegistrySetup -InputObject ### StartViaIdentityExpanded ``` -Start-AzsContainerRegistrySetup -InputObject [-Password ] - [-SslCertInputFile ] [-DefaultProfile ] [-Confirm] [-WhatIf] [] +Start-AzsContainerRegistrySetup -InputObject + [-CertificateInputFile ] [-Password ] [-DefaultProfile ] [-Confirm] [-WhatIf] + [] ``` ## DESCRIPTION @@ -44,7 +46,7 @@ Invokes container registry certificate uploading and service deployment. ### Example 1: Start Azs ContainerRegistry Setup ```powershell -PS C:\> Start-AzsContainerRegistrySetup -Password $password -SslCertInputFile $pfx_cert_path | ConvertTo-Json +PS C:\> Start-AzsContainerRegistrySetup -Password $password -CertificateInputFile $pfx_cert_path | ConvertTo-Json { "Id": "/subscriptions/7e41090c-4aa7-40bc-856a-a993f8fbd215/providers/Microsoft.ContainerRegistry.Setup/locations/redmond/setup/value", @@ -58,11 +60,11 @@ Invokes container registry certificate uploading and service deployment. ### Example 2: Start Azs ContainerRegistry Setup when another instance of Setup is already started ```powershell -PS C:\> Start-AzsContainerRegistrySetup -Password $password -SslCertInputFile $pfx_cert_path | ConvertTo-Json +PS C:\> Start-AzsContainerRegistrySetup -Password $password -CertificateInputFile $pfx_cert_path | ConvertTo-Json Start-AzsContainerRegistrySetup : Container registry deployment is still running. It is not allowed to repeat deployment at this stage. At line:1 char:1 -+ Start-AzsContainerRegistrySetup -Password $password -SslCertInputFile ... ++ Start-AzsContainerRegistrySetup -Password $password -CertificateInputFile ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: ({ SubscriptionI...SetupProperty }:<>f__AnonymousType7`3) [Start-AzsContai...p_StartExpanded], Exception + FullyQualifiedErrorId : AcrDeploymentStillRunning,Microsoft.Azure.PowerShell.Cmdlets.ContainerRegistryAdmin.Cmdlets.StartAzsContainerRegistrySetup_StartExpanded @@ -72,6 +74,21 @@ Returns the error if another instance of Setup is already started. ## PARAMETERS +### -CertificateInputFile +Input File for Certificate (Ssl certificate in base64 format.) + +```yaml +Type: System.String +Parameter Sets: StartExpanded, StartViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -DefaultProfile The credentials, account, tenant, and subscription used for communication with Azure. @@ -133,21 +150,6 @@ Accept pipeline input: False Accept wildcard characters: False ``` -### -SslCertInputFile -Input File for SslCert (Ssl certificate in base64 format.) - -```yaml -Type: System.String -Parameter Sets: StartExpanded, StartViaIdentityExpanded -Aliases: - -Required: False -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - ### -StartSetupRequest Container registry setup properties. To construct, see NOTES section for STARTSETUPREQUEST properties and create a hash table. @@ -241,8 +243,8 @@ INPUTOBJECT : Identity Parameter - `[SubscriptionId ]`: The ID of the target subscription. STARTSETUPREQUEST : Container registry setup properties. - - `[Password ]`: Ssl certificate password. - - `[SslCertBase64 ]`: Ssl certificate in base64 format. + - `Password `: Ssl certificate password. + - `SslCertBase64 `: Ssl certificate in base64 format. ## RELATED LINKS diff --git a/src/Azs.ContainerRegistry.Admin/examples/Remove-AzsContainerRegistryConfiguration.md b/src/Azs.ContainerRegistry.Admin/examples/Remove-AzsContainerRegistryConfiguration.md deleted file mode 100644 index 86bb1fa0..00000000 --- a/src/Azs.ContainerRegistry.Admin/examples/Remove-AzsContainerRegistryConfiguration.md +++ /dev/null @@ -1,7 +0,0 @@ -### Example 1: Remove Azs ContainerRegistry Configuration -```powershell -PS C:\> Remove-AzsContainerRegistryConfiguration -ConfigurationName default - -``` - -Delete an existing container registry configuration. \ No newline at end of file diff --git a/src/Azs.ContainerRegistry.Admin/examples/Set-AzsContainerRegistryConfiguration.md b/src/Azs.ContainerRegistry.Admin/examples/Set-AzsContainerRegistryConfiguration.md index 4ffb68b4..ba435e9e 100644 --- a/src/Azs.ContainerRegistry.Admin/examples/Set-AzsContainerRegistryConfiguration.md +++ b/src/Azs.ContainerRegistry.Admin/examples/Set-AzsContainerRegistryConfiguration.md @@ -1,6 +1,6 @@ ### Example 1: Set Azs ContainerRegistry Configuration ```powershell -PS C:\> Set-AzsContainerRegistryConfiguration -MaximumCapacityInGib 30 -ConfigurationName default | ConvertTo-Json +PS C:\> Set-AzsContainerRegistryConfiguration -MaximumCapacityInGib 30 | ConvertTo-Json { "Id": "/subscriptions/7e41090c-4aa7-40bc-856a-a993f8fbd215/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations/Default", diff --git a/src/Azs.ContainerRegistry.Admin/examples/Start-AzsContainerRegistrySetup.md b/src/Azs.ContainerRegistry.Admin/examples/Start-AzsContainerRegistrySetup.md index 6e5cf40c..fe9cca7d 100644 --- a/src/Azs.ContainerRegistry.Admin/examples/Start-AzsContainerRegistrySetup.md +++ b/src/Azs.ContainerRegistry.Admin/examples/Start-AzsContainerRegistrySetup.md @@ -1,6 +1,6 @@ ### Example 1: Start Azs ContainerRegistry Setup ```powershell -PS C:\> Start-AzsContainerRegistrySetup -Password $password -SslCertInputFile $pfx_cert_path | ConvertTo-Json +PS C:\> Start-AzsContainerRegistrySetup -Password $password -CertificateInputFile $pfx_cert_path | ConvertTo-Json { "Id": "/subscriptions/7e41090c-4aa7-40bc-856a-a993f8fbd215/providers/Microsoft.ContainerRegistry.Setup/locations/redmond/setup/value", @@ -14,11 +14,11 @@ Invokes container registry certificate uploading and service deployment. ### Example 2: Start Azs ContainerRegistry Setup when another instance of Setup is already started ```powershell -PS C:\> Start-AzsContainerRegistrySetup -Password $password -SslCertInputFile $pfx_cert_path | ConvertTo-Json +PS C:\> Start-AzsContainerRegistrySetup -Password $password -CertificateInputFile $pfx_cert_path | ConvertTo-Json Start-AzsContainerRegistrySetup : Container registry deployment is still running. It is not allowed to repeat deployment at this stage. At line:1 char:1 -+ Start-AzsContainerRegistrySetup -Password $password -SslCertInputFile ... ++ Start-AzsContainerRegistrySetup -Password $password -CertificateInputFile ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: ({ SubscriptionI...SetupProperty }:<>f__AnonymousType7`3) [Start-AzsContai...p_StartExpanded], Exception + FullyQualifiedErrorId : AcrDeploymentStillRunning,Microsoft.Azure.PowerShell.Cmdlets.ContainerRegistryAdmin.Cmdlets.StartAzsContainerRegistrySetup_StartExpanded diff --git a/src/Azs.ContainerRegistry.Admin/readme.md b/src/Azs.ContainerRegistry.Admin/readme.md index 749479ca..f787a3e3 100644 --- a/src/Azs.ContainerRegistry.Admin/readme.md +++ b/src/Azs.ContainerRegistry.Admin/readme.md @@ -95,13 +95,40 @@ directive: set: default: script: '20' - + + # Rename cmdlet parameter name in ContainerRegistryConfiguration + - where: + subject: ContainerRegistryConfiguration + parameter-name: ConfigurationName + set: + parameter-name: Name + - where: + verb: Remove + subject: ContainerRegistryConfiguration + parameter-name: Name + hide: true + set: + default: + script: Write-Output "default" + - where: + verb: Set + subject: ContainerRegistryConfiguration + parameter-name: Name + hide: true + set: + default: + script: Write-Output "default" + - where: + verb: Remove + subject: ContainerRegistryConfiguration + hide: true + # Rename cmdlet parameter name in ContainerRegistrySetup - where: subject: ContainerRegistrySetup parameter-name: SslCertBase64 set: - parameter-name: SslCert + parameter-name: Certificate # Rename model property names - where: @@ -109,19 +136,28 @@ directive: property-name: NumberOfRegistry set: property-name: NumberOfRegistries - + # Hide the auto-generated New-AzsContainerRegistryQuota and expose it through customized one + # The customization makes the Quota parameters optional and add default values in case if parameter skiped - where: verb: New subject: Quota hide: true # Hide the auto-generated Set-AzsContainerRegistryQuota and expose it through customized one + # The customization makes the Quota parameters optional and add existed values in case if parameter skiped - where: verb: Set subject: Quota hide: true - + + # Hide the auto-generated Start-AzsContainerRegistrySetup and expose it through customized one + # The customization adds basic validation for PFX file + - where: + verb: Start + subject: ContainerRegistrySetup + hide: true + # Add release notes - from: Azs.ContainerRegistry.Admin.nuspec where: $ diff --git a/src/Azs.ContainerRegistry.Admin/test/Remove-AzsContainerRegistryConfiguration.Recording.json b/src/Azs.ContainerRegistry.Admin/test/Remove-AzsContainerRegistryConfiguration.Recording.json deleted file mode 100644 index 7efaed33..00000000 --- a/src/Azs.ContainerRegistry.Admin/test/Remove-AzsContainerRegistryConfiguration.Recording.json +++ /dev/null @@ -1,160 +0,0 @@ -{ - "Remove-AzsContainerRegistryConfiguration+[NoContext]+TestRemoveContainerRegistryConfiguration+$GET+https://management.azure.com/subscriptions/7e41090c-4aa7-40bc-856a-a993f8fbd215/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations?api-version=2019-11-01-preview+1": { - "Request": { - "Method": "GET", - "RequestUri": "https://adminmanagement.redmond.ext-n25r1308.masd.stbtest.microsoft.com/subscriptions/7e41090c-4aa7-40bc-856a-a993f8fbd215/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations?api-version=2019-11-01-preview", - "Content": null, - "isContentBase64": false, - "Headers": { - "x-ms-unique-id": [ "13" ], - "x-ms-client-request-id": [ "ca973158-44b9-4f74-9f7b-d3493ce4bd73" ], - "CommandName": [ "Get-AzsContainerRegistryConfiguration" ], - "FullCommandName": [ "Get-AzsContainerRegistryConfiguration_List" ], - "ParameterSetName": [ "__AllParameterSets" ], - "User-Agent": [ "AzurePowershell/Az4.0.0-preview" ], - "Authorization": [ "[Filtered]" ] - }, - "ContentHeaders": { - } - }, - "Response": { - "StatusCode": 200, - "Headers": { - "Cache-Control": [ "no-cache" ], - "Pragma": [ "no-cache" ], - "x-ms-request-id": [ "780b1234-e64b-4c6f-b69e-125d779e3e52" ], - "Server": [ "Microsoft-HTTPAPI/2.0" ], - "x-ms-ratelimit-remaining-subscription-reads": [ "14901" ], - "x-ms-correlation-request-id": [ "2ec702aa-52cf-49ba-8839-9d1608be7f0a" ], - "x-ms-routing-request-id": [ "REDMOND:20210819T181227Z:2ec702aa-52cf-49ba-8839-9d1608be7f0a" ], - "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "X-Content-Type-Options": [ "nosniff" ], - "Date": [ "Thu, 19 Aug 2021 18:12:27 GMT" ] - }, - "ContentHeaders": { - "Content-Length": [ "290" ], - "Content-Type": [ "application/json; charset=utf-8" ], - "Expires": [ "-1" ] - }, - "Content": "{\"value\":[{\"id\":\"/subscriptions/7e41090c-4aa7-40bc-856a-a993f8fbd215/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations/Default\",\"name\":\"redmond/Default\",\"type\":\"Microsoft.ContainerRegistry.Admin/locations/configurations\",\"properties\":{\"maximumCapacityInGiB\":0}}]}", - "isContentBase64": false - } - }, - "Remove-AzsContainerRegistryConfiguration+[NoContext]+TestRemoveContainerRegistryConfiguration+$DELETE+https://management.azure.com/subscriptions/7e41090c-4aa7-40bc-856a-a993f8fbd215/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations/default?api-version=2019-11-01-preview+2": { - "Request": { - "Method": "DELETE", - "RequestUri": "https://adminmanagement.redmond.ext-n25r1308.masd.stbtest.microsoft.com/subscriptions/7e41090c-4aa7-40bc-856a-a993f8fbd215/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations/default?api-version=2019-11-01-preview", - "Content": null, - "isContentBase64": false, - "Headers": { - "x-ms-unique-id": [ "14" ], - "x-ms-client-request-id": [ "22d61cee-7cb7-45be-af4f-55ac32c8bc22" ], - "CommandName": [ "Remove-AzsContainerRegistryConfiguration" ], - "FullCommandName": [ "Remove-AzsContainerRegistryConfiguration_Delete" ], - "ParameterSetName": [ "__AllParameterSets" ], - "User-Agent": [ "AzurePowershell/Az4.0.0-preview" ], - "Authorization": [ "[Filtered]" ] - }, - "ContentHeaders": { - } - }, - "Response": { - "StatusCode": 200, - "Headers": { - "Cache-Control": [ "no-cache" ], - "Pragma": [ "no-cache" ], - "x-ms-request-id": [ "0df61c64-6ae1-4e33-a6bb-7a8abe68af7f" ], - "Server": [ "Microsoft-HTTPAPI/2.0" ], - "x-ms-ratelimit-remaining-subscription-deletes": [ "14998" ], - "x-ms-correlation-request-id": [ "77cda7ef-3503-4012-a9c2-bca3a1def352" ], - "x-ms-routing-request-id": [ "REDMOND:20210819T181229Z:77cda7ef-3503-4012-a9c2-bca3a1def352" ], - "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "X-Content-Type-Options": [ "nosniff" ], - "Date": [ "Thu, 19 Aug 2021 18:12:29 GMT" ] - }, - "ContentHeaders": { - "Expires": [ "-1" ], - "Content-Length": [ "0" ] - }, - "Content": null, - "isContentBase64": false - } - }, - "Remove-AzsContainerRegistryConfiguration+[NoContext]+TestRemoveContainerRegistryConfiguration+$GET+https://management.azure.com/subscriptions/7e41090c-4aa7-40bc-856a-a993f8fbd215/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations?api-version=2019-11-01-preview+3": { - "Request": { - "Method": "GET", - "RequestUri": "https://adminmanagement.redmond.ext-n25r1308.masd.stbtest.microsoft.com/subscriptions/7e41090c-4aa7-40bc-856a-a993f8fbd215/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations?api-version=2019-11-01-preview", - "Content": null, - "isContentBase64": false, - "Headers": { - "x-ms-unique-id": [ "15" ], - "x-ms-client-request-id": [ "e7f13bfb-34f0-46db-b66f-ad04cc651b8c" ], - "CommandName": [ "Get-AzsContainerRegistryConfiguration" ], - "FullCommandName": [ "Get-AzsContainerRegistryConfiguration_List" ], - "ParameterSetName": [ "__AllParameterSets" ], - "User-Agent": [ "AzurePowershell/Az4.0.0-preview" ], - "Authorization": [ "[Filtered]" ] - }, - "ContentHeaders": { - } - }, - "Response": { - "StatusCode": 200, - "Headers": { - "Cache-Control": [ "no-cache" ], - "Pragma": [ "no-cache" ], - "x-ms-request-id": [ "f56af45b-a923-4fd0-b8b7-bc35b7e97c40" ], - "Server": [ "Microsoft-HTTPAPI/2.0" ], - "x-ms-ratelimit-remaining-subscription-reads": [ "14898" ], - "x-ms-correlation-request-id": [ "ea9fcffd-5d53-4d90-973c-768716f2b188" ], - "x-ms-routing-request-id": [ "REDMOND:20210819T181230Z:ea9fcffd-5d53-4d90-973c-768716f2b188" ], - "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "X-Content-Type-Options": [ "nosniff" ], - "Date": [ "Thu, 19 Aug 2021 18:12:30 GMT" ] - }, - "ContentHeaders": { - "Content-Length": [ "290" ], - "Content-Type": [ "application/json; charset=utf-8" ], - "Expires": [ "-1" ] - }, - "Content": "{\"value\":[{\"id\":\"/subscriptions/7e41090c-4aa7-40bc-856a-a993f8fbd215/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations/Default\",\"name\":\"redmond/Default\",\"type\":\"Microsoft.ContainerRegistry.Admin/locations/configurations\",\"properties\":{\"maximumCapacityInGiB\":0}}]}", - "isContentBase64": false - } - }, - "Remove-AzsContainerRegistryConfiguration+[NoContext]+TestRemoveContainerRegistryConfiguration+$PUT+https://management.azure.com/subscriptions/7e41090c-4aa7-40bc-856a-a993f8fbd215/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations/default?api-version=2019-11-01-preview+4": { - "Request": { - "Method": "PUT", - "RequestUri": "https://management.azure.com/subscriptions/7e41090c-4aa7-40bc-856a-a993f8fbd215/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations/default?api-version=2019-11-01-preview", - "Content": "{\r\n \"properties\": {\r\n \"maximumCapacityInGiB\": 0\r\n }\r\n}", - "isContentBase64": false, - "Headers": { - }, - "ContentHeaders": { - "Content-Type": [ "application/json" ], - "Content-Length": [ "59" ] - } - }, - "Response": { - "StatusCode": 200, - "Headers": { - "Cache-Control": [ "no-cache" ], - "Pragma": [ "no-cache" ], - "x-ms-request-id": [ "26bb3969-7b78-4f5b-906f-4df70648cc85" ], - "Server": [ "Microsoft-HTTPAPI/2.0" ], - "x-ms-ratelimit-remaining-subscription-writes": [ "1198" ], - "x-ms-correlation-request-id": [ "5fcf1ad7-d9f4-498e-9b51-d3527a690004" ], - "x-ms-routing-request-id": [ "REDMOND:20210819T181232Z:5fcf1ad7-d9f4-498e-9b51-d3527a690004" ], - "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "X-Content-Type-Options": [ "nosniff" ], - "Date": [ "Thu, 19 Aug 2021 18:12:32 GMT" ] - }, - "ContentHeaders": { - "Content-Length": [ "278" ], - "Content-Type": [ "application/json; charset=utf-8" ], - "Expires": [ "-1" ] - }, - "Content": "{\"id\":\"/subscriptions/7e41090c-4aa7-40bc-856a-a993f8fbd215/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations/Default\",\"name\":\"redmond/Default\",\"type\":\"Microsoft.ContainerRegistry.Admin/locations/configurations\",\"properties\":{\"maximumCapacityInGiB\":0}}", - "isContentBase64": false - } - } -} \ No newline at end of file diff --git a/src/Azs.ContainerRegistry.Admin/test/Remove-AzsContainerRegistryConfiguration.Tests.ps1 b/src/Azs.ContainerRegistry.Admin/test/Remove-AzsContainerRegistryConfiguration.Tests.ps1 deleted file mode 100644 index 553780be..00000000 --- a/src/Azs.ContainerRegistry.Admin/test/Remove-AzsContainerRegistryConfiguration.Tests.ps1 +++ /dev/null @@ -1,26 +0,0 @@ -$loadEnvPath = Join-Path $PSScriptRoot 'loadEnvJson.ps1' -if (-Not (Test-Path -Path $loadEnvPath)) { - $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnvJson.ps1' -} -. ($loadEnvPath) -$TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzsContainerRegistryConfiguration.Recording.json' -$currentPath = $PSScriptRoot -while(-not $mockingPath) { - $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File - $currentPath = Split-Path -Path $currentPath -Parent -} -. ($mockingPath | Select-Object -First 1).FullName - -Describe 'Remove-AzsContainerRegistryConfiguration' { - It "TestRemoveContainerRegistryConfiguration" -Skip:$('TestRemoveContainerRegistryConfiguration' -in $global:SkippedTests) { - $global:TestName = 'TestRemoveContainerRegistryConfiguration' - - $maxCapacityInGib = (Get-AzsContainerRegistryConfiguration ).MaximumCapacityInGib - $targetCapacityInGib = 0 - Remove-AzsContainerRegistryConfiguration -ConfigurationName default - $result = Get-AzsContainerRegistryConfiguration - $result | Should Not Be $null - $result.MaximumCapacityInGib | Should Be $targetCapacityInGib - Set-AzsContainerRegistryConfiguration -MaximumCapacityInGib $maxCapacityInGib -ConfigurationName default - } -} diff --git a/src/Azs.ContainerRegistry.Admin/test/Set-AzsContainerRegistryConfiguration.Tests.ps1 b/src/Azs.ContainerRegistry.Admin/test/Set-AzsContainerRegistryConfiguration.Tests.ps1 index 42aeb4ff..6fdea608 100644 --- a/src/Azs.ContainerRegistry.Admin/test/Set-AzsContainerRegistryConfiguration.Tests.ps1 +++ b/src/Azs.ContainerRegistry.Admin/test/Set-AzsContainerRegistryConfiguration.Tests.ps1 @@ -17,9 +17,9 @@ Describe 'Set-AzsContainerRegistryConfiguration' { $maxCapacityInGib = (Get-AzsContainerRegistryConfiguration ).MaximumCapacityInGib $targetCapacityInGib = $originalDays + 1 - $result = Set-AzsContainerRegistryConfiguration -MaximumCapacityInGib $targetCapacityInGib -ConfigurationName default + $result = Set-AzsContainerRegistryConfiguration -MaximumCapacityInGib $targetCapacityInGib $result | Should Not Be $null $result.MaximumCapacityInGib | Should Be $targetCapacityInGib - Set-AzsContainerRegistryConfiguration -MaximumCapacityInGib $maxCapacityInGib -ConfigurationName default + Set-AzsContainerRegistryConfiguration -MaximumCapacityInGib $maxCapacityInGib } } diff --git a/src/Azs.ContainerRegistry.Admin/test/Start-AzsContainerRegistrySetup.Tests.ps1 b/src/Azs.ContainerRegistry.Admin/test/Start-AzsContainerRegistrySetup.Tests.ps1 index 7b536228..59c9221c 100644 --- a/src/Azs.ContainerRegistry.Admin/test/Start-AzsContainerRegistrySetup.Tests.ps1 +++ b/src/Azs.ContainerRegistry.Admin/test/Start-AzsContainerRegistrySetup.Tests.ps1 @@ -13,7 +13,7 @@ while(-not $mockingPath) { Describe 'Start-AzsContainerRegistrySetup' { $password = ConvertTo-SecureString "password" -AsPlainText -Force - $pfx_cert_path = Join-Path $PSScriptRoot 'SSL.pem' + $pfx_cert_path = Join-Path $PSScriptRoot 'SSL.pfx' - { Start-AzsContainerRegistrySetup -Password $password -SslCertInputFile $pfx_cert_path } | Should Not Throw + { Start-AzsContainerRegistrySetup -Password $password -CertificateInputFile $pfx_cert_path } | Should Not Throw } diff --git a/src/Azs.ContainerRegistry.Admin/test/ssl.pem b/src/Azs.ContainerRegistry.Admin/test/ssl.pfx similarity index 100% rename from src/Azs.ContainerRegistry.Admin/test/ssl.pem rename to src/Azs.ContainerRegistry.Admin/test/ssl.pfx