/// <summary>
        /// Transforms the given model to its endpoints acceptable structure and sends it to the endpoint
        /// </summary>
        public void SetVulnerabilityAssessmentRuleBaseline(VulnerabilityAssessmentRuleBaselineModel model, string serverName, string databaseName, ApplyToType applyToType)
        {
            var ruleBaseline = new DatabaseVulnerabilityAssessmentRuleBaseline()
            {
                BaselineResults = new List <DatabaseVulnerabilityAssessmentRuleBaselineItem>()
            };

            foreach (var baselineResult in model.BaselineResult)
            {
                var ruleBaselineItem = new DatabaseVulnerabilityAssessmentRuleBaselineItem()
                {
                    Result = baselineResult.Result
                };

                ruleBaseline.BaselineResults.Add(ruleBaselineItem);
            }

            if (applyToType == ApplyToType.Database)
            {
                VulnerabilityAssessmentCommunicator.SetDatabaseVulnerabilityAssessmentRuleBaseline(model.ResourceGroupName, serverName,
                                                                                                   databaseName, model.RuleId, model.RuleAppliesToMaster, ruleBaseline);
            }
            else
            {
                VulnerabilityAssessmentCommunicator.SetManagedDatabaseVulnerabilityAssessmentRuleBaseline(model.ResourceGroupName, serverName,
                                                                                                          databaseName, model.RuleId, model.RuleAppliesToMaster, ruleBaseline);
            }
        }
        /// <summary>
        /// Provides a database Vulnerability Assessment Rule Baseline model for the given database
        /// </summary>
        public VulnerabilityAssessmentRuleBaselineModel GetVulnerabilityAssessmentRuleBaseline(string resourceGroup, string serverName,
                                                                                               string databaseName, string ruleId, bool ruleAppliesToMaster, ApplyToType applyToType)
        {
            var vulnerabilityAssessmentRuleBaseline = (applyToType == ApplyToType.Database)
                ? VulnerabilityAssessmentCommunicator.GetDatabaseVulnerabilityAssessmentRuleBaseline(resourceGroup, serverName, databaseName, ruleId, ruleAppliesToMaster)
                : VulnerabilityAssessmentCommunicator.GetManagedDatabaseVulnerabilityAssessmentRuleBaseline(resourceGroup, serverName, databaseName, ruleId, ruleAppliesToMaster);

            var ruleBaselineModel = new VulnerabilityAssessmentRuleBaselineModel()
            {
                ResourceGroupName   = resourceGroup,
                RuleId              = ruleId,
                RuleAppliesToMaster = ruleAppliesToMaster
            };

            ruleBaselineModel.BaselineResult = new List <VulnerabilityAssessmentRuleBaselineRowModel>();

            foreach (var baselineResult in vulnerabilityAssessmentRuleBaseline.BaselineResults)
            {
                var ruleBaselineItem = new VulnerabilityAssessmentRuleBaselineRowModel()
                {
                    Result = baselineResult.Result
                };

                ruleBaselineModel.BaselineResult.Add(ruleBaselineItem);
            }

            return(ruleBaselineModel);
        }
        public ManagedDatabaseVulnerabilityAssessmentRuleBaselineModel(VulnerabilityAssessmentRuleBaselineModel model, string instanceName, string databaseName)
        {
            ResourceGroupName   = model.ResourceGroupName;
            RuleId              = model.RuleId;
            RuleAppliesToMaster = model.RuleAppliesToMaster;
            BaselineResult      = model.BaselineResult;

            InstanceName = instanceName;
            DatabaseName = databaseName;
        }
        public SqlPoolVulnerabilityAssessmentRuleBaselineModel(VulnerabilityAssessmentRuleBaselineModel model, string workspaceName, string sqlPoolName)
        {
            ResourceGroupName   = model.ResourceGroupName;
            RuleId              = model.RuleId;
            RuleAppliesToMaster = model.RuleAppliesToMaster;
            BaselineResult      = model.BaselineResult;

            WorkspaceName = workspaceName;
            SqlPoolName   = sqlPoolName;
        }
        public DatabaseVulnerabilityAssessmentRuleBaselineModel(VulnerabilityAssessmentRuleBaselineModel model, string serverName, string databaseName)
        {
            ResourceGroupName   = model.ResourceGroupName;
            RuleId              = model.RuleId;
            RuleAppliesToMaster = model.RuleAppliesToMaster;
            BaselineResult      = model.BaselineResult;

            ServerName   = serverName;
            DatabaseName = databaseName;
        }
 /// <summary>
 /// Remove the Vulnerability Assessment Rule Baseline
 /// </summary>
 public void ClearVulnerabilityAssessmentRuleBaseline(VulnerabilityAssessmentRuleBaselineModel model, string serverName, string databaseName, ApplyToType applyToType)
 {
     if (applyToType == ApplyToType.Database)
     {
         VulnerabilityAssessmentCommunicator.ClearDatabaseVulnerabilityAssessmentRuleBaseline(model.ResourceGroupName, serverName, databaseName, model.RuleId, model.RuleAppliesToMaster);
     }
     else
     {
         VulnerabilityAssessmentCommunicator.ClearManagedDatabaseVulnerabilityAssessmentRuleBaseline(model.ResourceGroupName, serverName, databaseName, model.RuleId, model.RuleAppliesToMaster);
     }
 }
 /// <summary>
 /// Transforms the given model object to be an object that is written out
 /// </summary>
 /// <param name="model">The about to be written model object</param>
 /// <returns>The prepared object to be written out</returns>
 protected override object TransformModelToOutputObject(VulnerabilityAssessmentRuleBaselineModel model)
 {
     return(new ManagedDatabaseVulnerabilityAssessmentRuleBaselineModel(model, GetServerName(), GetDatabaseName()));
 }
        /// <summary>
        /// Updates the given model element with the cmdlet specific operation
        /// </summary>
        /// <param name="model">A model object</param>
        protected override VulnerabilityAssessmentRuleBaselineModel ApplyUserInputToModel(VulnerabilityAssessmentRuleBaselineModel model)
        {
            base.ApplyUserInputToModel(model);

            if (string.Equals(this.ParameterSetName, SetByInputObjectParameterSet, StringComparison.OrdinalIgnoreCase))
            {
                model.BaselineResult = InputObject.BaselineResult;
                model.RuleId         = InputObject.RuleId;
                return(model);
            }

            model.BaselineResult = new List <VulnerabilityAssessmentRuleBaselineRowModel>();
            foreach (var baselineResult in BaselineResult)
            {
                var ruleBaselineItem = new VulnerabilityAssessmentRuleBaselineRowModel()
                {
                    Result = baselineResult
                };

                model.BaselineResult.Add(ruleBaselineItem);
            }

            model.RuleId = RuleId;
            model.RuleAppliesToMaster = RuleAppliesToMaster.IsPresent;
            return(model);
        }
 /// <summary>
 /// This method is responsible to call the right API in the communication layer that will eventually send the information in the
 /// object to the REST endpoint
 /// </summary>
 /// <param name="model">The model object with the data to be sent to the REST endpoints</param>
 protected override VulnerabilityAssessmentRuleBaselineModel PersistChanges(VulnerabilityAssessmentRuleBaselineModel model)
 {
     ModelAdapter.SetVulnerabilityAssessmentRuleBaseline(model, GetServerName(), GetDatabaseName(), GetResourceTypeVaAppliesTo());
     return(model);
 }
Exemplo n.º 10
0
 /// <summary>
 /// No sending is needed as this is a Get cmdlet
 /// </summary>
 /// <param name="model">The model object with the data to be sent to the REST endpoints</param>
 protected override VulnerabilityAssessmentRuleBaselineModel PersistChanges(VulnerabilityAssessmentRuleBaselineModel model)
 {
     ModelAdapter.ClearVulnerabilityAssessmentRuleBaseline(model, GetWorkspaceName(), GetSqlPoolName(), GetResourceTypeVaAppliesTo());
     return(model);
 }
 /// <summary>
 /// Transforms the given model object to be an object that is written out
 /// </summary>
 /// <param name="model">The about to be written model object</param>
 /// <returns>The prepared object to be written out</returns>
 protected override object TransformModelToOutputObject(VulnerabilityAssessmentRuleBaselineModel model)
 {
     return(new SqlPoolVulnerabilityAssessmentRuleBaselineModel(model, GetWorkspaceName(), GetSqlPoolName()));
 }
 /// <summary>
 /// No sending is needed as this is a Get cmdlet
 /// </summary>
 /// <param name="model">The model object with the data to be sent to the REST endpoints</param>
 protected override VulnerabilityAssessmentRuleBaselineModel PersistChanges(VulnerabilityAssessmentRuleBaselineModel model)
 {
     return(model);
 }