Create or update an alert processing rule.
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AlertsManagement/actionRules/{alertProcessingRuleName}?api-version=2021-08-08
URI Parameters
Name |
In |
Required |
Type |
Description |
alertProcessingRuleName
|
path |
True
|
string
|
The name of the alert processing rule that needs to be created/updated.
|
resourceGroupName
|
path |
True
|
string
|
Resource group name where the resource is created.
|
subscriptionId
|
path |
True
|
string
|
The ID of the target subscription.
|
api-version
|
query |
True
|
api-version
|
Client API version.
|
Request Body
Name |
Required |
Type |
Description |
location
|
True
|
string
|
Resource location
|
properties
|
|
AlertProcessingRuleProperties
|
Alert processing rule properties.
|
tags
|
|
object
|
Resource tags
|
Responses
Name |
Type |
Description |
200 OK
|
AlertProcessingRule
|
OK. Returns the updated alert processing rule.
Headers
x-ms-request-id: string
|
201 Created
|
AlertProcessingRule
|
Created. Returns the created alert processing rule.
Headers
x-ms-request-id: string
|
Other Status Codes
|
errorResponse
|
Error response describing why the operation failed.
|
Examples
Create or update a rule that adds an action group to all alerts in a subscription
Sample request
PUT https://management.azure.com/subscriptions/subId1/resourceGroups/alertscorrelationrg/providers/Microsoft.AlertsManagement/actionRules/AddActionGroupToSubscription?api-version=2021-08-08
{
"location": "Global",
"tags": {},
"properties": {
"scopes": [
"/subscriptions/subId1"
],
"actions": [
{
"actionType": "AddActionGroups",
"actionGroupIds": [
"/subscriptions/subId1/resourcegroups/RGId1/providers/microsoft.insights/actiongroups/ActionGroup1"
]
}
],
"description": "Add ActionGroup1 to all alerts in the subscription",
"enabled": true
}
}
from azure.identity import DefaultAzureCredential
from azure.mgmt.alertsmanagement import AlertsManagementClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-alertsmanagement
# USAGE
python alert_processing_rules_create_or_update_add_action_group_all_alerts_in_subscription.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = AlertsManagementClient(
credential=DefaultAzureCredential(),
subscription_id="subId1",
)
response = client.alert_processing_rules.create_or_update(
resource_group_name="alertscorrelationrg",
alert_processing_rule_name="AddActionGroupToSubscription",
alert_processing_rule={
"location": "Global",
"properties": {
"actions": [
{
"actionGroupIds": [
"/subscriptions/subId1/resourcegroups/RGId1/providers/microsoft.insights/actiongroups/ActionGroup1"
],
"actionType": "AddActionGroups",
}
],
"description": "Add ActionGroup1 to all alerts in the subscription",
"enabled": True,
"scopes": ["/subscriptions/subId1"],
},
"tags": {},
},
)
print(response)
# x-ms-original-file: specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-08-08/examples/AlertProcessingRules_Create_or_update_add_action_group_all_alerts_in_subscription.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armalertsmanagement_test
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/alertsmanagement/armalertsmanagement"
)
// Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/6d2438481021a94793b07b226df06d5f3c61d51d/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-08-08/examples/AlertProcessingRules_Create_or_update_add_action_group_all_alerts_in_subscription.json
func ExampleAlertProcessingRulesClient_CreateOrUpdate_createOrUpdateARuleThatAddsAnActionGroupToAllAlertsInASubscription() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armalertsmanagement.NewClientFactory("<subscription-id>", cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewAlertProcessingRulesClient().CreateOrUpdate(ctx, "alertscorrelationrg", "AddActionGroupToSubscription", armalertsmanagement.AlertProcessingRule{
Location: to.Ptr("Global"),
Tags: map[string]*string{},
Properties: &armalertsmanagement.AlertProcessingRuleProperties{
Description: to.Ptr("Add ActionGroup1 to all alerts in the subscription"),
Actions: []armalertsmanagement.ActionClassification{
&armalertsmanagement.AddActionGroups{
ActionType: to.Ptr(armalertsmanagement.ActionTypeAddActionGroups),
ActionGroupIDs: []*string{
to.Ptr("/subscriptions/subId1/resourcegroups/RGId1/providers/microsoft.insights/actiongroups/ActionGroup1")},
}},
Enabled: to.Ptr(true),
Scopes: []*string{
to.Ptr("/subscriptions/subId1")},
},
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res.AlertProcessingRule = armalertsmanagement.AlertProcessingRule{
// Name: to.Ptr("AddActionGroupToSubscription"),
// Type: to.Ptr("Microsoft.AlertsManagement/actionRules"),
// ID: to.Ptr("/subscriptions/subId1/resourceGroups/alertscorrelationrg/providers/Microsoft.AlertsManagement/actionRules/AddActionGroupToSubscription"),
// Location: to.Ptr("Global"),
// Tags: map[string]*string{
// },
// Properties: &armalertsmanagement.AlertProcessingRuleProperties{
// Description: to.Ptr("Add ActionGroup1 to all alerts in the subscription"),
// Actions: []armalertsmanagement.ActionClassification{
// &armalertsmanagement.AddActionGroups{
// ActionType: to.Ptr(armalertsmanagement.ActionTypeAddActionGroups),
// ActionGroupIDs: []*string{
// to.Ptr("/subscriptions/subId1/resourcegroups/RGId1/providers/microsoft.insights/actiongroups/ActionGroup1")},
// }},
// Enabled: to.Ptr(true),
// Scopes: []*string{
// to.Ptr("/subscriptions/subId1")},
// },
// SystemData: &armalertsmanagement.SystemData{
// CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2021-02-12T22:05:09.000Z"); return t}()),
// CreatedBy: to.Ptr("abc@microsoft.com"),
// CreatedByType: to.Ptr(armalertsmanagement.CreatedByTypeUser),
// LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2021-02-13T16:15:34.000Z"); return t}()),
// LastModifiedBy: to.Ptr("xyz@microsoft.com"),
// LastModifiedByType: to.Ptr(armalertsmanagement.CreatedByTypeUser),
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
using System;
using System.Threading.Tasks;
using Azure;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.AlertsManagement;
using Azure.ResourceManager.AlertsManagement.Models;
using Azure.ResourceManager.Resources;
// Generated from example definition: specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-08-08/examples/AlertProcessingRules_Create_or_update_add_action_group_all_alerts_in_subscription.json
// this example is just showing the usage of "AlertProcessingRules_CreateOrUpdate" operation, for the dependent resources, they will have to be created separately.
// get your azure access token, for more details of how Azure SDK get your access token, please refer to https://video2.skills-academy.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line
TokenCredential cred = new DefaultAzureCredential();
// authenticate your client
ArmClient client = new ArmClient(cred);
// this example assumes you already have this ResourceGroupResource created on azure
// for more information of creating ResourceGroupResource, please refer to the document of ResourceGroupResource
string subscriptionId = "subId1";
string resourceGroupName = "alertscorrelationrg";
ResourceIdentifier resourceGroupResourceId = ResourceGroupResource.CreateResourceIdentifier(subscriptionId, resourceGroupName);
ResourceGroupResource resourceGroupResource = client.GetResourceGroupResource(resourceGroupResourceId);
// get the collection of this AlertProcessingRuleResource
AlertProcessingRuleCollection collection = resourceGroupResource.GetAlertProcessingRules();
// invoke the operation
string alertProcessingRuleName = "AddActionGroupToSubscription";
AlertProcessingRuleData data = new AlertProcessingRuleData(new AzureLocation("Global"))
{
Properties = new AlertProcessingRuleProperties(new string[]
{
"/subscriptions/subId1"
}, new AlertProcessingRuleAction[]
{
new AlertProcessingRuleAddGroupsAction(new ResourceIdentifier[]
{
new ResourceIdentifier("/subscriptions/subId1/resourcegroups/RGId1/providers/microsoft.insights/actiongroups/ActionGroup1")
})
})
{
Description = "Add ActionGroup1 to all alerts in the subscription",
IsEnabled = true,
},
Tags =
{
},
};
ArmOperation<AlertProcessingRuleResource> lro = await collection.CreateOrUpdateAsync(WaitUntil.Completed, alertProcessingRuleName, data);
AlertProcessingRuleResource result = lro.Value;
// the variable result is a resource, you could call other operations on this instance as well
// but just for demo, we get its data from this resource instance
AlertProcessingRuleData resourceData = result.Data;
// for demo we just print out the id
Console.WriteLine($"Succeeded on id: {resourceData.Id}");
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"systemData": {
"createdBy": "abc@microsoft.com",
"createdByType": "User",
"createdAt": "2021-02-12T22:05:09Z",
"lastModifiedBy": "xyz@microsoft.com",
"lastModifiedByType": "User",
"lastModifiedAt": "2021-02-13T16:15:34Z"
},
"properties": {
"scopes": [
"/subscriptions/subId1"
],
"actions": [
{
"actionType": "AddActionGroups",
"actionGroupIds": [
"/subscriptions/subId1/resourcegroups/RGId1/providers/microsoft.insights/actiongroups/ActionGroup1"
]
}
],
"description": "Add ActionGroup1 to all alerts in the subscription",
"enabled": true
},
"id": "/subscriptions/subId1/resourceGroups/alertscorrelationrg/providers/Microsoft.AlertsManagement/actionRules/AddActionGroupToSubscription",
"type": "Microsoft.AlertsManagement/actionRules",
"name": "AddActionGroupToSubscription",
"location": "Global",
"tags": {}
}
{
"systemData": {
"createdBy": "abc@microsoft.com",
"createdByType": "User",
"createdAt": "2021-02-12T22:05:09Z",
"lastModifiedBy": "xyz@microsoft.com",
"lastModifiedByType": "User",
"lastModifiedAt": "2021-02-13T16:15:34Z"
},
"properties": {
"scopes": [
"/subscriptions/subId1"
],
"actions": [
{
"actionType": "AddActionGroups",
"actionGroupIds": [
"/subscriptions/subId1/resourcegroups/RGId1/providers/microsoft.insights/actiongroups/ActionGroup1"
]
}
],
"description": "Add ActionGroup1 to all alerts in the subscription",
"enabled": true
},
"id": "/subscriptions/subId1/resourceGroups/alertscorrelationrg/providers/Microsoft.AlertsManagement/actionRules/AddActionGroupToSubscription",
"type": "Microsoft.AlertsManagement/actionRules",
"name": "AddActionGroupToSubscription",
"location": "Global",
"tags": {}
}
Create or update a rule that adds two action groups to all Sev0 and Sev1 alerts in two resource groups
Sample request
PUT https://management.azure.com/subscriptions/subId1/resourceGroups/alertscorrelationrg/providers/Microsoft.AlertsManagement/actionRules/AddActionGroupsBySeverity?api-version=2021-08-08
{
"location": "Global",
"tags": {},
"properties": {
"scopes": [
"/subscriptions/subId1/resourceGroups/RGId1",
"/subscriptions/subId1/resourceGroups/RGId2"
],
"conditions": [
{
"field": "Severity",
"operator": "Equals",
"values": [
"sev0",
"sev1"
]
}
],
"actions": [
{
"actionType": "AddActionGroups",
"actionGroupIds": [
"/subscriptions/subId1/resourcegroups/RGId1/providers/microsoft.insights/actiongroups/AGId1",
"/subscriptions/subId1/resourcegroups/RGId1/providers/microsoft.insights/actiongroups/AGId2"
]
}
],
"description": "Add AGId1 and AGId2 to all Sev0 and Sev1 alerts in these resourceGroups",
"enabled": true
}
}
from azure.identity import DefaultAzureCredential
from azure.mgmt.alertsmanagement import AlertsManagementClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-alertsmanagement
# USAGE
python alert_processing_rules_create_or_update_add_two_action_groups_all_sev0_sev1_two_resource_groups.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = AlertsManagementClient(
credential=DefaultAzureCredential(),
subscription_id="subId1",
)
response = client.alert_processing_rules.create_or_update(
resource_group_name="alertscorrelationrg",
alert_processing_rule_name="AddActionGroupsBySeverity",
alert_processing_rule={
"location": "Global",
"properties": {
"actions": [
{
"actionGroupIds": [
"/subscriptions/subId1/resourcegroups/RGId1/providers/microsoft.insights/actiongroups/AGId1",
"/subscriptions/subId1/resourcegroups/RGId1/providers/microsoft.insights/actiongroups/AGId2",
],
"actionType": "AddActionGroups",
}
],
"conditions": [{"field": "Severity", "operator": "Equals", "values": ["sev0", "sev1"]}],
"description": "Add AGId1 and AGId2 to all Sev0 and Sev1 alerts in these resourceGroups",
"enabled": True,
"scopes": ["/subscriptions/subId1/resourceGroups/RGId1", "/subscriptions/subId1/resourceGroups/RGId2"],
},
"tags": {},
},
)
print(response)
# x-ms-original-file: specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-08-08/examples/AlertProcessingRules_Create_or_update_add_two_action_groups_all_Sev0_Sev1_two_resource_groups.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armalertsmanagement_test
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/alertsmanagement/armalertsmanagement"
)
// Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/6d2438481021a94793b07b226df06d5f3c61d51d/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-08-08/examples/AlertProcessingRules_Create_or_update_add_two_action_groups_all_Sev0_Sev1_two_resource_groups.json
func ExampleAlertProcessingRulesClient_CreateOrUpdate_createOrUpdateARuleThatAddsTwoActionGroupsToAllSev0AndSev1AlertsInTwoResourceGroups() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armalertsmanagement.NewClientFactory("<subscription-id>", cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewAlertProcessingRulesClient().CreateOrUpdate(ctx, "alertscorrelationrg", "AddActionGroupsBySeverity", armalertsmanagement.AlertProcessingRule{
Location: to.Ptr("Global"),
Tags: map[string]*string{},
Properties: &armalertsmanagement.AlertProcessingRuleProperties{
Description: to.Ptr("Add AGId1 and AGId2 to all Sev0 and Sev1 alerts in these resourceGroups"),
Actions: []armalertsmanagement.ActionClassification{
&armalertsmanagement.AddActionGroups{
ActionType: to.Ptr(armalertsmanagement.ActionTypeAddActionGroups),
ActionGroupIDs: []*string{
to.Ptr("/subscriptions/subId1/resourcegroups/RGId1/providers/microsoft.insights/actiongroups/AGId1"),
to.Ptr("/subscriptions/subId1/resourcegroups/RGId1/providers/microsoft.insights/actiongroups/AGId2")},
}},
Conditions: []*armalertsmanagement.Condition{
{
Field: to.Ptr(armalertsmanagement.FieldSeverity),
Operator: to.Ptr(armalertsmanagement.OperatorEquals),
Values: []*string{
to.Ptr("sev0"),
to.Ptr("sev1")},
}},
Enabled: to.Ptr(true),
Scopes: []*string{
to.Ptr("/subscriptions/subId1/resourceGroups/RGId1"),
to.Ptr("/subscriptions/subId1/resourceGroups/RGId2")},
},
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res.AlertProcessingRule = armalertsmanagement.AlertProcessingRule{
// Name: to.Ptr("AddActionGroupsBySeverity"),
// Type: to.Ptr("Microsoft.AlertsManagement/actionRules"),
// ID: to.Ptr("/subscriptions/subId1/resourceGroups/alertscorrelationrg/providers/Microsoft.AlertsManagement/actionRules/AddActionGroupsBySeverity"),
// Location: to.Ptr("Global"),
// Tags: map[string]*string{
// },
// Properties: &armalertsmanagement.AlertProcessingRuleProperties{
// Description: to.Ptr("Add AGId1 and AGId2 to all Sev0 and Sev1 alerts in these resourceGroups"),
// Actions: []armalertsmanagement.ActionClassification{
// &armalertsmanagement.AddActionGroups{
// ActionType: to.Ptr(armalertsmanagement.ActionTypeAddActionGroups),
// ActionGroupIDs: []*string{
// to.Ptr("/subscriptions/subId1/resourcegroups/RGId1/providers/microsoft.insights/actiongroups/AGId1"),
// to.Ptr("/subscriptions/subId1/resourcegroups/RGId1/providers/microsoft.insights/actiongroups/AGId2")},
// }},
// Conditions: []*armalertsmanagement.Condition{
// {
// Field: to.Ptr(armalertsmanagement.FieldSeverity),
// Operator: to.Ptr(armalertsmanagement.OperatorEquals),
// Values: []*string{
// to.Ptr("sev0"),
// to.Ptr("sev1")},
// }},
// Enabled: to.Ptr(true),
// Scopes: []*string{
// to.Ptr("/subscriptions/subId1/resourceGroups/RGId1"),
// to.Ptr("/subscriptions/subId1/resourceGroups/RGId2")},
// },
// SystemData: &armalertsmanagement.SystemData{
// CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-06-12T22:05:09.000Z"); return t}()),
// CreatedBy: to.Ptr("abc@microsoft.com"),
// CreatedByType: to.Ptr(armalertsmanagement.CreatedByTypeUser),
// LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-06-13T22:05:09.000Z"); return t}()),
// LastModifiedBy: to.Ptr("xyz@microsoft.com"),
// LastModifiedByType: to.Ptr(armalertsmanagement.CreatedByTypeUser),
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
using System;
using System.Threading.Tasks;
using Azure;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.AlertsManagement;
using Azure.ResourceManager.AlertsManagement.Models;
using Azure.ResourceManager.Resources;
// Generated from example definition: specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-08-08/examples/AlertProcessingRules_Create_or_update_add_two_action_groups_all_Sev0_Sev1_two_resource_groups.json
// this example is just showing the usage of "AlertProcessingRules_CreateOrUpdate" operation, for the dependent resources, they will have to be created separately.
// get your azure access token, for more details of how Azure SDK get your access token, please refer to https://video2.skills-academy.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line
TokenCredential cred = new DefaultAzureCredential();
// authenticate your client
ArmClient client = new ArmClient(cred);
// this example assumes you already have this ResourceGroupResource created on azure
// for more information of creating ResourceGroupResource, please refer to the document of ResourceGroupResource
string subscriptionId = "subId1";
string resourceGroupName = "alertscorrelationrg";
ResourceIdentifier resourceGroupResourceId = ResourceGroupResource.CreateResourceIdentifier(subscriptionId, resourceGroupName);
ResourceGroupResource resourceGroupResource = client.GetResourceGroupResource(resourceGroupResourceId);
// get the collection of this AlertProcessingRuleResource
AlertProcessingRuleCollection collection = resourceGroupResource.GetAlertProcessingRules();
// invoke the operation
string alertProcessingRuleName = "AddActionGroupsBySeverity";
AlertProcessingRuleData data = new AlertProcessingRuleData(new AzureLocation("Global"))
{
Properties = new AlertProcessingRuleProperties(new string[]
{
"/subscriptions/subId1/resourceGroups/RGId1","/subscriptions/subId1/resourceGroups/RGId2"
}, new AlertProcessingRuleAction[]
{
new AlertProcessingRuleAddGroupsAction(new ResourceIdentifier[]
{
new ResourceIdentifier("/subscriptions/subId1/resourcegroups/RGId1/providers/microsoft.insights/actiongroups/AGId1"),new ResourceIdentifier("/subscriptions/subId1/resourcegroups/RGId1/providers/microsoft.insights/actiongroups/AGId2")
})
})
{
Conditions =
{
new AlertProcessingRuleCondition()
{
Field = AlertProcessingRuleField.Severity,
Operator = AlertProcessingRuleOperator.EqualsValue,
Values =
{
"sev0","sev1"
},
}
},
Description = "Add AGId1 and AGId2 to all Sev0 and Sev1 alerts in these resourceGroups",
IsEnabled = true,
},
Tags =
{
},
};
ArmOperation<AlertProcessingRuleResource> lro = await collection.CreateOrUpdateAsync(WaitUntil.Completed, alertProcessingRuleName, data);
AlertProcessingRuleResource result = lro.Value;
// the variable result is a resource, you could call other operations on this instance as well
// but just for demo, we get its data from this resource instance
AlertProcessingRuleData resourceData = result.Data;
// for demo we just print out the id
Console.WriteLine($"Succeeded on id: {resourceData.Id}");
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"systemData": {
"createdBy": "abc@microsoft.com",
"createdByType": "User",
"createdAt": "2018-06-12T22:05:09Z",
"lastModifiedBy": "xyz@microsoft.com",
"lastModifiedByType": "User",
"lastModifiedAt": "2018-06-13T22:05:09Z"
},
"properties": {
"scopes": [
"/subscriptions/subId1/resourceGroups/RGId1",
"/subscriptions/subId1/resourceGroups/RGId2"
],
"conditions": [
{
"field": "Severity",
"operator": "Equals",
"values": [
"sev0",
"sev1"
]
}
],
"actions": [
{
"actionType": "AddActionGroups",
"actionGroupIds": [
"/subscriptions/subId1/resourcegroups/RGId1/providers/microsoft.insights/actiongroups/AGId1",
"/subscriptions/subId1/resourcegroups/RGId1/providers/microsoft.insights/actiongroups/AGId2"
]
}
],
"description": "Add AGId1 and AGId2 to all Sev0 and Sev1 alerts in these resourceGroups",
"enabled": true
},
"id": "/subscriptions/subId1/resourceGroups/alertscorrelationrg/providers/Microsoft.AlertsManagement/actionRules/AddActionGroupsBySeverity",
"type": "Microsoft.AlertsManagement/actionRules",
"name": "AddActionGroupsBySeverity",
"location": "Global",
"tags": {}
}
{
"systemData": {
"createdBy": "abc@microsoft.com",
"createdByType": "User",
"createdAt": "2018-06-12T22:05:09Z",
"lastModifiedBy": "xyz@microsoft.com",
"lastModifiedByType": "User",
"lastModifiedAt": "2018-06-13T22:05:09Z"
},
"properties": {
"scopes": [
"/subscriptions/subId1/resourceGroups/RGId1",
"/subscriptions/subId1/resourceGroups/RGId2"
],
"conditions": [
{
"field": "Severity",
"operator": "Equals",
"values": [
"sev0",
"sev1"
]
}
],
"actions": [
{
"actionType": "AddActionGroups",
"actionGroupIds": [
"/subscriptions/subId1/resourcegroups/RGId1/providers/microsoft.insights/actiongroups/AGId1",
"/subscriptions/subId1/resourcegroups/RGId1/providers/microsoft.insights/actiongroups/AGId2"
]
}
],
"description": "Add AGId1 and AGId2 to all Sev0 and Sev1 alerts in these resourceGroups",
"enabled": true
},
"id": "/subscriptions/subId1/resourceGroups/alertscorrelationrg/providers/Microsoft.AlertsManagement/actionRules/AddActionGroupsBySeverity",
"type": "Microsoft.AlertsManagement/actionRules",
"name": "AddActionGroupsBySeverity",
"location": "Global",
"tags": {}
}
Create or update a rule that removes all action groups from alerts on a specific VM during a one-off maintenance window (1800-2000 at a specific date, Pacific Standard Time)
Sample request
PUT https://management.azure.com/subscriptions/subId1/resourceGroups/alertscorrelationrg/providers/Microsoft.AlertsManagement/actionRules/RemoveActionGroupsMaintenanceWindow?api-version=2021-08-08
{
"location": "Global",
"tags": {},
"properties": {
"scopes": [
"/subscriptions/subId1/resourceGroups/RGId1/providers/Microsoft.Compute/virtualMachines/VMName"
],
"actions": [
{
"actionType": "RemoveAllActionGroups"
}
],
"schedule": {
"effectiveFrom": "2021-04-15T18:00:00",
"effectiveUntil": "2021-04-15T20:00:00",
"timeZone": "Pacific Standard Time"
},
"description": "Removes all ActionGroups from all Alerts on VMName during the maintenance window",
"enabled": true
}
}
from azure.identity import DefaultAzureCredential
from azure.mgmt.alertsmanagement import AlertsManagementClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-alertsmanagement
# USAGE
python alert_processing_rules_create_or_update_remove_all_action_groups_specific_vm_oneoff_maintenance_window.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = AlertsManagementClient(
credential=DefaultAzureCredential(),
subscription_id="subId1",
)
response = client.alert_processing_rules.create_or_update(
resource_group_name="alertscorrelationrg",
alert_processing_rule_name="RemoveActionGroupsMaintenanceWindow",
alert_processing_rule={
"location": "Global",
"properties": {
"actions": [{"actionType": "RemoveAllActionGroups"}],
"description": "Removes all ActionGroups from all Alerts on VMName during the maintenance window",
"enabled": True,
"schedule": {
"effectiveFrom": "2021-04-15T18:00:00",
"effectiveUntil": "2021-04-15T20:00:00",
"timeZone": "Pacific Standard Time",
},
"scopes": [
"/subscriptions/subId1/resourceGroups/RGId1/providers/Microsoft.Compute/virtualMachines/VMName"
],
},
"tags": {},
},
)
print(response)
# x-ms-original-file: specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-08-08/examples/AlertProcessingRules_Create_or_update_remove_all_action_groups_specific_VM_one-off_maintenance_window.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armalertsmanagement_test
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/alertsmanagement/armalertsmanagement"
)
// Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/6d2438481021a94793b07b226df06d5f3c61d51d/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-08-08/examples/AlertProcessingRules_Create_or_update_remove_all_action_groups_specific_VM_one-off_maintenance_window.json
func ExampleAlertProcessingRulesClient_CreateOrUpdate_createOrUpdateARuleThatRemovesAllActionGroupsFromAlertsOnASpecificVmDuringAOneOffMaintenanceWindow18002000AtASpecificDatePacificStandardTime() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armalertsmanagement.NewClientFactory("<subscription-id>", cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewAlertProcessingRulesClient().CreateOrUpdate(ctx, "alertscorrelationrg", "RemoveActionGroupsMaintenanceWindow", armalertsmanagement.AlertProcessingRule{
Location: to.Ptr("Global"),
Tags: map[string]*string{},
Properties: &armalertsmanagement.AlertProcessingRuleProperties{
Description: to.Ptr("Removes all ActionGroups from all Alerts on VMName during the maintenance window"),
Actions: []armalertsmanagement.ActionClassification{
&armalertsmanagement.RemoveAllActionGroups{
ActionType: to.Ptr(armalertsmanagement.ActionTypeRemoveAllActionGroups),
}},
Enabled: to.Ptr(true),
Schedule: &armalertsmanagement.Schedule{
EffectiveFrom: to.Ptr("2021-04-15T18:00:00"),
EffectiveUntil: to.Ptr("2021-04-15T20:00:00"),
TimeZone: to.Ptr("Pacific Standard Time"),
},
Scopes: []*string{
to.Ptr("/subscriptions/subId1/resourceGroups/RGId1/providers/Microsoft.Compute/virtualMachines/VMName")},
},
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res.AlertProcessingRule = armalertsmanagement.AlertProcessingRule{
// Name: to.Ptr("RemoveActionGroupsMaintenanceWindow"),
// Type: to.Ptr("Microsoft.AlertsManagement/actionRules"),
// ID: to.Ptr("/subscriptions/subId1/resourceGroups/alertscorrelationrg/providers/Microsoft.AlertsManagement/actionRules/RemoveActionGroupsMaintenanceWindow"),
// Location: to.Ptr("Global"),
// Tags: map[string]*string{
// },
// Properties: &armalertsmanagement.AlertProcessingRuleProperties{
// Description: to.Ptr("Removes all ActionGroups from all Alerts on VMName during the maintenance window"),
// Actions: []armalertsmanagement.ActionClassification{
// &armalertsmanagement.RemoveAllActionGroups{
// ActionType: to.Ptr(armalertsmanagement.ActionTypeRemoveAllActionGroups),
// }},
// Enabled: to.Ptr(true),
// Schedule: &armalertsmanagement.Schedule{
// EffectiveFrom: to.Ptr("2021-04-15T18:00:00"),
// EffectiveUntil: to.Ptr("2021-04-15T20:00:00"),
// TimeZone: to.Ptr("Pacific Standard Time"),
// },
// Scopes: []*string{
// to.Ptr("/subscriptions/subId1/resourceGroups/RGId1/providers/Microsoft.Compute/virtualMachines/VMName")},
// },
// SystemData: &armalertsmanagement.SystemData{
// CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-06-12T20:13:29.000Z"); return t}()),
// CreatedBy: to.Ptr("abc@microsoft.com"),
// CreatedByType: to.Ptr(armalertsmanagement.CreatedByTypeUser),
// LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-06-12T22:05:09.000Z"); return t}()),
// LastModifiedBy: to.Ptr("xyz@microsoft.com"),
// LastModifiedByType: to.Ptr(armalertsmanagement.CreatedByTypeUser),
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
using System;
using System.Threading.Tasks;
using Azure;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.AlertsManagement;
using Azure.ResourceManager.AlertsManagement.Models;
using Azure.ResourceManager.Resources;
// Generated from example definition: specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-08-08/examples/AlertProcessingRules_Create_or_update_remove_all_action_groups_specific_VM_one-off_maintenance_window.json
// this example is just showing the usage of "AlertProcessingRules_CreateOrUpdate" operation, for the dependent resources, they will have to be created separately.
// get your azure access token, for more details of how Azure SDK get your access token, please refer to https://video2.skills-academy.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line
TokenCredential cred = new DefaultAzureCredential();
// authenticate your client
ArmClient client = new ArmClient(cred);
// this example assumes you already have this ResourceGroupResource created on azure
// for more information of creating ResourceGroupResource, please refer to the document of ResourceGroupResource
string subscriptionId = "subId1";
string resourceGroupName = "alertscorrelationrg";
ResourceIdentifier resourceGroupResourceId = ResourceGroupResource.CreateResourceIdentifier(subscriptionId, resourceGroupName);
ResourceGroupResource resourceGroupResource = client.GetResourceGroupResource(resourceGroupResourceId);
// get the collection of this AlertProcessingRuleResource
AlertProcessingRuleCollection collection = resourceGroupResource.GetAlertProcessingRules();
// invoke the operation
string alertProcessingRuleName = "RemoveActionGroupsMaintenanceWindow";
AlertProcessingRuleData data = new AlertProcessingRuleData(new AzureLocation("Global"))
{
Properties = new AlertProcessingRuleProperties(new string[]
{
"/subscriptions/subId1/resourceGroups/RGId1/providers/Microsoft.Compute/virtualMachines/VMName"
}, new AlertProcessingRuleAction[]
{
new AlertProcessingRuleRemoveAllGroupsAction()
})
{
Schedule = new AlertProcessingRuleSchedule()
{
EffectiveFrom = DateTimeOffset.Parse("2021-04-15T18:00:00"),
EffectiveUntil = DateTimeOffset.Parse("2021-04-15T20:00:00"),
TimeZone = "Pacific Standard Time",
},
Description = "Removes all ActionGroups from all Alerts on VMName during the maintenance window",
IsEnabled = true,
},
Tags =
{
},
};
ArmOperation<AlertProcessingRuleResource> lro = await collection.CreateOrUpdateAsync(WaitUntil.Completed, alertProcessingRuleName, data);
AlertProcessingRuleResource result = lro.Value;
// the variable result is a resource, you could call other operations on this instance as well
// but just for demo, we get its data from this resource instance
AlertProcessingRuleData resourceData = result.Data;
// for demo we just print out the id
Console.WriteLine($"Succeeded on id: {resourceData.Id}");
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"systemData": {
"createdBy": "abc@microsoft.com",
"createdByType": "User",
"createdAt": "2018-06-12T20:13:29Z",
"lastModifiedBy": "xyz@microsoft.com",
"lastModifiedByType": "User",
"lastModifiedAt": "2018-06-12T22:05:09Z"
},
"properties": {
"scopes": [
"/subscriptions/subId1/resourceGroups/RGId1/providers/Microsoft.Compute/virtualMachines/VMName"
],
"actions": [
{
"actionType": "RemoveAllActionGroups"
}
],
"schedule": {
"effectiveFrom": "2021-04-15T18:00:00",
"effectiveUntil": "2021-04-15T20:00:00",
"timeZone": "Pacific Standard Time"
},
"description": "Removes all ActionGroups from all Alerts on VMName during the maintenance window",
"enabled": true
},
"id": "/subscriptions/subId1/resourceGroups/alertscorrelationrg/providers/Microsoft.AlertsManagement/actionRules/RemoveActionGroupsMaintenanceWindow",
"type": "Microsoft.AlertsManagement/actionRules",
"name": "RemoveActionGroupsMaintenanceWindow",
"location": "Global",
"tags": {}
}
{
"systemData": {
"createdBy": "abc@microsoft.com",
"createdByType": "User",
"createdAt": "2018-06-12T20:13:29Z",
"lastModifiedBy": "xyz@microsoft.com",
"lastModifiedByType": "User",
"lastModifiedAt": "2018-06-12T22:05:09Z"
},
"properties": {
"scopes": [
"/subscriptions/subId1/resourceGroups/RGId1/providers/Microsoft.Compute/virtualMachines/VMName"
],
"actions": [
{
"actionType": "RemoveAllActionGroups"
}
],
"schedule": {
"effectiveFrom": "2021-04-15T18:00:00",
"effectiveUntil": "2021-04-15T20:00:00",
"timeZone": "Pacific Standard Time"
},
"description": "Removes all ActionGroups from all Alerts on VMName during the maintenance window",
"enabled": true
},
"id": "/subscriptions/subId1/resourceGroups/alertscorrelationrg/providers/Microsoft.AlertsManagement/actionRules/RemoveActionGroupsMaintenanceWindow",
"type": "Microsoft.AlertsManagement/actionRules",
"name": "RemoveActionGroupsMaintenanceWindow",
"location": "Global",
"tags": {}
}
Create or update a rule that removes all action groups from all alerts in a subscription coming from a specific alert rule
Sample request
PUT https://management.azure.com/subscriptions/subId1/resourceGroups/alertscorrelationrg/providers/Microsoft.AlertsManagement/actionRules/RemoveActionGroupsSpecificAlertRule?api-version=2021-08-08
{
"location": "Global",
"tags": {},
"properties": {
"scopes": [
"/subscriptions/subId1"
],
"conditions": [
{
"field": "AlertRuleId",
"operator": "Equals",
"values": [
"/subscriptions/suubId1/resourceGroups/Rgid2/providers/microsoft.insights/activityLogAlerts/RuleName"
]
}
],
"actions": [
{
"actionType": "RemoveAllActionGroups"
}
],
"description": "Removes all ActionGroups from all Alerts that fire on above AlertRule",
"enabled": true
}
}
from azure.identity import DefaultAzureCredential
from azure.mgmt.alertsmanagement import AlertsManagementClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-alertsmanagement
# USAGE
python alert_processing_rules_create_or_update_remove_all_action_groups_from_specific_alert_rule.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = AlertsManagementClient(
credential=DefaultAzureCredential(),
subscription_id="subId1",
)
response = client.alert_processing_rules.create_or_update(
resource_group_name="alertscorrelationrg",
alert_processing_rule_name="RemoveActionGroupsSpecificAlertRule",
alert_processing_rule={
"location": "Global",
"properties": {
"actions": [{"actionType": "RemoveAllActionGroups"}],
"conditions": [
{
"field": "AlertRuleId",
"operator": "Equals",
"values": [
"/subscriptions/suubId1/resourceGroups/Rgid2/providers/microsoft.insights/activityLogAlerts/RuleName"
],
}
],
"description": "Removes all ActionGroups from all Alerts that fire on above AlertRule",
"enabled": True,
"scopes": ["/subscriptions/subId1"],
},
"tags": {},
},
)
print(response)
# x-ms-original-file: specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-08-08/examples/AlertProcessingRules_Create_or_update_remove_all_action_groups_from_specific_alert_rule.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armalertsmanagement_test
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/alertsmanagement/armalertsmanagement"
)
// Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/6d2438481021a94793b07b226df06d5f3c61d51d/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-08-08/examples/AlertProcessingRules_Create_or_update_remove_all_action_groups_from_specific_alert_rule.json
func ExampleAlertProcessingRulesClient_CreateOrUpdate_createOrUpdateARuleThatRemovesAllActionGroupsFromAllAlertsInASubscriptionComingFromASpecificAlertRule() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armalertsmanagement.NewClientFactory("<subscription-id>", cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewAlertProcessingRulesClient().CreateOrUpdate(ctx, "alertscorrelationrg", "RemoveActionGroupsSpecificAlertRule", armalertsmanagement.AlertProcessingRule{
Location: to.Ptr("Global"),
Tags: map[string]*string{},
Properties: &armalertsmanagement.AlertProcessingRuleProperties{
Description: to.Ptr("Removes all ActionGroups from all Alerts that fire on above AlertRule"),
Actions: []armalertsmanagement.ActionClassification{
&armalertsmanagement.RemoveAllActionGroups{
ActionType: to.Ptr(armalertsmanagement.ActionTypeRemoveAllActionGroups),
}},
Conditions: []*armalertsmanagement.Condition{
{
Field: to.Ptr(armalertsmanagement.FieldAlertRuleID),
Operator: to.Ptr(armalertsmanagement.OperatorEquals),
Values: []*string{
to.Ptr("/subscriptions/suubId1/resourceGroups/Rgid2/providers/microsoft.insights/activityLogAlerts/RuleName")},
}},
Enabled: to.Ptr(true),
Scopes: []*string{
to.Ptr("/subscriptions/subId1")},
},
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res.AlertProcessingRule = armalertsmanagement.AlertProcessingRule{
// Name: to.Ptr("RemoveActionGroupsSpecificAlertRule"),
// Type: to.Ptr("Microsoft.AlertsManagement/actionRules"),
// ID: to.Ptr("/subscriptions/subId1/resourceGroups/alertscorrelationrg/providers/Microsoft.AlertsManagement/actionRules/RemoveActionGroupsSpecificAlertRule"),
// Location: to.Ptr("Global"),
// Tags: map[string]*string{
// },
// Properties: &armalertsmanagement.AlertProcessingRuleProperties{
// Description: to.Ptr("Removes all ActionGroups from all Alerts that fire on above AlertRule"),
// Actions: []armalertsmanagement.ActionClassification{
// &armalertsmanagement.RemoveAllActionGroups{
// ActionType: to.Ptr(armalertsmanagement.ActionTypeRemoveAllActionGroups),
// }},
// Conditions: []*armalertsmanagement.Condition{
// {
// Field: to.Ptr(armalertsmanagement.FieldAlertRuleID),
// Operator: to.Ptr(armalertsmanagement.OperatorEquals),
// Values: []*string{
// to.Ptr("/subscriptions/suubId1/resourceGroups/Rgid2/providers/microsoft.insights/activityLogAlerts/RuleName")},
// }},
// Enabled: to.Ptr(true),
// Scopes: []*string{
// to.Ptr("/subscriptions/subId1")},
// },
// SystemData: &armalertsmanagement.SystemData{
// CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-06-11T22:05:09.000Z"); return t}()),
// CreatedBy: to.Ptr("abc@microsoft.com"),
// CreatedByType: to.Ptr(armalertsmanagement.CreatedByTypeUser),
// LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-06-12T22:05:09.000Z"); return t}()),
// LastModifiedBy: to.Ptr("xyz@microsoft.com"),
// LastModifiedByType: to.Ptr(armalertsmanagement.CreatedByTypeUser),
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
using System;
using System.Threading.Tasks;
using Azure;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.AlertsManagement;
using Azure.ResourceManager.AlertsManagement.Models;
using Azure.ResourceManager.Resources;
// Generated from example definition: specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-08-08/examples/AlertProcessingRules_Create_or_update_remove_all_action_groups_from_specific_alert_rule.json
// this example is just showing the usage of "AlertProcessingRules_CreateOrUpdate" operation, for the dependent resources, they will have to be created separately.
// get your azure access token, for more details of how Azure SDK get your access token, please refer to https://video2.skills-academy.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line
TokenCredential cred = new DefaultAzureCredential();
// authenticate your client
ArmClient client = new ArmClient(cred);
// this example assumes you already have this ResourceGroupResource created on azure
// for more information of creating ResourceGroupResource, please refer to the document of ResourceGroupResource
string subscriptionId = "subId1";
string resourceGroupName = "alertscorrelationrg";
ResourceIdentifier resourceGroupResourceId = ResourceGroupResource.CreateResourceIdentifier(subscriptionId, resourceGroupName);
ResourceGroupResource resourceGroupResource = client.GetResourceGroupResource(resourceGroupResourceId);
// get the collection of this AlertProcessingRuleResource
AlertProcessingRuleCollection collection = resourceGroupResource.GetAlertProcessingRules();
// invoke the operation
string alertProcessingRuleName = "RemoveActionGroupsSpecificAlertRule";
AlertProcessingRuleData data = new AlertProcessingRuleData(new AzureLocation("Global"))
{
Properties = new AlertProcessingRuleProperties(new string[]
{
"/subscriptions/subId1"
}, new AlertProcessingRuleAction[]
{
new AlertProcessingRuleRemoveAllGroupsAction()
})
{
Conditions =
{
new AlertProcessingRuleCondition()
{
Field = AlertProcessingRuleField.AlertRuleId,
Operator = AlertProcessingRuleOperator.EqualsValue,
Values =
{
"/subscriptions/suubId1/resourceGroups/Rgid2/providers/microsoft.insights/activityLogAlerts/RuleName"
},
}
},
Description = "Removes all ActionGroups from all Alerts that fire on above AlertRule",
IsEnabled = true,
},
Tags =
{
},
};
ArmOperation<AlertProcessingRuleResource> lro = await collection.CreateOrUpdateAsync(WaitUntil.Completed, alertProcessingRuleName, data);
AlertProcessingRuleResource result = lro.Value;
// the variable result is a resource, you could call other operations on this instance as well
// but just for demo, we get its data from this resource instance
AlertProcessingRuleData resourceData = result.Data;
// for demo we just print out the id
Console.WriteLine($"Succeeded on id: {resourceData.Id}");
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"systemData": {
"createdBy": "abc@microsoft.com",
"createdByType": "User",
"createdAt": "2018-06-11T22:05:09Z",
"lastModifiedBy": "xyz@microsoft.com",
"lastModifiedByType": "User",
"lastModifiedAt": "2018-06-12T22:05:09Z"
},
"properties": {
"scopes": [
"/subscriptions/subId1"
],
"conditions": [
{
"field": "AlertRuleId",
"operator": "Equals",
"values": [
"/subscriptions/suubId1/resourceGroups/Rgid2/providers/microsoft.insights/activityLogAlerts/RuleName"
]
}
],
"actions": [
{
"actionType": "RemoveAllActionGroups"
}
],
"description": "Removes all ActionGroups from all Alerts that fire on above AlertRule",
"enabled": true
},
"id": "/subscriptions/subId1/resourceGroups/alertscorrelationrg/providers/Microsoft.AlertsManagement/actionRules/RemoveActionGroupsSpecificAlertRule",
"type": "Microsoft.AlertsManagement/actionRules",
"name": "RemoveActionGroupsSpecificAlertRule",
"location": "Global",
"tags": {}
}
{
"systemData": {
"createdBy": "abc@microsoft.com",
"createdByType": "User",
"createdAt": "2018-06-11T22:05:09Z",
"lastModifiedBy": "xyz@microsoft.com",
"lastModifiedByType": "User",
"lastModifiedAt": "2018-06-12T22:05:09Z"
},
"properties": {
"scopes": [
"/subscriptions/subId1"
],
"conditions": [
{
"field": "AlertRuleId",
"operator": "Equals",
"values": [
"/subscriptions/suubId1/resourceGroups/Rgid2/providers/microsoft.insights/activityLogAlerts/RuleName"
]
}
],
"actions": [
{
"actionType": "RemoveAllActionGroups"
}
],
"description": "Removes all ActionGroups from all Alerts that fire on above AlertRule",
"enabled": true
},
"id": "/subscriptions/subId1/resourceGroups/alertscorrelationrg/providers/Microsoft.AlertsManagement/actionRules/RemoveActionGroupsSpecificAlertRule",
"type": "Microsoft.AlertsManagement/actionRules",
"name": "RemoveActionGroupsSpecificAlertRule",
"location": "Global",
"tags": {}
}
Create or update a rule that removes all action groups from all alerts on any VM in two resource groups during a recurring maintenance window (2200-0400 every Sat and Sun, India Standard Time)
Sample request
PUT https://management.azure.com/subscriptions/subId1/resourceGroups/alertscorrelationrg/providers/Microsoft.AlertsManagement/actionRules/RemoveActionGroupsRecurringMaintenance?api-version=2021-08-08
{
"location": "Global",
"tags": {},
"properties": {
"scopes": [
"/subscriptions/subId1/resourceGroups/RGId1",
"/subscriptions/subId1/resourceGroups/RGId2"
],
"conditions": [
{
"field": "TargetResourceType",
"operator": "Equals",
"values": [
"microsoft.compute/virtualmachines"
]
}
],
"actions": [
{
"actionType": "RemoveAllActionGroups"
}
],
"schedule": {
"timeZone": "India Standard Time",
"recurrences": [
{
"recurrenceType": "Weekly",
"startTime": "22:00:00",
"endTime": "04:00:00",
"daysOfWeek": [
"Saturday",
"Sunday"
]
}
]
},
"description": "Remove all ActionGroups from all Vitual machine Alerts during the recurring maintenance",
"enabled": true
}
}
from azure.identity import DefaultAzureCredential
from azure.mgmt.alertsmanagement import AlertsManagementClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-alertsmanagement
# USAGE
python alert_processing_rules_create_or_update_remove_all_action_groups_recurring_maintenance_window.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = AlertsManagementClient(
credential=DefaultAzureCredential(),
subscription_id="subId1",
)
response = client.alert_processing_rules.create_or_update(
resource_group_name="alertscorrelationrg",
alert_processing_rule_name="RemoveActionGroupsRecurringMaintenance",
alert_processing_rule={
"location": "Global",
"properties": {
"actions": [{"actionType": "RemoveAllActionGroups"}],
"conditions": [
{
"field": "TargetResourceType",
"operator": "Equals",
"values": ["microsoft.compute/virtualmachines"],
}
],
"description": "Remove all ActionGroups from all Vitual machine Alerts during the recurring maintenance",
"enabled": True,
"schedule": {
"recurrences": [
{
"daysOfWeek": ["Saturday", "Sunday"],
"endTime": "04:00:00",
"recurrenceType": "Weekly",
"startTime": "22:00:00",
}
],
"timeZone": "India Standard Time",
},
"scopes": ["/subscriptions/subId1/resourceGroups/RGId1", "/subscriptions/subId1/resourceGroups/RGId2"],
},
"tags": {},
},
)
print(response)
# x-ms-original-file: specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-08-08/examples/AlertProcessingRules_Create_or_update_remove_all_action_groups_recurring_maintenance_window.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armalertsmanagement_test
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/alertsmanagement/armalertsmanagement"
)
// Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/6d2438481021a94793b07b226df06d5f3c61d51d/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-08-08/examples/AlertProcessingRules_Create_or_update_remove_all_action_groups_recurring_maintenance_window.json
func ExampleAlertProcessingRulesClient_CreateOrUpdate_createOrUpdateARuleThatRemovesAllActionGroupsFromAllAlertsOnAnyVmInTwoResourceGroupsDuringARecurringMaintenanceWindow22000400EverySatAndSunIndiaStandardTime() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armalertsmanagement.NewClientFactory("<subscription-id>", cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewAlertProcessingRulesClient().CreateOrUpdate(ctx, "alertscorrelationrg", "RemoveActionGroupsRecurringMaintenance", armalertsmanagement.AlertProcessingRule{
Location: to.Ptr("Global"),
Tags: map[string]*string{},
Properties: &armalertsmanagement.AlertProcessingRuleProperties{
Description: to.Ptr("Remove all ActionGroups from all Vitual machine Alerts during the recurring maintenance"),
Actions: []armalertsmanagement.ActionClassification{
&armalertsmanagement.RemoveAllActionGroups{
ActionType: to.Ptr(armalertsmanagement.ActionTypeRemoveAllActionGroups),
}},
Conditions: []*armalertsmanagement.Condition{
{
Field: to.Ptr(armalertsmanagement.FieldTargetResourceType),
Operator: to.Ptr(armalertsmanagement.OperatorEquals),
Values: []*string{
to.Ptr("microsoft.compute/virtualmachines")},
}},
Enabled: to.Ptr(true),
Schedule: &armalertsmanagement.Schedule{
Recurrences: []armalertsmanagement.RecurrenceClassification{
&armalertsmanagement.WeeklyRecurrence{
EndTime: to.Ptr("04:00:00"),
RecurrenceType: to.Ptr(armalertsmanagement.RecurrenceTypeWeekly),
StartTime: to.Ptr("22:00:00"),
DaysOfWeek: []*armalertsmanagement.DaysOfWeek{
to.Ptr(armalertsmanagement.DaysOfWeekSaturday),
to.Ptr(armalertsmanagement.DaysOfWeekSunday)},
}},
TimeZone: to.Ptr("India Standard Time"),
},
Scopes: []*string{
to.Ptr("/subscriptions/subId1/resourceGroups/RGId1"),
to.Ptr("/subscriptions/subId1/resourceGroups/RGId2")},
},
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res.AlertProcessingRule = armalertsmanagement.AlertProcessingRule{
// Name: to.Ptr("RemoveActionGroupsRecurringMaintenance"),
// Type: to.Ptr("Microsoft.AlertsManagement/actionRules"),
// ID: to.Ptr("/subscriptions/subId1/resourceGroups/alertscorrelationrg/providers/Microsoft.AlertsManagement/actionRules/RemoveActionGroupsRecurringMaintenance"),
// Location: to.Ptr("Global"),
// Tags: map[string]*string{
// },
// Properties: &armalertsmanagement.AlertProcessingRuleProperties{
// Description: to.Ptr("Remove all ActionGroups from all Vitual machine Alerts during the recurring maintenance"),
// Actions: []armalertsmanagement.ActionClassification{
// &armalertsmanagement.RemoveAllActionGroups{
// ActionType: to.Ptr(armalertsmanagement.ActionTypeRemoveAllActionGroups),
// }},
// Conditions: []*armalertsmanagement.Condition{
// {
// Field: to.Ptr(armalertsmanagement.FieldTargetResourceType),
// Operator: to.Ptr(armalertsmanagement.OperatorEquals),
// Values: []*string{
// to.Ptr("microsoft.compute/virtualmachines")},
// }},
// Enabled: to.Ptr(true),
// Schedule: &armalertsmanagement.Schedule{
// Recurrences: []armalertsmanagement.RecurrenceClassification{
// &armalertsmanagement.WeeklyRecurrence{
// EndTime: to.Ptr("04:00:00"),
// RecurrenceType: to.Ptr(armalertsmanagement.RecurrenceTypeWeekly),
// StartTime: to.Ptr("22:00:00"),
// DaysOfWeek: []*armalertsmanagement.DaysOfWeek{
// to.Ptr(armalertsmanagement.DaysOfWeekSaturday),
// to.Ptr(armalertsmanagement.DaysOfWeekSunday)},
// }},
// TimeZone: to.Ptr("India Standard Time"),
// },
// Scopes: []*string{
// to.Ptr("/subscriptions/subId1/resourceGroups/RGId1"),
// to.Ptr("/subscriptions/subId1/resourceGroups/RGId2")},
// },
// SystemData: &armalertsmanagement.SystemData{
// CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-06-11T22:05:09.000Z"); return t}()),
// CreatedBy: to.Ptr("abc@microsoft.com"),
// CreatedByType: to.Ptr(armalertsmanagement.CreatedByTypeUser),
// LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-06-12T22:05:09.000Z"); return t}()),
// LastModifiedBy: to.Ptr("xyz@microsoft.com"),
// LastModifiedByType: to.Ptr(armalertsmanagement.CreatedByTypeUser),
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
using System;
using System.Threading.Tasks;
using Azure;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.AlertsManagement;
using Azure.ResourceManager.AlertsManagement.Models;
using Azure.ResourceManager.Resources;
// Generated from example definition: specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-08-08/examples/AlertProcessingRules_Create_or_update_remove_all_action_groups_recurring_maintenance_window.json
// this example is just showing the usage of "AlertProcessingRules_CreateOrUpdate" operation, for the dependent resources, they will have to be created separately.
// get your azure access token, for more details of how Azure SDK get your access token, please refer to https://video2.skills-academy.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line
TokenCredential cred = new DefaultAzureCredential();
// authenticate your client
ArmClient client = new ArmClient(cred);
// this example assumes you already have this ResourceGroupResource created on azure
// for more information of creating ResourceGroupResource, please refer to the document of ResourceGroupResource
string subscriptionId = "subId1";
string resourceGroupName = "alertscorrelationrg";
ResourceIdentifier resourceGroupResourceId = ResourceGroupResource.CreateResourceIdentifier(subscriptionId, resourceGroupName);
ResourceGroupResource resourceGroupResource = client.GetResourceGroupResource(resourceGroupResourceId);
// get the collection of this AlertProcessingRuleResource
AlertProcessingRuleCollection collection = resourceGroupResource.GetAlertProcessingRules();
// invoke the operation
string alertProcessingRuleName = "RemoveActionGroupsRecurringMaintenance";
AlertProcessingRuleData data = new AlertProcessingRuleData(new AzureLocation("Global"))
{
Properties = new AlertProcessingRuleProperties(new string[]
{
"/subscriptions/subId1/resourceGroups/RGId1","/subscriptions/subId1/resourceGroups/RGId2"
}, new AlertProcessingRuleAction[]
{
new AlertProcessingRuleRemoveAllGroupsAction()
})
{
Conditions =
{
new AlertProcessingRuleCondition()
{
Field = AlertProcessingRuleField.TargetResourceType,
Operator = AlertProcessingRuleOperator.EqualsValue,
Values =
{
"microsoft.compute/virtualmachines"
},
}
},
Schedule = new AlertProcessingRuleSchedule()
{
TimeZone = "India Standard Time",
Recurrences =
{
new AlertProcessingRuleWeeklyRecurrence(new AlertsManagementDayOfWeek[]
{
AlertsManagementDayOfWeek.Saturday,AlertsManagementDayOfWeek.Sunday
})
{
StartOn = TimeSpan.Parse("22:00:00"),
EndOn = TimeSpan.Parse("04:00:00"),
}
},
},
Description = "Remove all ActionGroups from all Vitual machine Alerts during the recurring maintenance",
IsEnabled = true,
},
Tags =
{
},
};
ArmOperation<AlertProcessingRuleResource> lro = await collection.CreateOrUpdateAsync(WaitUntil.Completed, alertProcessingRuleName, data);
AlertProcessingRuleResource result = lro.Value;
// the variable result is a resource, you could call other operations on this instance as well
// but just for demo, we get its data from this resource instance
AlertProcessingRuleData resourceData = result.Data;
// for demo we just print out the id
Console.WriteLine($"Succeeded on id: {resourceData.Id}");
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"systemData": {
"createdBy": "abc@microsoft.com",
"createdByType": "User",
"createdAt": "2018-06-11T22:05:09Z",
"lastModifiedBy": "xyz@microsoft.com",
"lastModifiedByType": "User",
"lastModifiedAt": "2018-06-12T22:05:09Z"
},
"properties": {
"scopes": [
"/subscriptions/subId1/resourceGroups/RGId1",
"/subscriptions/subId1/resourceGroups/RGId2"
],
"conditions": [
{
"field": "TargetResourceType",
"operator": "Equals",
"values": [
"microsoft.compute/virtualmachines"
]
}
],
"actions": [
{
"actionType": "RemoveAllActionGroups"
}
],
"schedule": {
"timeZone": "India Standard Time",
"recurrences": [
{
"recurrenceType": "Weekly",
"startTime": "22:00:00",
"endTime": "04:00:00",
"daysOfWeek": [
"Saturday",
"Sunday"
]
}
]
},
"description": "Remove all ActionGroups from all Vitual machine Alerts during the recurring maintenance",
"enabled": true
},
"id": "/subscriptions/subId1/resourceGroups/alertscorrelationrg/providers/Microsoft.AlertsManagement/actionRules/RemoveActionGroupsRecurringMaintenance",
"type": "Microsoft.AlertsManagement/actionRules",
"name": "RemoveActionGroupsRecurringMaintenance",
"location": "Global",
"tags": {}
}
{
"systemData": {
"createdBy": "abc@microsoft.com",
"createdByType": "User",
"createdAt": "2018-06-11T22:05:09Z",
"lastModifiedBy": "xyz@microsoft.com",
"lastModifiedByType": "User",
"lastModifiedAt": "2018-06-12T22:05:09Z"
},
"properties": {
"scopes": [
"/subscriptions/subId1/resourceGroups/RGId1",
"/subscriptions/subId1/resourceGroups/RGId2"
],
"conditions": [
{
"field": "TargetResourceType",
"operator": "Equals",
"values": [
"microsoft.compute/virtualmachines"
]
}
],
"actions": [
{
"actionType": "RemoveAllActionGroups"
}
],
"schedule": {
"timeZone": "India Standard Time",
"recurrences": [
{
"recurrenceType": "Weekly",
"startTime": "22:00:00",
"endTime": "04:00:00",
"daysOfWeek": [
"Saturday",
"Sunday"
]
}
]
},
"description": "Remove all ActionGroups from all Vitual machine Alerts during the recurring maintenance",
"enabled": true
},
"id": "/subscriptions/subId1/resourceGroups/alertscorrelationrg/providers/Microsoft.AlertsManagement/actionRules/RemoveActionGroupsRecurringMaintenance",
"type": "Microsoft.AlertsManagement/actionRules",
"name": "RemoveActionGroupsRecurringMaintenance",
"location": "Global",
"tags": {}
}
Create or update a rule that removes all action groups outside business hours (Mon-Fri 09:00-17:00, Eastern Standard Time)
Sample request
PUT https://management.azure.com/subscriptions/subId1/resourceGroups/alertscorrelationrg/providers/Microsoft.AlertsManagement/actionRules/RemoveActionGroupsOutsideBusinessHours?api-version=2021-08-08
{
"location": "Global",
"tags": {},
"properties": {
"scopes": [
"/subscriptions/subId1"
],
"actions": [
{
"actionType": "RemoveAllActionGroups"
}
],
"schedule": {
"timeZone": "Eastern Standard Time",
"recurrences": [
{
"recurrenceType": "Daily",
"startTime": "17:00:00",
"endTime": "09:00:00"
},
{
"recurrenceType": "Weekly",
"daysOfWeek": [
"Saturday",
"Sunday"
]
}
]
},
"description": "Remove all ActionGroups outside business hours",
"enabled": true
}
}
from azure.identity import DefaultAzureCredential
from azure.mgmt.alertsmanagement import AlertsManagementClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-alertsmanagement
# USAGE
python alert_processing_rules_create_or_update_remove_all_action_groups_outside_business_hours.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = AlertsManagementClient(
credential=DefaultAzureCredential(),
subscription_id="subId1",
)
response = client.alert_processing_rules.create_or_update(
resource_group_name="alertscorrelationrg",
alert_processing_rule_name="RemoveActionGroupsOutsideBusinessHours",
alert_processing_rule={
"location": "Global",
"properties": {
"actions": [{"actionType": "RemoveAllActionGroups"}],
"description": "Remove all ActionGroups outside business hours",
"enabled": True,
"schedule": {
"recurrences": [
{"endTime": "09:00:00", "recurrenceType": "Daily", "startTime": "17:00:00"},
{"daysOfWeek": ["Saturday", "Sunday"], "recurrenceType": "Weekly"},
],
"timeZone": "Eastern Standard Time",
},
"scopes": ["/subscriptions/subId1"],
},
"tags": {},
},
)
print(response)
# x-ms-original-file: specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-08-08/examples/AlertProcessingRules_Create_or_update_remove_all_action_groups_outside_business_hours.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armalertsmanagement_test
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/alertsmanagement/armalertsmanagement"
)
// Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/6d2438481021a94793b07b226df06d5f3c61d51d/specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-08-08/examples/AlertProcessingRules_Create_or_update_remove_all_action_groups_outside_business_hours.json
func ExampleAlertProcessingRulesClient_CreateOrUpdate_createOrUpdateARuleThatRemovesAllActionGroupsOutsideBusinessHoursMonFri09001700EasternStandardTime() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armalertsmanagement.NewClientFactory("<subscription-id>", cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewAlertProcessingRulesClient().CreateOrUpdate(ctx, "alertscorrelationrg", "RemoveActionGroupsOutsideBusinessHours", armalertsmanagement.AlertProcessingRule{
Location: to.Ptr("Global"),
Tags: map[string]*string{},
Properties: &armalertsmanagement.AlertProcessingRuleProperties{
Description: to.Ptr("Remove all ActionGroups outside business hours"),
Actions: []armalertsmanagement.ActionClassification{
&armalertsmanagement.RemoveAllActionGroups{
ActionType: to.Ptr(armalertsmanagement.ActionTypeRemoveAllActionGroups),
}},
Enabled: to.Ptr(true),
Schedule: &armalertsmanagement.Schedule{
Recurrences: []armalertsmanagement.RecurrenceClassification{
&armalertsmanagement.DailyRecurrence{
EndTime: to.Ptr("09:00:00"),
RecurrenceType: to.Ptr(armalertsmanagement.RecurrenceTypeDaily),
StartTime: to.Ptr("17:00:00"),
},
&armalertsmanagement.WeeklyRecurrence{
RecurrenceType: to.Ptr(armalertsmanagement.RecurrenceTypeWeekly),
DaysOfWeek: []*armalertsmanagement.DaysOfWeek{
to.Ptr(armalertsmanagement.DaysOfWeekSaturday),
to.Ptr(armalertsmanagement.DaysOfWeekSunday)},
}},
TimeZone: to.Ptr("Eastern Standard Time"),
},
Scopes: []*string{
to.Ptr("/subscriptions/subId1")},
},
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res.AlertProcessingRule = armalertsmanagement.AlertProcessingRule{
// Name: to.Ptr("RemoveActionGroupsOutsideBusinessHours"),
// Type: to.Ptr("Microsoft.AlertsManagement/actionRules"),
// ID: to.Ptr("/subscriptions/subId1/resourceGroups/alertscorrelationrg/providers/Microsoft.AlertsManagement/actionRules/RemoveActionGroupsOutsideBusinessHours"),
// Location: to.Ptr("Global"),
// Tags: map[string]*string{
// },
// Properties: &armalertsmanagement.AlertProcessingRuleProperties{
// Description: to.Ptr("Remove all ActionGroups outside business hours"),
// Actions: []armalertsmanagement.ActionClassification{
// &armalertsmanagement.RemoveAllActionGroups{
// ActionType: to.Ptr(armalertsmanagement.ActionTypeRemoveAllActionGroups),
// }},
// Enabled: to.Ptr(true),
// Schedule: &armalertsmanagement.Schedule{
// Recurrences: []armalertsmanagement.RecurrenceClassification{
// &armalertsmanagement.DailyRecurrence{
// EndTime: to.Ptr("09:00:00"),
// RecurrenceType: to.Ptr(armalertsmanagement.RecurrenceTypeDaily),
// StartTime: to.Ptr("17:00:00"),
// },
// &armalertsmanagement.WeeklyRecurrence{
// RecurrenceType: to.Ptr(armalertsmanagement.RecurrenceTypeWeekly),
// DaysOfWeek: []*armalertsmanagement.DaysOfWeek{
// to.Ptr(armalertsmanagement.DaysOfWeekSaturday),
// to.Ptr(armalertsmanagement.DaysOfWeekSunday)},
// }},
// TimeZone: to.Ptr("Eastern Standard Time"),
// },
// Scopes: []*string{
// to.Ptr("/subscriptions/subId1")},
// },
// SystemData: &armalertsmanagement.SystemData{
// CreatedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-06-11T22:05:09.000Z"); return t}()),
// CreatedBy: to.Ptr("abc@microsoft.com"),
// CreatedByType: to.Ptr(armalertsmanagement.CreatedByTypeUser),
// LastModifiedAt: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2018-06-12T22:05:09.000Z"); return t}()),
// LastModifiedBy: to.Ptr("xyz@microsoft.com"),
// LastModifiedByType: to.Ptr(armalertsmanagement.CreatedByTypeUser),
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
using System;
using System.Threading.Tasks;
using Azure;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.AlertsManagement;
using Azure.ResourceManager.AlertsManagement.Models;
using Azure.ResourceManager.Resources;
// Generated from example definition: specification/alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2021-08-08/examples/AlertProcessingRules_Create_or_update_remove_all_action_groups_outside_business_hours.json
// this example is just showing the usage of "AlertProcessingRules_CreateOrUpdate" operation, for the dependent resources, they will have to be created separately.
// get your azure access token, for more details of how Azure SDK get your access token, please refer to https://video2.skills-academy.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line
TokenCredential cred = new DefaultAzureCredential();
// authenticate your client
ArmClient client = new ArmClient(cred);
// this example assumes you already have this ResourceGroupResource created on azure
// for more information of creating ResourceGroupResource, please refer to the document of ResourceGroupResource
string subscriptionId = "subId1";
string resourceGroupName = "alertscorrelationrg";
ResourceIdentifier resourceGroupResourceId = ResourceGroupResource.CreateResourceIdentifier(subscriptionId, resourceGroupName);
ResourceGroupResource resourceGroupResource = client.GetResourceGroupResource(resourceGroupResourceId);
// get the collection of this AlertProcessingRuleResource
AlertProcessingRuleCollection collection = resourceGroupResource.GetAlertProcessingRules();
// invoke the operation
string alertProcessingRuleName = "RemoveActionGroupsOutsideBusinessHours";
AlertProcessingRuleData data = new AlertProcessingRuleData(new AzureLocation("Global"))
{
Properties = new AlertProcessingRuleProperties(new string[]
{
"/subscriptions/subId1"
}, new AlertProcessingRuleAction[]
{
new AlertProcessingRuleRemoveAllGroupsAction()
})
{
Schedule = new AlertProcessingRuleSchedule()
{
TimeZone = "Eastern Standard Time",
Recurrences =
{
new DailyRecurrence()
{
StartOn = TimeSpan.Parse("17:00:00"),
EndOn = TimeSpan.Parse("09:00:00"),
},new AlertProcessingRuleWeeklyRecurrence(new AlertsManagementDayOfWeek[]
{
AlertsManagementDayOfWeek.Saturday,AlertsManagementDayOfWeek.Sunday
})
},
},
Description = "Remove all ActionGroups outside business hours",
IsEnabled = true,
},
Tags =
{
},
};
ArmOperation<AlertProcessingRuleResource> lro = await collection.CreateOrUpdateAsync(WaitUntil.Completed, alertProcessingRuleName, data);
AlertProcessingRuleResource result = lro.Value;
// the variable result is a resource, you could call other operations on this instance as well
// but just for demo, we get its data from this resource instance
AlertProcessingRuleData resourceData = result.Data;
// for demo we just print out the id
Console.WriteLine($"Succeeded on id: {resourceData.Id}");
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"systemData": {
"createdBy": "abc@microsoft.com",
"createdByType": "User",
"createdAt": "2018-06-11T22:05:09Z",
"lastModifiedBy": "xyz@microsoft.com",
"lastModifiedByType": "User",
"lastModifiedAt": "2018-06-12T22:05:09Z"
},
"properties": {
"scopes": [
"/subscriptions/subId1"
],
"actions": [
{
"actionType": "RemoveAllActionGroups"
}
],
"schedule": {
"timeZone": "Eastern Standard Time",
"recurrences": [
{
"recurrenceType": "Daily",
"startTime": "17:00:00",
"endTime": "09:00:00"
},
{
"recurrenceType": "Weekly",
"daysOfWeek": [
"Saturday",
"Sunday"
]
}
]
},
"description": "Remove all ActionGroups outside business hours",
"enabled": true
},
"id": "/subscriptions/subId1/resourceGroups/alertscorrelationrg/providers/Microsoft.AlertsManagement/actionRules/RemoveActionGroupsOutsideBusinessHours",
"type": "Microsoft.AlertsManagement/actionRules",
"name": "RemoveActionGroupsOutsideBusinessHours",
"location": "Global",
"tags": {}
}
{
"systemData": {
"createdBy": "abc@microsoft.com",
"createdByType": "User",
"createdAt": "2018-06-11T22:05:09Z",
"lastModifiedBy": "xyz@microsoft.com",
"lastModifiedByType": "User",
"lastModifiedAt": "2018-06-12T22:05:09Z"
},
"properties": {
"scopes": [
"/subscriptions/subId1"
],
"actions": [
{
"actionType": "RemoveAllActionGroups"
}
],
"schedule": {
"timeZone": "Eastern Standard Time",
"recurrences": [
{
"recurrenceType": "Daily",
"startTime": "17:00:00",
"endTime": "09:00:00"
},
{
"recurrenceType": "Weekly",
"daysOfWeek": [
"Saturday",
"Sunday"
]
}
]
},
"description": "Remove all ActionGroups outside business hours",
"enabled": true
},
"id": "/subscriptions/subId1/resourceGroups/alertscorrelationrg/providers/Microsoft.AlertsManagement/actionRules/RemoveActionGroupsOutsideBusinessHours",
"type": "Microsoft.AlertsManagement/actionRules",
"name": "RemoveActionGroupsOutsideBusinessHours",
"location": "Global",
"tags": {}
}
Definitions
AddActionGroups
Add action groups to alert processing rule.
Name |
Type |
Description |
actionGroupIds
|
string[]
|
List of action group Ids to add to alert processing rule.
|
actionType
|
string:
AddActionGroups
|
Action that should be applied.
|
AlertProcessingRule
Alert processing rule object containing target scopes, conditions and scheduling logic.
Name |
Type |
Description |
id
|
string
|
Azure resource Id
|
location
|
string
|
Resource location
|
name
|
string
|
Azure resource name
|
properties
|
AlertProcessingRuleProperties
|
Alert processing rule properties.
|
systemData
|
systemData
|
Alert processing rule system data.
|
tags
|
object
|
Resource tags
|
type
|
string
|
Azure resource type
|
AlertProcessingRuleProperties
Alert processing rule properties defining scopes, conditions and scheduling logic for alert processing rule.
Name |
Type |
Default value |
Description |
actions
|
Action[]:
|
|
Actions to be applied.
|
conditions
|
Condition[]
|
|
Conditions on which alerts will be filtered.
|
description
|
string
|
|
Description of alert processing rule.
|
enabled
|
boolean
|
True
|
Indicates if the given alert processing rule is enabled or disabled.
|
schedule
|
Schedule
|
|
Scheduling for alert processing rule.
|
scopes
|
string[]
|
|
Scopes on which alert processing rule will apply.
|
api-version
Client API version.
Name |
Type |
Description |
2021-08-08
|
string
|
|
Condition
Condition to trigger an alert processing rule.
Name |
Type |
Description |
field
|
Field
|
Field for a given condition.
|
operator
|
Operator
|
Operator for a given condition.
|
values
|
string[]
|
List of values to match for a given condition.
|
createdByType
The type of identity that created the resource.
Name |
Type |
Description |
Application
|
string
|
|
Key
|
string
|
|
ManagedIdentity
|
string
|
|
User
|
string
|
|
DailyRecurrence
Daily recurrence object.
Name |
Type |
Description |
endTime
|
string
|
End time for recurrence.
|
recurrenceType
|
string:
Daily
|
Specifies when the recurrence should be applied.
|
startTime
|
string
|
Start time for recurrence.
|
DaysOfWeek
Days of week.
Name |
Type |
Description |
Friday
|
string
|
|
Monday
|
string
|
|
Saturday
|
string
|
|
Sunday
|
string
|
|
Thursday
|
string
|
|
Tuesday
|
string
|
|
Wednesday
|
string
|
|
errorResponse
An error response from the service.
errorResponseBody
Details of error response.
Name |
Type |
Description |
code
|
string
|
Error code, intended to be consumed programmatically.
|
details
|
errorResponseBody[]
|
A list of additional details about the error.
|
message
|
string
|
Description of the error, intended for display in user interface.
|
target
|
string
|
Target of the particular error, for example name of the property.
|
Field
Field for a given condition.
Name |
Type |
Description |
AlertContext
|
string
|
|
AlertRuleId
|
string
|
|
AlertRuleName
|
string
|
|
Description
|
string
|
|
MonitorCondition
|
string
|
|
MonitorService
|
string
|
|
Severity
|
string
|
|
SignalType
|
string
|
|
TargetResource
|
string
|
|
TargetResourceGroup
|
string
|
|
TargetResourceType
|
string
|
|
MonthlyRecurrence
Monthly recurrence object.
Name |
Type |
Description |
daysOfMonth
|
integer[]
|
Specifies the values for monthly recurrence pattern.
|
endTime
|
string
|
End time for recurrence.
|
recurrenceType
|
string:
Monthly
|
Specifies when the recurrence should be applied.
|
startTime
|
string
|
Start time for recurrence.
|
Operator
Operator for a given condition.
Name |
Type |
Description |
Contains
|
string
|
|
DoesNotContain
|
string
|
|
Equals
|
string
|
|
NotEquals
|
string
|
|
RemoveAllActionGroups
Indicates if all action groups should be removed.
Schedule
Scheduling configuration for a given alert processing rule.
Name |
Type |
Description |
effectiveFrom
|
string
|
Scheduling effective from time. Date-Time in ISO-8601 format without timezone suffix.
|
effectiveUntil
|
string
|
Scheduling effective until time. Date-Time in ISO-8601 format without timezone suffix.
|
recurrences
|
Recurrence[]:
|
List of recurrences.
|
timeZone
|
string
|
Scheduling time zone.
|
systemData
Metadata pertaining to creation and last modification of the resource.
Name |
Type |
Description |
createdAt
|
string
|
The timestamp of resource creation (UTC).
|
createdBy
|
string
|
The identity that created the resource.
|
createdByType
|
createdByType
|
The type of identity that created the resource.
|
lastModifiedAt
|
string
|
The timestamp of resource last modification (UTC)
|
lastModifiedBy
|
string
|
The identity that last modified the resource.
|
lastModifiedByType
|
createdByType
|
The type of identity that last modified the resource.
|
WeeklyRecurrence
Weekly recurrence object.
Name |
Type |
Description |
daysOfWeek
|
DaysOfWeek[]
|
Specifies the values for weekly recurrence pattern.
|
endTime
|
string
|
End time for recurrence.
|
recurrenceType
|
string:
Weekly
|
Specifies when the recurrence should be applied.
|
startTime
|
string
|
Start time for recurrence.
|