Example #1
0
        /// <summary>
        /// Method to delete resource guard proxy.
        /// </summary>
        /// <param name="vaultName"></param>
        /// <param name="resourceGroupName"></param>
        /// <param name="resourceGuardProxyName"></param>
        /// <param name="auxiliaryAccessToken"></param>
        /// <returns></returns>
        public RestAzureNS.AzureOperationResponse DeleteResourceGuardMapping(string vaultName, string resourceGroupName, string resourceGuardProxyName, string auxiliaryAccessToken)
        {
            Dictionary <string, List <string> > customHeaders = new Dictionary <string, List <string> >();
            string operationRequest = null;

            if (auxiliaryAccessToken != null && auxiliaryAccessToken != "")
            {
                customHeaders.Add("x-ms-authorization-auxiliary", new List <string> {
                    "Bearer " + auxiliaryAccessToken
                });
            }

            // unlock
            UnlockDeleteRequest unlockDeleteRequest = new UnlockDeleteRequest();

            List <ResourceGuardProxyBaseResource> resourceGuardMapping = ListResourceGuardMapping(vaultName, resourceGroupName);

            if (resourceGuardMapping != null && resourceGuardMapping.Count != 0)
            {
                foreach (ResourceGuardOperationDetail operationDetail in resourceGuardMapping[0].Properties.ResourceGuardOperationDetails)
                {
                    if (operationDetail.VaultCriticalOperation == "Microsoft.RecoveryServices/vaults/backupResourceGuardProxies/delete")
                    {
                        operationRequest = operationDetail.DefaultResourceRequest;
                    }
                }

                if (operationRequest != null)
                {
                    unlockDeleteRequest.ResourceGuardOperationRequests = new List <string>();
                    unlockDeleteRequest.ResourceGuardOperationRequests.Add(operationRequest);

                    UnlockDeleteResponse unlockDeleteResponse = BmsAdapter.Client.ResourceGuardProxy.UnlockDeleteWithHttpMessagesAsync(vaultName ?? BmsAdapter.GetResourceName(), resourceGroupName ?? BmsAdapter.GetResourceGroupName(), resourceGuardProxyName, unlockDeleteRequest, customHeaders).Result.Body;
                }
            }
            else if (auxiliaryAccessToken != null && auxiliaryAccessToken != "")
            {
                throw new ArgumentException(String.Format(Resources.ResourceGuardMappingNotFound));
            }

            return(BmsAdapter.Client.ResourceGuardProxy.DeleteWithHttpMessagesAsync(vaultName ?? BmsAdapter.GetResourceName(), resourceGroupName ?? BmsAdapter.GetResourceGroupName(), resourceGuardProxyName).Result);
        }
Example #2
0
        /// <summary>
        /// Deletes a protected item
        /// </summary>
        /// <param name="containerName">Name of the container which this item belongs to</param>
        /// <param name="protectedItemName">Name of the item</param>
        /// <param name="vaultName"></param>
        /// <param name="resourceGroupName"></param>
        /// <param name="auxiliaryAccessToken"></param>
        /// <param name="protectedItemUri"></param>
        /// <returns>Job created in the service for this operation</returns>
        public RestAzureNS.AzureOperationResponse DeleteProtectedItem(
            string containerName,
            string protectedItemName,
            string vaultName            = null,
            string resourceGroupName    = null,
            string auxiliaryAccessToken = null,
            string protectedItemUri     = null)
        {
            Dictionary <string, List <string> > customHeaders = new Dictionary <string, List <string> >();

            if (auxiliaryAccessToken != null && auxiliaryAccessToken != "")
            {
                customHeaders.Add("x-ms-authorization-auxiliary", new List <string> {
                    "Bearer " + auxiliaryAccessToken
                });
            }

            string operationRequest = null;

            // unlock
            UnlockDeleteRequest unlockDeleteRequest = new UnlockDeleteRequest();

            List <ResourceGuardProxyBaseResource> resourceGuardMapping = ListResourceGuardMapping(vaultName, resourceGroupName);

            if (resourceGuardMapping != null && resourceGuardMapping.Count != 0)
            {
                foreach (ResourceGuardOperationDetail operationDetail in resourceGuardMapping[0].Properties.ResourceGuardOperationDetails)
                {
                    if (operationDetail.VaultCriticalOperation == "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems/delete")
                    {
                        operationRequest = operationDetail.DefaultResourceRequest;
                    }
                }

                if (operationRequest != null)
                {
                    unlockDeleteRequest.ResourceGuardOperationRequests = new List <string>();
                    unlockDeleteRequest.ResourceGuardOperationRequests.Add(operationRequest);

                    if (protectedItemUri == null)
                    {
                        throw new ArgumentException(String.Format(Resources.ProtectedItemURICantBeNull));
                    }

                    unlockDeleteRequest.ResourceToBeDeleted = protectedItemUri;
                    UnlockDeleteResponse unlockDeleteResponse = BmsAdapter.Client.ResourceGuardProxy.UnlockDeleteWithHttpMessagesAsync(vaultName ?? BmsAdapter.GetResourceName(), resourceGroupName ?? BmsAdapter.GetResourceGroupName(), resourceGuardMapping[0].Name, unlockDeleteRequest, customHeaders).Result.Body;
                }
                else if (auxiliaryAccessToken != null && auxiliaryAccessToken != "")
                {
                    throw new ArgumentException(String.Format(Resources.UnexpectedParameterToken, "Delete protection with DeleteBackupData"));
                }
            }
            else if (auxiliaryAccessToken != null && auxiliaryAccessToken != "")
            {
                throw new ArgumentException(String.Format(Resources.UnexpectedParameterToken, "Delete protection with DeleteBackupData"));
            }

            return(BmsAdapter.Client.ProtectedItems.DeleteWithHttpMessagesAsync(
                       vaultName ?? BmsAdapter.GetResourceName(),
                       resourceGroupName ?? BmsAdapter.GetResourceGroupName(),
                       AzureFabricName,
                       containerName,
                       protectedItemName,
                       cancellationToken: BmsAdapter.CmdletCancellationToken).Result);
        }