public override void ExecuteCmdlet() { if (this.IsParameterBound(c => c.WorkspaceObject)) { this.ResourceGroupName = new ResourceIdentifier(this.WorkspaceObject.Id).ResourceGroupName; this.WorkspaceName = this.WorkspaceObject.Name; } if (this.IsParameterBound(c => c.InputObject)) { var resourceIdentifier = new ResourceIdentifier(this.InputObject.Id); this.ResourceGroupName = resourceIdentifier.ResourceGroupName; this.WorkspaceName = resourceIdentifier.ParentResource; this.WorkspaceName = this.WorkspaceName.Substring(this.WorkspaceName.LastIndexOf('/') + 1); this.Name = resourceIdentifier.ResourceName; } if (this.IsParameterBound(c => c.ResourceId)) { var resourceIdentifier = new ResourceIdentifier(this.ResourceId); this.ResourceGroupName = resourceIdentifier.ResourceGroupName; this.WorkspaceName = resourceIdentifier.ParentResource; this.WorkspaceName = this.WorkspaceName.Substring(this.WorkspaceName.LastIndexOf('/') + 1); this.Name = resourceIdentifier.ResourceName; } if (string.IsNullOrEmpty(this.ResourceGroupName)) { this.ResourceGroupName = this.SynapseAnalyticsClient.GetResourceGroupByWorkspaceName(this.WorkspaceName); } var result = new SqlPoolVulnerabilityAssessmentSettingsModel(SynapseAnalyticsClient.GetSqlPoolVulnerabilityAssessmentSettings(this.ResourceGroupName, this.WorkspaceName, this.Name), this.ResourceGroupName, this.WorkspaceName, this.Name); WriteObject(result); }
public override void ExecuteCmdlet() { if (this.IsParameterBound(c => c.WorkspaceObject)) { this.ResourceGroupName = new ResourceIdentifier(this.WorkspaceObject.Id).ResourceGroupName; this.WorkspaceName = this.WorkspaceObject.Name; } if (this.IsParameterBound(c => c.InputObject)) { var resourceIdentifier = new ResourceIdentifier(this.InputObject.Id); this.ResourceGroupName = resourceIdentifier.ResourceGroupName; this.WorkspaceName = resourceIdentifier.ParentResource; this.WorkspaceName = this.WorkspaceName.Substring(this.WorkspaceName.LastIndexOf('/') + 1); this.Name = resourceIdentifier.ResourceName; } if (this.IsParameterBound(c => c.ResourceId)) { var resourceIdentifier = new ResourceIdentifier(this.ResourceId); this.ResourceGroupName = resourceIdentifier.ResourceGroupName; this.WorkspaceName = resourceIdentifier.ParentResource; this.WorkspaceName = this.WorkspaceName.Substring(this.WorkspaceName.LastIndexOf('/') + 1); this.Name = resourceIdentifier.ResourceName; } if (string.IsNullOrEmpty(this.ResourceGroupName)) { this.ResourceGroupName = this.SynapseAnalyticsClient.GetResourceGroupByWorkspaceName(this.WorkspaceName); } var parameters = SynapseAnalyticsClient.GetSqlPoolVulnerabilityAssessmentSettings(this.ResourceGroupName, this.WorkspaceName, this.Name); if (this.IsParameterBound(c => c.BlobStorageSasUri)) { // In this case the user provided a full BlobStorageSasUri (e.g. "https://mystorage.blob.core.windows.net/vulnerability-assessment?st=XXXXXX" ) var storageContainerArgs = BlobStorageSasUri.AbsoluteUri.ToString().Split('?'); if (storageContainerArgs.Length < 2) { throw new Exception(Resources.InvalidBlobStorageSasUri); } parameters.StorageContainerPath = storageContainerArgs[0]; parameters.StorageContainerSasKey = storageContainerArgs[1]; } else { if (this.IsParameterBound(c => c.StorageAccountName)) { var storageResourceGroupName = SynapseAnalyticsClient.GetStorageResourceGroup(this.StorageAccountName); var storageContainerInfo = SynapseAnalyticsClient.GetStorageContainerInfo(storageResourceGroupName, this.StorageAccountName, this.ScanResultsContainerName); parameters.StorageContainerPath = storageContainerInfo.StorageContainerPath; parameters.StorageAccountAccessKey = storageContainerInfo.StorageAccountAccessKey; } if (string.IsNullOrEmpty(parameters.StorageContainerPath)) { throw new Exception(Resources.NoStorageAccountSpecified); } } if (this.IsParameterBound(c => c.NotificationEmail)) { if (!Utils.AreEmailAddressesInCorrectFormat(this.NotificationEmail)) { throw new Exception(Resources.EmailsAreNotValid); } parameters.RecurringScans.Emails = this.NotificationEmail; } if (this.IsParameterBound(c => c.RecurringScansInterval)) { parameters.RecurringScans.IsEnabled = this.RecurringScansInterval != RecurringScansInterval.None; } if (this.IsParameterBound(c => c.EmailAdmin)) { parameters.RecurringScans.EmailSubscriptionAdmins = this.EmailAdmin; } if (this.ShouldProcess(this.Name, string.Format(Resources.UpdatingSqlPoolVulnerabilityAssessmentSetting, this.Name, this.WorkspaceName))) { var result = new SqlPoolVulnerabilityAssessmentSettingsModel(SynapseAnalyticsClient.CreateOrUpdateSqlPoolVulnerabilityAssessmentSettings(this.ResourceGroupName, this.WorkspaceName, this.Name, parameters), this.ResourceGroupName, this.WorkspaceName, this.Name); WriteObject(result); } }