public static void ProcessPipeObject(PSScheduledQueryRuleResource inputObject, out string resourceGroupName, out string ruleName) { if (string.IsNullOrWhiteSpace(inputObject.Id)) { throw new PSArgumentException(message: "Log alert resource Id cannot be null", paramName: "LogAlert"); } if (string.IsNullOrWhiteSpace(inputObject.Name)) { throw new PSArgumentException(message: "Log alert Name cannot be null", paramName: "LogAlert"); } ruleName = inputObject.Name; try { Management.Internal.Resources.Utilities.Models.ResourceIdentifier resourceIdentifier = new Management.Internal.Resources.Utilities.Models.ResourceIdentifier(inputObject.Id); // Retrieve only the resource group name from the Id resourceGroupName = resourceIdentifier.ResourceGroupName; } catch (System.ArgumentException ex) { throw new PSArgumentException(message: "Invalid log alert resource Id: " + ex.Message, paramName: "LogAlert"); } }
protected override void ProcessRecordInternal() { try { if (this.IsParameterBound(c => c.ResourceId)) { var resourceIdentifier = new ResourceIdentifier(this.ResourceId); this.ResourceGroupName = resourceIdentifier.ResourceGroupName; this.Name = resourceIdentifier.ResourceName; } if (!string.IsNullOrEmpty(this.Name)) { var result = new PSScheduledQueryRuleResource(this.MonitorManagementClient.ScheduledQueryRules .GetWithHttpMessagesAsync(this.ResourceGroupName, this.Name).Result.Body); WriteObject(result); } else if (!string.IsNullOrEmpty(this.ResourceGroupName)) { var result = this.MonitorManagementClient.ScheduledQueryRules .ListByResourceGroupWithHttpMessagesAsync(this.ResourceGroupName).Result.Body .Select(f => new PSScheduledQueryRuleResource(f)); WriteObject(result, true); } else { var result = this.MonitorManagementClient.ScheduledQueryRules .ListBySubscriptionWithHttpMessagesAsync().Result.Body .Select(f => new PSScheduledQueryRuleResource(f)); WriteObject(result, true); } } catch (Exception ex) { if (ex.Message.Contains("NotFound")) { WriteObject(null); return; } throw new Exception("Error occured while getting Log Alert rules", ex.InnerException); } }