internal IEnumerable <AzureRmSqlManagedInstanceKeyVaultKeyModel> ListAzureRmSqlManagedInstanceKeyVaultKeys(string resourceGroupName, string managedInstanceName)
 {
     return(Communicator.ListAzureRmSqlManagedInstanceKeyVaultKeys(
                resourceGroupName: resourceGroupName,
                managedInstanceName: managedInstanceName)
            .Select(b => AzureRmSqlManagedInstanceKeyVaultKeyModel.FromManagedInstanceKey(b, resourceGroupName: resourceGroupName, managedInstanceName: managedInstanceName)));
 }
        /// <summary>
        /// Get the entities from the service
        /// </summary>
        /// <returns>The list of entities</returns>
        protected override IEnumerable <AzureRmSqlManagedInstanceKeyVaultKeyModel> GetEntity()
        {
            IEnumerable <AzureRmSqlManagedInstanceKeyVaultKeyModel> results;

            // If no KeyId is supplied, then list all the server key vault keys
            //
            if (!this.MyInvocation.BoundParameters.ContainsKey("KeyId"))
            {
                results = ModelAdapter.ListAzureRmSqlManagedInstanceKeyVaultKeys(this.ResourceGroupName, this.InstanceName);
            }
            else
            {
                IList <AzureRmSqlManagedInstanceKeyVaultKeyModel> resultList = new List <AzureRmSqlManagedInstanceKeyVaultKeyModel>();

                AzureRmSqlManagedInstanceKeyVaultKeyModel azureRmSqlManagedInstanceKeyVaultKeyModel = new AzureRmSqlManagedInstanceKeyVaultKeyModel(
                    resourceGroupName: this.ResourceGroupName,
                    managedInstanceName: this.InstanceName,
                    keyId: this.KeyId);

                resultList.Add(ModelAdapter.GetAzureRmSqlManagedInstanceKeyVaultKey(azureRmSqlManagedInstanceKeyVaultKeyModel));

                results = resultList;
            }

            return(results);
        }
 internal void RemoveAzureRmSqlManagedInstanceKeyVaultKey(AzureRmSqlManagedInstanceKeyVaultKeyModel azureRmSqlManagedInstanceKeyVaultKeyModel)
 {
     Communicator.RemoveAzureRmSqlManagedInstanceKeyVaultKey(
         resourceGroupName: azureRmSqlManagedInstanceKeyVaultKeyModel.ResourceGroupName,
         managedInstanceName: azureRmSqlManagedInstanceKeyVaultKeyModel.ManagedInstanceName,
         keyName: azureRmSqlManagedInstanceKeyVaultKeyModel.ManagedInstanceKeyName);
 }
        /// <summary>
        /// Sends the Firewall Rule update request to the service
        /// </summary>
        /// <param name="entity">The update parameters</param>
        /// <returns>The response object from the service</returns>
        protected override IEnumerable <AzureRmSqlManagedInstanceKeyVaultKeyModel> PersistChanges(IEnumerable <AzureRmSqlManagedInstanceKeyVaultKeyModel> entity)
        {
            AzureRmSqlManagedInstanceKeyVaultKeyModel azureRmSqlManagedInstanceKeyVaultKeyModel = new AzureRmSqlManagedInstanceKeyVaultKeyModel(
                resourceGroupName: this.ResourceGroupName,
                managedInstanceName: this.InstanceName,
                keyId: this.KeyId);

            ModelAdapter.RemoveAzureRmSqlManagedInstanceKeyVaultKey(azureRmSqlManagedInstanceKeyVaultKeyModel);
            return(entity);
        }
        /// <summary>
        /// Get the entities from the service
        /// </summary>
        /// <returns>The list of entities</returns>
        protected override IEnumerable <AzureRmSqlManagedInstanceKeyVaultKeyModel> GetEntity()
        {
            AzureRmSqlManagedInstanceKeyVaultKeyModel azureRmSqlManagedInstanceKeyVaultKeyModel = new AzureRmSqlManagedInstanceKeyVaultKeyModel(
                resourceGroupName: this.ResourceGroupName,
                managedInstanceName: this.InstanceName,
                keyId: this.KeyId);

            return(new List <AzureRmSqlManagedInstanceKeyVaultKeyModel>()
            {
                ModelAdapter.GetAzureRmSqlManagedInstanceKeyVaultKey(azureRmSqlManagedInstanceKeyVaultKeyModel)
            });
        }
        internal AzureRmSqlManagedInstanceKeyVaultKeyModel GetAzureRmSqlManagedInstanceKeyVaultKey(AzureRmSqlManagedInstanceKeyVaultKeyModel azureRmSqlManagedInstanceKeyVaultKeyModel)
        {
            string resourceGroupName   = azureRmSqlManagedInstanceKeyVaultKeyModel.ResourceGroupName;
            string managedInstanceName = azureRmSqlManagedInstanceKeyVaultKeyModel.ManagedInstanceName;

            ManagedInstanceKey response = Communicator.GetAzureRmSqlManagedInstanceKeyVaultKey(
                resourceGroupName: resourceGroupName,
                managedInstanceName: managedInstanceName,
                keyName: azureRmSqlManagedInstanceKeyVaultKeyModel.ManagedInstanceKeyName);

            return(AzureRmSqlManagedInstanceKeyVaultKeyModel.FromManagedInstanceKey(
                       managedInstanceKey: response,
                       resourceGroupName: resourceGroupName,
                       managedInstanceName: managedInstanceName));
        }
        internal AzureRmSqlManagedInstanceKeyVaultKeyModel AddAzureRmSqlManagedInstanceKeyVaultKey(AzureRmSqlManagedInstanceKeyVaultKeyModel azureRmSqlManagedInstanceKeyVaultKeyModel)
        {
            ManagedInstanceKey managedInstanceKey = new ManagedInstanceKey()
            {
                ServerKeyType = ServerKeyType.AzureKeyVault,
                Uri           = azureRmSqlManagedInstanceKeyVaultKeyModel.KeyId
            };

            string resourceGroupName   = azureRmSqlManagedInstanceKeyVaultKeyModel.ResourceGroupName;
            string managedInstanceName = azureRmSqlManagedInstanceKeyVaultKeyModel.ManagedInstanceName;

            ManagedInstanceKey response = Communicator.AddAzureRmSqlManagedInstanceKeyVaultKey(
                resourceGroupName: resourceGroupName,
                managedInstanceName: managedInstanceName,
                keyName: azureRmSqlManagedInstanceKeyVaultKeyModel.ManagedInstanceKeyName,
                managedInstanceKeyParameters: managedInstanceKey);

            return(AzureRmSqlManagedInstanceKeyVaultKeyModel.FromManagedInstanceKey(
                       managedInstanceKey: response,
                       resourceGroupName: resourceGroupName,
                       managedInstanceName: managedInstanceName));
        }