private void ModelizeDatabaseAuditPolicy(Management.Sql.Models.ExtendedDatabaseBlobAuditingPolicy policy, DatabaseBlobAuditingSettingsModel dbPolicyModel) { dbPolicyModel.AuditState = ModelizeAuditState(policy.State.ToString()); ModelizeStorageInfo(dbPolicyModel, policy.StorageEndpoint, policy.IsStorageSecondaryKeyInUse, policy.StorageAccountSubscriptionId); ModelizeAuditActionGroups(dbPolicyModel, policy.AuditActionsAndGroups); ModelizeAuditActions(dbPolicyModel, policy.AuditActionsAndGroups); ModelizeRetentionInfo(dbPolicyModel, policy.RetentionDays); dbPolicyModel.PredicateExpression = policy.PredicateExpression; }
/// <summary> /// Transforms the given model to its endpoints acceptable structure and sends it to the endpoint /// </summary> public void SetDatabaseBlobAuditingPolicyV2(DatabaseBlobAuditingSettingsModel model, string storageEndpointSuffix) { if (!IsDatabaseInServiceTierForPolicy(model.ResourceGroupName, model.ServerName, model.DatabaseName)) { throw new Exception(Properties.Resources.DatabaseNotInServiceTierForAuditingPolicy); } if (string.IsNullOrEmpty(model.PredicateExpression)) { var policy = new Management.Sql.Models.DatabaseBlobAuditingPolicy(); PolicizeBlobAuditingModel(model, storageEndpointSuffix, policy); Communicator.SetDatabaseAuditingPolicy(model.ResourceGroupName, model.ServerName, model.DatabaseName, policy); } else { var policy = new Management.Sql.Models.ExtendedDatabaseBlobAuditingPolicy { PredicateExpression = model.PredicateExpression }; PolicizeBlobAuditingModel(model, storageEndpointSuffix, policy); Communicator.SetExtendedDatabaseAuditingPolicy(model.ResourceGroupName, model.ServerName, model.DatabaseName, policy); } }