putAlarmMuteRule method
Creates or updates an alarm mute rule.
Alarm mute rules automatically mute alarm actions during predefined time windows. When a mute rule is active, targeted alarms continue to evaluate metrics and transition between states, but their configured actions (such as Amazon SNS notifications or Auto Scaling actions) are muted.
You can create mute rules with recurring schedules using cron
expressions or one-time mute windows using at expressions.
Each mute rule can target up to 100 specific alarms by name.
If you specify a rule name that already exists, this operation updates the existing rule with the new configuration.
Permissions
To create or update a mute rule, you must have the
cloudwatch:PutAlarmMuteRule permission on two types of
resources: the alarm mute rule resource itself, and each alarm that the
rule targets.
For example, If you want to allow a user to create mute rules that target
only specific alarms named "WebServerCPUAlarm" and
"DatabaseConnectionAlarm", you would create an IAM policy with one
statement granting cloudwatch:PutAlarmMuteRule on the alarm
mute rule resource
(arn:aws:cloudwatch:[REGION]:123456789012:alarm-mute-rule:*),
and another statement granting cloudwatch:PutAlarmMuteRule on
the targeted alarm resources
(arn:aws:cloudwatch:[REGION]:123456789012:alarm:WebServerCPUAlarm
and
arn:aws:cloudwatch:[REGION]:123456789012:alarm:DatabaseConnectionAlarm).
You can also use IAM policy conditions to allow targeting alarms based on
resource tags. For example, you can restrict users to create/update mute
rules to only target alarms that have a specific tag key-value pair, such
as Team=TeamA.
May throw LimitExceededFault.
Parameter name :
The name of the alarm mute rule. This name must be unique within your
Amazon Web Services account and region.
Parameter rule :
The configuration that defines when and how long alarms should be muted.
Parameter description :
A description of the alarm mute rule that helps you identify its purpose.
Parameter expireDate :
The date and time when the mute rule expires and is no longer evaluated,
specified as a timestamp in ISO 8601 format (for example,
2026-12-31T23:59:59Z). After this time, the rule status
becomes EXPIRED and will no longer mute the targeted alarms.
Parameter muteTargets :
Specifies which alarms this rule applies to.
Parameter startDate :
The date and time after which the mute rule takes effect, specified as a
timestamp in ISO 8601 format (for example,
2026-04-15T08:00:00Z). If not specified, the mute rule takes
effect immediately upon creation and the mutes are applied as per the
schedule expression.
Parameter tags :
A list of key-value pairs to associate with the alarm mute rule. You can
use tags to categorize and manage your mute rules.
Implementation
Future<void> putAlarmMuteRule({
required String name,
required Rule rule,
String? description,
DateTime? expireDate,
MuteTargets? muteTargets,
DateTime? startDate,
List<Tag>? tags,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.0',
'X-Amz-Target': 'GraniteServiceVersion20100801.PutAlarmMuteRule'
};
await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'Name': name,
'Rule': rule,
if (description != null) 'Description': description,
if (expireDate != null) 'ExpireDate': unixTimestampToJson(expireDate),
if (muteTargets != null) 'MuteTargets': muteTargets,
if (startDate != null) 'StartDate': unixTimestampToJson(startDate),
if (tags != null) 'Tags': tags,
},
);
}