diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletHelpMessage.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletHelpMessage.cs index 31fa28afd861..02d91e9df623 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletHelpMessage.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletHelpMessage.cs @@ -31,5 +31,6 @@ internal static class AzureBackupCmdletHelpMessage public const string ProtectionStatus = "Protection Status of the azure backup item."; public const string AzureBackUpItem = "Azure BackUp Item."; public const string RecoveryPointId = "Recovery Point Id."; + public const string StorageType = "The vault back-end storage type."; } } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/VaultCredentials/AcsNamespace.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Vault/GetAzureBackupVaultCredentials/AcsNamespace.cs similarity index 100% rename from src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/VaultCredentials/AcsNamespace.cs rename to src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Vault/GetAzureBackupVaultCredentials/AcsNamespace.cs diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/VaultCredentials/CertUtils.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Vault/GetAzureBackupVaultCredentials/CertUtils.cs similarity index 100% rename from src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/VaultCredentials/CertUtils.cs rename to src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Vault/GetAzureBackupVaultCredentials/CertUtils.cs diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/VaultCredentials/Constants.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Vault/GetAzureBackupVaultCredentials/Constants.cs similarity index 100% rename from src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/VaultCredentials/Constants.cs rename to src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Vault/GetAzureBackupVaultCredentials/Constants.cs diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/VaultCredentials/GetAzureBackupVaultCredentials.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Vault/GetAzureBackupVaultCredentials/GetAzureBackupVaultCredentials.cs similarity index 99% rename from src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/VaultCredentials/GetAzureBackupVaultCredentials.cs rename to src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Vault/GetAzureBackupVaultCredentials/GetAzureBackupVaultCredentials.cs index 70f4908cec92..4cd996cc30b7 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/VaultCredentials/GetAzureBackupVaultCredentials.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Vault/GetAzureBackupVaultCredentials/GetAzureBackupVaultCredentials.cs @@ -131,7 +131,7 @@ private AcsNamespace UploadCert(X509Certificate2 cert, string subscriptionId, st string response = string.Empty; VaultCredUploadCertResponse vaultCredUploadCertResponse = - AzureBackupClient.VaultCredentials.UploadCertificateAsync( + AzureBackupClient.Vault.UploadCertificateAsync( "IdMgmtInternalCert", vaultCredUploadCertRequest, GetCustomRequestHeaders(), diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/VaultCredentials/VaultCredentials.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Vault/GetAzureBackupVaultCredentials/VaultCredentials.cs similarity index 100% rename from src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/VaultCredentials/VaultCredentials.cs rename to src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Vault/GetAzureBackupVaultCredentials/VaultCredentials.cs diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Vault/SetAzureBackupVaultStorageType.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Vault/SetAzureBackupVaultStorageType.cs new file mode 100644 index 000000000000..25d3eb0ecb15 --- /dev/null +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Vault/SetAzureBackupVaultStorageType.cs @@ -0,0 +1,55 @@ +// ---------------------------------------------------------------------------------- +// +// 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. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Management.BackupServices.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Management.Automation; +using System.Text; +using System.Threading.Tasks; + +namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets +{ + [Cmdlet(VerbsCommon.Set, "AzureBackupVaultStorageType")] + public class SetAzureBackupVaultStorageType : AzureBackupVaultCmdletBase + { + [Parameter(Position = 2, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.StorageType)] + [ValidateNotNullOrEmpty] + public AzureBackupVaultStorageType Type { get; set; } + + public override void ExecuteCmdlet() + { + base.ExecuteCmdlet(); + + ExecutionBlock(() => + { + if (Type == 0) + { + throw new ArgumentException("Please provide a vaild storage type."); + } + + UpdateVaultStorageTypeRequest updateVaultStorageTypeRequest = new UpdateVaultStorageTypeRequest() + { + StorageTypeProperties = new StorageTypeProperties() + { + StorageModelType = Type.ToString(), + }, + }; + + AzureBackupClient.Vault.UpdateStorageTypeAsync(updateVaultStorageTypeRequest, GetCustomRequestHeaders(), CmdletCancellationToken); + }); + } + } +} diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj index 27938f9f65a5..361f87efb646 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj @@ -137,11 +137,12 @@ - - - - - + + + + + + diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupEnums.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupEnums.cs index 718b5d43eef0..54eeb2133599 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupEnums.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupEnums.cs @@ -23,14 +23,12 @@ namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets { public enum AzureBackupContainerTypeInput { - All, - AzureVirtualMachine, + AzureVirtualMachine = 1, } public enum AzureBackupContainerStatusInput { - All, - Registering, + Registering = 1, Registered, } @@ -88,4 +86,10 @@ public enum AzureBackupOperationErrorCode BMSUserErrorObjectLocked = 390026, DiscoveryInProgress = 410002, } + + public enum AzureBackupVaultStorageType + { + GeoRedundant = 1, + LocallyRedundant, + } }