/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace CloudWatch { namespace Model { /** */ class PutMetricAlarmRequest : public CloudWatchRequest { public: AWS_CLOUDWATCH_API PutMetricAlarmRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "PutMetricAlarm"; } AWS_CLOUDWATCH_API Aws::String SerializePayload() const override; protected: AWS_CLOUDWATCH_API void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

The name for the alarm. This name must be unique within the Region.

*

The name must contain only UTF-8 characters, and can't contain ASCII control * characters

*/ inline const Aws::String& GetAlarmName() const{ return m_alarmName; } /** *

The name for the alarm. This name must be unique within the Region.

*

The name must contain only UTF-8 characters, and can't contain ASCII control * characters

*/ inline bool AlarmNameHasBeenSet() const { return m_alarmNameHasBeenSet; } /** *

The name for the alarm. This name must be unique within the Region.

*

The name must contain only UTF-8 characters, and can't contain ASCII control * characters

*/ inline void SetAlarmName(const Aws::String& value) { m_alarmNameHasBeenSet = true; m_alarmName = value; } /** *

The name for the alarm. This name must be unique within the Region.

*

The name must contain only UTF-8 characters, and can't contain ASCII control * characters

*/ inline void SetAlarmName(Aws::String&& value) { m_alarmNameHasBeenSet = true; m_alarmName = std::move(value); } /** *

The name for the alarm. This name must be unique within the Region.

*

The name must contain only UTF-8 characters, and can't contain ASCII control * characters

*/ inline void SetAlarmName(const char* value) { m_alarmNameHasBeenSet = true; m_alarmName.assign(value); } /** *

The name for the alarm. This name must be unique within the Region.

*

The name must contain only UTF-8 characters, and can't contain ASCII control * characters

*/ inline PutMetricAlarmRequest& WithAlarmName(const Aws::String& value) { SetAlarmName(value); return *this;} /** *

The name for the alarm. This name must be unique within the Region.

*

The name must contain only UTF-8 characters, and can't contain ASCII control * characters

*/ inline PutMetricAlarmRequest& WithAlarmName(Aws::String&& value) { SetAlarmName(std::move(value)); return *this;} /** *

The name for the alarm. This name must be unique within the Region.

*

The name must contain only UTF-8 characters, and can't contain ASCII control * characters

*/ inline PutMetricAlarmRequest& WithAlarmName(const char* value) { SetAlarmName(value); return *this;} /** *

The description for the alarm.

*/ inline const Aws::String& GetAlarmDescription() const{ return m_alarmDescription; } /** *

The description for the alarm.

*/ inline bool AlarmDescriptionHasBeenSet() const { return m_alarmDescriptionHasBeenSet; } /** *

The description for the alarm.

*/ inline void SetAlarmDescription(const Aws::String& value) { m_alarmDescriptionHasBeenSet = true; m_alarmDescription = value; } /** *

The description for the alarm.

*/ inline void SetAlarmDescription(Aws::String&& value) { m_alarmDescriptionHasBeenSet = true; m_alarmDescription = std::move(value); } /** *

The description for the alarm.

*/ inline void SetAlarmDescription(const char* value) { m_alarmDescriptionHasBeenSet = true; m_alarmDescription.assign(value); } /** *

The description for the alarm.

*/ inline PutMetricAlarmRequest& WithAlarmDescription(const Aws::String& value) { SetAlarmDescription(value); return *this;} /** *

The description for the alarm.

*/ inline PutMetricAlarmRequest& WithAlarmDescription(Aws::String&& value) { SetAlarmDescription(std::move(value)); return *this;} /** *

The description for the alarm.

*/ inline PutMetricAlarmRequest& WithAlarmDescription(const char* value) { SetAlarmDescription(value); return *this;} /** *

Indicates whether actions should be executed during any changes to the alarm * state. The default is TRUE.

*/ inline bool GetActionsEnabled() const{ return m_actionsEnabled; } /** *

Indicates whether actions should be executed during any changes to the alarm * state. The default is TRUE.

*/ inline bool ActionsEnabledHasBeenSet() const { return m_actionsEnabledHasBeenSet; } /** *

Indicates whether actions should be executed during any changes to the alarm * state. The default is TRUE.

*/ inline void SetActionsEnabled(bool value) { m_actionsEnabledHasBeenSet = true; m_actionsEnabled = value; } /** *

Indicates whether actions should be executed during any changes to the alarm * state. The default is TRUE.

*/ inline PutMetricAlarmRequest& WithActionsEnabled(bool value) { SetActionsEnabled(value); return *this;} /** *

The actions to execute when this alarm transitions to an OK * state from any other state. Each action is specified as an Amazon Resource Name * (ARN). Valid values:

EC2 actions:

  • * arn:aws:automate:region:ec2:stop

  • * arn:aws:automate:region:ec2:terminate

  • * arn:aws:automate:region:ec2:reboot

  • * arn:aws:automate:region:ec2:recover

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0 *

Autoscaling action:

  • * arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SNS notification action:

  • * arn:aws:sns:region:account-id:sns-topic-name:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SSM integration actions:

  • * arn:aws:ssm:region:account-id:opsitem:severity#CATEGORY=category-name *

  • * arn:aws:ssm-incidents::account-id:responseplan/response-plan-name *

*/ inline const Aws::Vector& GetOKActions() const{ return m_oKActions; } /** *

The actions to execute when this alarm transitions to an OK * state from any other state. Each action is specified as an Amazon Resource Name * (ARN). Valid values:

EC2 actions:

  • * arn:aws:automate:region:ec2:stop

  • * arn:aws:automate:region:ec2:terminate

  • * arn:aws:automate:region:ec2:reboot

  • * arn:aws:automate:region:ec2:recover

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0 *

Autoscaling action:

  • * arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SNS notification action:

  • * arn:aws:sns:region:account-id:sns-topic-name:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SSM integration actions:

  • * arn:aws:ssm:region:account-id:opsitem:severity#CATEGORY=category-name *

  • * arn:aws:ssm-incidents::account-id:responseplan/response-plan-name *

*/ inline bool OKActionsHasBeenSet() const { return m_oKActionsHasBeenSet; } /** *

The actions to execute when this alarm transitions to an OK * state from any other state. Each action is specified as an Amazon Resource Name * (ARN). Valid values:

EC2 actions:

  • * arn:aws:automate:region:ec2:stop

  • * arn:aws:automate:region:ec2:terminate

  • * arn:aws:automate:region:ec2:reboot

  • * arn:aws:automate:region:ec2:recover

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0 *

Autoscaling action:

  • * arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SNS notification action:

  • * arn:aws:sns:region:account-id:sns-topic-name:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SSM integration actions:

  • * arn:aws:ssm:region:account-id:opsitem:severity#CATEGORY=category-name *

  • * arn:aws:ssm-incidents::account-id:responseplan/response-plan-name *

*/ inline void SetOKActions(const Aws::Vector& value) { m_oKActionsHasBeenSet = true; m_oKActions = value; } /** *

The actions to execute when this alarm transitions to an OK * state from any other state. Each action is specified as an Amazon Resource Name * (ARN). Valid values:

EC2 actions:

  • * arn:aws:automate:region:ec2:stop

  • * arn:aws:automate:region:ec2:terminate

  • * arn:aws:automate:region:ec2:reboot

  • * arn:aws:automate:region:ec2:recover

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0 *

Autoscaling action:

  • * arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SNS notification action:

  • * arn:aws:sns:region:account-id:sns-topic-name:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SSM integration actions:

  • * arn:aws:ssm:region:account-id:opsitem:severity#CATEGORY=category-name *

  • * arn:aws:ssm-incidents::account-id:responseplan/response-plan-name *

*/ inline void SetOKActions(Aws::Vector&& value) { m_oKActionsHasBeenSet = true; m_oKActions = std::move(value); } /** *

The actions to execute when this alarm transitions to an OK * state from any other state. Each action is specified as an Amazon Resource Name * (ARN). Valid values:

EC2 actions:

  • * arn:aws:automate:region:ec2:stop

  • * arn:aws:automate:region:ec2:terminate

  • * arn:aws:automate:region:ec2:reboot

  • * arn:aws:automate:region:ec2:recover

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0 *

Autoscaling action:

  • * arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SNS notification action:

  • * arn:aws:sns:region:account-id:sns-topic-name:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SSM integration actions:

  • * arn:aws:ssm:region:account-id:opsitem:severity#CATEGORY=category-name *

  • * arn:aws:ssm-incidents::account-id:responseplan/response-plan-name *

*/ inline PutMetricAlarmRequest& WithOKActions(const Aws::Vector& value) { SetOKActions(value); return *this;} /** *

The actions to execute when this alarm transitions to an OK * state from any other state. Each action is specified as an Amazon Resource Name * (ARN). Valid values:

EC2 actions:

  • * arn:aws:automate:region:ec2:stop

  • * arn:aws:automate:region:ec2:terminate

  • * arn:aws:automate:region:ec2:reboot

  • * arn:aws:automate:region:ec2:recover

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0 *

Autoscaling action:

  • * arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SNS notification action:

  • * arn:aws:sns:region:account-id:sns-topic-name:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SSM integration actions:

  • * arn:aws:ssm:region:account-id:opsitem:severity#CATEGORY=category-name *

  • * arn:aws:ssm-incidents::account-id:responseplan/response-plan-name *

*/ inline PutMetricAlarmRequest& WithOKActions(Aws::Vector&& value) { SetOKActions(std::move(value)); return *this;} /** *

The actions to execute when this alarm transitions to an OK * state from any other state. Each action is specified as an Amazon Resource Name * (ARN). Valid values:

EC2 actions:

  • * arn:aws:automate:region:ec2:stop

  • * arn:aws:automate:region:ec2:terminate

  • * arn:aws:automate:region:ec2:reboot

  • * arn:aws:automate:region:ec2:recover

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0 *

Autoscaling action:

  • * arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SNS notification action:

  • * arn:aws:sns:region:account-id:sns-topic-name:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SSM integration actions:

  • * arn:aws:ssm:region:account-id:opsitem:severity#CATEGORY=category-name *

  • * arn:aws:ssm-incidents::account-id:responseplan/response-plan-name *

*/ inline PutMetricAlarmRequest& AddOKActions(const Aws::String& value) { m_oKActionsHasBeenSet = true; m_oKActions.push_back(value); return *this; } /** *

The actions to execute when this alarm transitions to an OK * state from any other state. Each action is specified as an Amazon Resource Name * (ARN). Valid values:

EC2 actions:

  • * arn:aws:automate:region:ec2:stop

  • * arn:aws:automate:region:ec2:terminate

  • * arn:aws:automate:region:ec2:reboot

  • * arn:aws:automate:region:ec2:recover

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0 *

Autoscaling action:

  • * arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SNS notification action:

  • * arn:aws:sns:region:account-id:sns-topic-name:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SSM integration actions:

  • * arn:aws:ssm:region:account-id:opsitem:severity#CATEGORY=category-name *

  • * arn:aws:ssm-incidents::account-id:responseplan/response-plan-name *

*/ inline PutMetricAlarmRequest& AddOKActions(Aws::String&& value) { m_oKActionsHasBeenSet = true; m_oKActions.push_back(std::move(value)); return *this; } /** *

The actions to execute when this alarm transitions to an OK * state from any other state. Each action is specified as an Amazon Resource Name * (ARN). Valid values:

EC2 actions:

  • * arn:aws:automate:region:ec2:stop

  • * arn:aws:automate:region:ec2:terminate

  • * arn:aws:automate:region:ec2:reboot

  • * arn:aws:automate:region:ec2:recover

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0 *

Autoscaling action:

  • * arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SNS notification action:

  • * arn:aws:sns:region:account-id:sns-topic-name:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SSM integration actions:

  • * arn:aws:ssm:region:account-id:opsitem:severity#CATEGORY=category-name *

  • * arn:aws:ssm-incidents::account-id:responseplan/response-plan-name *

*/ inline PutMetricAlarmRequest& AddOKActions(const char* value) { m_oKActionsHasBeenSet = true; m_oKActions.push_back(value); return *this; } /** *

The actions to execute when this alarm transitions to the ALARM * state from any other state. Each action is specified as an Amazon Resource Name * (ARN). Valid values:

EC2 actions:

  • * arn:aws:automate:region:ec2:stop

  • * arn:aws:automate:region:ec2:terminate

  • * arn:aws:automate:region:ec2:reboot

  • * arn:aws:automate:region:ec2:recover

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0 *

Autoscaling action:

  • * arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SNS notification action:

  • * arn:aws:sns:region:account-id:sns-topic-name:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SSM integration actions:

  • * arn:aws:ssm:region:account-id:opsitem:severity#CATEGORY=category-name *

  • * arn:aws:ssm-incidents::account-id:responseplan/response-plan-name *

*/ inline const Aws::Vector& GetAlarmActions() const{ return m_alarmActions; } /** *

The actions to execute when this alarm transitions to the ALARM * state from any other state. Each action is specified as an Amazon Resource Name * (ARN). Valid values:

EC2 actions:

  • * arn:aws:automate:region:ec2:stop

  • * arn:aws:automate:region:ec2:terminate

  • * arn:aws:automate:region:ec2:reboot

  • * arn:aws:automate:region:ec2:recover

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0 *

Autoscaling action:

  • * arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SNS notification action:

  • * arn:aws:sns:region:account-id:sns-topic-name:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SSM integration actions:

  • * arn:aws:ssm:region:account-id:opsitem:severity#CATEGORY=category-name *

  • * arn:aws:ssm-incidents::account-id:responseplan/response-plan-name *

*/ inline bool AlarmActionsHasBeenSet() const { return m_alarmActionsHasBeenSet; } /** *

The actions to execute when this alarm transitions to the ALARM * state from any other state. Each action is specified as an Amazon Resource Name * (ARN). Valid values:

EC2 actions:

  • * arn:aws:automate:region:ec2:stop

  • * arn:aws:automate:region:ec2:terminate

  • * arn:aws:automate:region:ec2:reboot

  • * arn:aws:automate:region:ec2:recover

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0 *

Autoscaling action:

  • * arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SNS notification action:

  • * arn:aws:sns:region:account-id:sns-topic-name:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SSM integration actions:

  • * arn:aws:ssm:region:account-id:opsitem:severity#CATEGORY=category-name *

  • * arn:aws:ssm-incidents::account-id:responseplan/response-plan-name *

*/ inline void SetAlarmActions(const Aws::Vector& value) { m_alarmActionsHasBeenSet = true; m_alarmActions = value; } /** *

The actions to execute when this alarm transitions to the ALARM * state from any other state. Each action is specified as an Amazon Resource Name * (ARN). Valid values:

EC2 actions:

  • * arn:aws:automate:region:ec2:stop

  • * arn:aws:automate:region:ec2:terminate

  • * arn:aws:automate:region:ec2:reboot

  • * arn:aws:automate:region:ec2:recover

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0 *

Autoscaling action:

  • * arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SNS notification action:

  • * arn:aws:sns:region:account-id:sns-topic-name:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SSM integration actions:

  • * arn:aws:ssm:region:account-id:opsitem:severity#CATEGORY=category-name *

  • * arn:aws:ssm-incidents::account-id:responseplan/response-plan-name *

*/ inline void SetAlarmActions(Aws::Vector&& value) { m_alarmActionsHasBeenSet = true; m_alarmActions = std::move(value); } /** *

The actions to execute when this alarm transitions to the ALARM * state from any other state. Each action is specified as an Amazon Resource Name * (ARN). Valid values:

EC2 actions:

  • * arn:aws:automate:region:ec2:stop

  • * arn:aws:automate:region:ec2:terminate

  • * arn:aws:automate:region:ec2:reboot

  • * arn:aws:automate:region:ec2:recover

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0 *

Autoscaling action:

  • * arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SNS notification action:

  • * arn:aws:sns:region:account-id:sns-topic-name:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SSM integration actions:

  • * arn:aws:ssm:region:account-id:opsitem:severity#CATEGORY=category-name *

  • * arn:aws:ssm-incidents::account-id:responseplan/response-plan-name *

*/ inline PutMetricAlarmRequest& WithAlarmActions(const Aws::Vector& value) { SetAlarmActions(value); return *this;} /** *

The actions to execute when this alarm transitions to the ALARM * state from any other state. Each action is specified as an Amazon Resource Name * (ARN). Valid values:

EC2 actions:

  • * arn:aws:automate:region:ec2:stop

  • * arn:aws:automate:region:ec2:terminate

  • * arn:aws:automate:region:ec2:reboot

  • * arn:aws:automate:region:ec2:recover

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0 *

Autoscaling action:

  • * arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SNS notification action:

  • * arn:aws:sns:region:account-id:sns-topic-name:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SSM integration actions:

  • * arn:aws:ssm:region:account-id:opsitem:severity#CATEGORY=category-name *

  • * arn:aws:ssm-incidents::account-id:responseplan/response-plan-name *

*/ inline PutMetricAlarmRequest& WithAlarmActions(Aws::Vector&& value) { SetAlarmActions(std::move(value)); return *this;} /** *

The actions to execute when this alarm transitions to the ALARM * state from any other state. Each action is specified as an Amazon Resource Name * (ARN). Valid values:

EC2 actions:

  • * arn:aws:automate:region:ec2:stop

  • * arn:aws:automate:region:ec2:terminate

  • * arn:aws:automate:region:ec2:reboot

  • * arn:aws:automate:region:ec2:recover

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0 *

Autoscaling action:

  • * arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SNS notification action:

  • * arn:aws:sns:region:account-id:sns-topic-name:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SSM integration actions:

  • * arn:aws:ssm:region:account-id:opsitem:severity#CATEGORY=category-name *

  • * arn:aws:ssm-incidents::account-id:responseplan/response-plan-name *

*/ inline PutMetricAlarmRequest& AddAlarmActions(const Aws::String& value) { m_alarmActionsHasBeenSet = true; m_alarmActions.push_back(value); return *this; } /** *

The actions to execute when this alarm transitions to the ALARM * state from any other state. Each action is specified as an Amazon Resource Name * (ARN). Valid values:

EC2 actions:

  • * arn:aws:automate:region:ec2:stop

  • * arn:aws:automate:region:ec2:terminate

  • * arn:aws:automate:region:ec2:reboot

  • * arn:aws:automate:region:ec2:recover

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0 *

Autoscaling action:

  • * arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SNS notification action:

  • * arn:aws:sns:region:account-id:sns-topic-name:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SSM integration actions:

  • * arn:aws:ssm:region:account-id:opsitem:severity#CATEGORY=category-name *

  • * arn:aws:ssm-incidents::account-id:responseplan/response-plan-name *

*/ inline PutMetricAlarmRequest& AddAlarmActions(Aws::String&& value) { m_alarmActionsHasBeenSet = true; m_alarmActions.push_back(std::move(value)); return *this; } /** *

The actions to execute when this alarm transitions to the ALARM * state from any other state. Each action is specified as an Amazon Resource Name * (ARN). Valid values:

EC2 actions:

  • * arn:aws:automate:region:ec2:stop

  • * arn:aws:automate:region:ec2:terminate

  • * arn:aws:automate:region:ec2:reboot

  • * arn:aws:automate:region:ec2:recover

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0 *

Autoscaling action:

  • * arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SNS notification action:

  • * arn:aws:sns:region:account-id:sns-topic-name:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SSM integration actions:

  • * arn:aws:ssm:region:account-id:opsitem:severity#CATEGORY=category-name *

  • * arn:aws:ssm-incidents::account-id:responseplan/response-plan-name *

*/ inline PutMetricAlarmRequest& AddAlarmActions(const char* value) { m_alarmActionsHasBeenSet = true; m_alarmActions.push_back(value); return *this; } /** *

The actions to execute when this alarm transitions to the * INSUFFICIENT_DATA state from any other state. Each action is * specified as an Amazon Resource Name (ARN). Valid values:

EC2 * actions:

  • * arn:aws:automate:region:ec2:stop

  • * arn:aws:automate:region:ec2:terminate

  • * arn:aws:automate:region:ec2:reboot

  • * arn:aws:automate:region:ec2:recover

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0 *

Autoscaling action:

  • * arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SNS notification action:

  • * arn:aws:sns:region:account-id:sns-topic-name:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SSM integration actions:

  • * arn:aws:ssm:region:account-id:opsitem:severity#CATEGORY=category-name *

  • * arn:aws:ssm-incidents::account-id:responseplan/response-plan-name *

*/ inline const Aws::Vector& GetInsufficientDataActions() const{ return m_insufficientDataActions; } /** *

The actions to execute when this alarm transitions to the * INSUFFICIENT_DATA state from any other state. Each action is * specified as an Amazon Resource Name (ARN). Valid values:

EC2 * actions:

  • * arn:aws:automate:region:ec2:stop

  • * arn:aws:automate:region:ec2:terminate

  • * arn:aws:automate:region:ec2:reboot

  • * arn:aws:automate:region:ec2:recover

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0 *

Autoscaling action:

  • * arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SNS notification action:

  • * arn:aws:sns:region:account-id:sns-topic-name:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SSM integration actions:

  • * arn:aws:ssm:region:account-id:opsitem:severity#CATEGORY=category-name *

  • * arn:aws:ssm-incidents::account-id:responseplan/response-plan-name *

*/ inline bool InsufficientDataActionsHasBeenSet() const { return m_insufficientDataActionsHasBeenSet; } /** *

The actions to execute when this alarm transitions to the * INSUFFICIENT_DATA state from any other state. Each action is * specified as an Amazon Resource Name (ARN). Valid values:

EC2 * actions:

  • * arn:aws:automate:region:ec2:stop

  • * arn:aws:automate:region:ec2:terminate

  • * arn:aws:automate:region:ec2:reboot

  • * arn:aws:automate:region:ec2:recover

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0 *

Autoscaling action:

  • * arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SNS notification action:

  • * arn:aws:sns:region:account-id:sns-topic-name:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SSM integration actions:

  • * arn:aws:ssm:region:account-id:opsitem:severity#CATEGORY=category-name *

  • * arn:aws:ssm-incidents::account-id:responseplan/response-plan-name *

*/ inline void SetInsufficientDataActions(const Aws::Vector& value) { m_insufficientDataActionsHasBeenSet = true; m_insufficientDataActions = value; } /** *

The actions to execute when this alarm transitions to the * INSUFFICIENT_DATA state from any other state. Each action is * specified as an Amazon Resource Name (ARN). Valid values:

EC2 * actions:

  • * arn:aws:automate:region:ec2:stop

  • * arn:aws:automate:region:ec2:terminate

  • * arn:aws:automate:region:ec2:reboot

  • * arn:aws:automate:region:ec2:recover

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0 *

Autoscaling action:

  • * arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SNS notification action:

  • * arn:aws:sns:region:account-id:sns-topic-name:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SSM integration actions:

  • * arn:aws:ssm:region:account-id:opsitem:severity#CATEGORY=category-name *

  • * arn:aws:ssm-incidents::account-id:responseplan/response-plan-name *

*/ inline void SetInsufficientDataActions(Aws::Vector&& value) { m_insufficientDataActionsHasBeenSet = true; m_insufficientDataActions = std::move(value); } /** *

The actions to execute when this alarm transitions to the * INSUFFICIENT_DATA state from any other state. Each action is * specified as an Amazon Resource Name (ARN). Valid values:

EC2 * actions:

  • * arn:aws:automate:region:ec2:stop

  • * arn:aws:automate:region:ec2:terminate

  • * arn:aws:automate:region:ec2:reboot

  • * arn:aws:automate:region:ec2:recover

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0 *

Autoscaling action:

  • * arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SNS notification action:

  • * arn:aws:sns:region:account-id:sns-topic-name:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SSM integration actions:

  • * arn:aws:ssm:region:account-id:opsitem:severity#CATEGORY=category-name *

  • * arn:aws:ssm-incidents::account-id:responseplan/response-plan-name *

*/ inline PutMetricAlarmRequest& WithInsufficientDataActions(const Aws::Vector& value) { SetInsufficientDataActions(value); return *this;} /** *

The actions to execute when this alarm transitions to the * INSUFFICIENT_DATA state from any other state. Each action is * specified as an Amazon Resource Name (ARN). Valid values:

EC2 * actions:

  • * arn:aws:automate:region:ec2:stop

  • * arn:aws:automate:region:ec2:terminate

  • * arn:aws:automate:region:ec2:reboot

  • * arn:aws:automate:region:ec2:recover

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0 *

Autoscaling action:

  • * arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SNS notification action:

  • * arn:aws:sns:region:account-id:sns-topic-name:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SSM integration actions:

  • * arn:aws:ssm:region:account-id:opsitem:severity#CATEGORY=category-name *

  • * arn:aws:ssm-incidents::account-id:responseplan/response-plan-name *

*/ inline PutMetricAlarmRequest& WithInsufficientDataActions(Aws::Vector&& value) { SetInsufficientDataActions(std::move(value)); return *this;} /** *

The actions to execute when this alarm transitions to the * INSUFFICIENT_DATA state from any other state. Each action is * specified as an Amazon Resource Name (ARN). Valid values:

EC2 * actions:

  • * arn:aws:automate:region:ec2:stop

  • * arn:aws:automate:region:ec2:terminate

  • * arn:aws:automate:region:ec2:reboot

  • * arn:aws:automate:region:ec2:recover

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0 *

Autoscaling action:

  • * arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SNS notification action:

  • * arn:aws:sns:region:account-id:sns-topic-name:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SSM integration actions:

  • * arn:aws:ssm:region:account-id:opsitem:severity#CATEGORY=category-name *

  • * arn:aws:ssm-incidents::account-id:responseplan/response-plan-name *

*/ inline PutMetricAlarmRequest& AddInsufficientDataActions(const Aws::String& value) { m_insufficientDataActionsHasBeenSet = true; m_insufficientDataActions.push_back(value); return *this; } /** *

The actions to execute when this alarm transitions to the * INSUFFICIENT_DATA state from any other state. Each action is * specified as an Amazon Resource Name (ARN). Valid values:

EC2 * actions:

  • * arn:aws:automate:region:ec2:stop

  • * arn:aws:automate:region:ec2:terminate

  • * arn:aws:automate:region:ec2:reboot

  • * arn:aws:automate:region:ec2:recover

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0 *

Autoscaling action:

  • * arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SNS notification action:

  • * arn:aws:sns:region:account-id:sns-topic-name:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SSM integration actions:

  • * arn:aws:ssm:region:account-id:opsitem:severity#CATEGORY=category-name *

  • * arn:aws:ssm-incidents::account-id:responseplan/response-plan-name *

*/ inline PutMetricAlarmRequest& AddInsufficientDataActions(Aws::String&& value) { m_insufficientDataActionsHasBeenSet = true; m_insufficientDataActions.push_back(std::move(value)); return *this; } /** *

The actions to execute when this alarm transitions to the * INSUFFICIENT_DATA state from any other state. Each action is * specified as an Amazon Resource Name (ARN). Valid values:

EC2 * actions:

  • * arn:aws:automate:region:ec2:stop

  • * arn:aws:automate:region:ec2:terminate

  • * arn:aws:automate:region:ec2:reboot

  • * arn:aws:automate:region:ec2:recover

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 *

  • * arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0 *

Autoscaling action:

  • * arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SNS notification action:

  • * arn:aws:sns:region:account-id:sns-topic-name:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name *

SSM integration actions:

  • * arn:aws:ssm:region:account-id:opsitem:severity#CATEGORY=category-name *

  • * arn:aws:ssm-incidents::account-id:responseplan/response-plan-name *

*/ inline PutMetricAlarmRequest& AddInsufficientDataActions(const char* value) { m_insufficientDataActionsHasBeenSet = true; m_insufficientDataActions.push_back(value); return *this; } /** *

The name for the metric associated with the alarm. For each * PutMetricAlarm operation, you must specify either * MetricName or a Metrics array.

If you are * creating an alarm based on a math expression, you cannot specify this parameter, * or any of the Dimensions, Period, * Namespace, Statistic, or * ExtendedStatistic parameters. Instead, you specify all this * information in the Metrics array.

*/ inline const Aws::String& GetMetricName() const{ return m_metricName; } /** *

The name for the metric associated with the alarm. For each * PutMetricAlarm operation, you must specify either * MetricName or a Metrics array.

If you are * creating an alarm based on a math expression, you cannot specify this parameter, * or any of the Dimensions, Period, * Namespace, Statistic, or * ExtendedStatistic parameters. Instead, you specify all this * information in the Metrics array.

*/ inline bool MetricNameHasBeenSet() const { return m_metricNameHasBeenSet; } /** *

The name for the metric associated with the alarm. For each * PutMetricAlarm operation, you must specify either * MetricName or a Metrics array.

If you are * creating an alarm based on a math expression, you cannot specify this parameter, * or any of the Dimensions, Period, * Namespace, Statistic, or * ExtendedStatistic parameters. Instead, you specify all this * information in the Metrics array.

*/ inline void SetMetricName(const Aws::String& value) { m_metricNameHasBeenSet = true; m_metricName = value; } /** *

The name for the metric associated with the alarm. For each * PutMetricAlarm operation, you must specify either * MetricName or a Metrics array.

If you are * creating an alarm based on a math expression, you cannot specify this parameter, * or any of the Dimensions, Period, * Namespace, Statistic, or * ExtendedStatistic parameters. Instead, you specify all this * information in the Metrics array.

*/ inline void SetMetricName(Aws::String&& value) { m_metricNameHasBeenSet = true; m_metricName = std::move(value); } /** *

The name for the metric associated with the alarm. For each * PutMetricAlarm operation, you must specify either * MetricName or a Metrics array.

If you are * creating an alarm based on a math expression, you cannot specify this parameter, * or any of the Dimensions, Period, * Namespace, Statistic, or * ExtendedStatistic parameters. Instead, you specify all this * information in the Metrics array.

*/ inline void SetMetricName(const char* value) { m_metricNameHasBeenSet = true; m_metricName.assign(value); } /** *

The name for the metric associated with the alarm. For each * PutMetricAlarm operation, you must specify either * MetricName or a Metrics array.

If you are * creating an alarm based on a math expression, you cannot specify this parameter, * or any of the Dimensions, Period, * Namespace, Statistic, or * ExtendedStatistic parameters. Instead, you specify all this * information in the Metrics array.

*/ inline PutMetricAlarmRequest& WithMetricName(const Aws::String& value) { SetMetricName(value); return *this;} /** *

The name for the metric associated with the alarm. For each * PutMetricAlarm operation, you must specify either * MetricName or a Metrics array.

If you are * creating an alarm based on a math expression, you cannot specify this parameter, * or any of the Dimensions, Period, * Namespace, Statistic, or * ExtendedStatistic parameters. Instead, you specify all this * information in the Metrics array.

*/ inline PutMetricAlarmRequest& WithMetricName(Aws::String&& value) { SetMetricName(std::move(value)); return *this;} /** *

The name for the metric associated with the alarm. For each * PutMetricAlarm operation, you must specify either * MetricName or a Metrics array.

If you are * creating an alarm based on a math expression, you cannot specify this parameter, * or any of the Dimensions, Period, * Namespace, Statistic, or * ExtendedStatistic parameters. Instead, you specify all this * information in the Metrics array.

*/ inline PutMetricAlarmRequest& WithMetricName(const char* value) { SetMetricName(value); return *this;} /** *

The namespace for the metric associated specified in * MetricName.

*/ inline const Aws::String& GetNamespace() const{ return m_namespace; } /** *

The namespace for the metric associated specified in * MetricName.

*/ inline bool NamespaceHasBeenSet() const { return m_namespaceHasBeenSet; } /** *

The namespace for the metric associated specified in * MetricName.

*/ inline void SetNamespace(const Aws::String& value) { m_namespaceHasBeenSet = true; m_namespace = value; } /** *

The namespace for the metric associated specified in * MetricName.

*/ inline void SetNamespace(Aws::String&& value) { m_namespaceHasBeenSet = true; m_namespace = std::move(value); } /** *

The namespace for the metric associated specified in * MetricName.

*/ inline void SetNamespace(const char* value) { m_namespaceHasBeenSet = true; m_namespace.assign(value); } /** *

The namespace for the metric associated specified in * MetricName.

*/ inline PutMetricAlarmRequest& WithNamespace(const Aws::String& value) { SetNamespace(value); return *this;} /** *

The namespace for the metric associated specified in * MetricName.

*/ inline PutMetricAlarmRequest& WithNamespace(Aws::String&& value) { SetNamespace(std::move(value)); return *this;} /** *

The namespace for the metric associated specified in * MetricName.

*/ inline PutMetricAlarmRequest& WithNamespace(const char* value) { SetNamespace(value); return *this;} /** *

The statistic for the metric specified in MetricName, other than * percentile. For percentile statistics, use ExtendedStatistic. When * you call PutMetricAlarm and specify a MetricName, you * must specify either Statistic or ExtendedStatistic, * but not both.

*/ inline const Statistic& GetStatistic() const{ return m_statistic; } /** *

The statistic for the metric specified in MetricName, other than * percentile. For percentile statistics, use ExtendedStatistic. When * you call PutMetricAlarm and specify a MetricName, you * must specify either Statistic or ExtendedStatistic, * but not both.

*/ inline bool StatisticHasBeenSet() const { return m_statisticHasBeenSet; } /** *

The statistic for the metric specified in MetricName, other than * percentile. For percentile statistics, use ExtendedStatistic. When * you call PutMetricAlarm and specify a MetricName, you * must specify either Statistic or ExtendedStatistic, * but not both.

*/ inline void SetStatistic(const Statistic& value) { m_statisticHasBeenSet = true; m_statistic = value; } /** *

The statistic for the metric specified in MetricName, other than * percentile. For percentile statistics, use ExtendedStatistic. When * you call PutMetricAlarm and specify a MetricName, you * must specify either Statistic or ExtendedStatistic, * but not both.

*/ inline void SetStatistic(Statistic&& value) { m_statisticHasBeenSet = true; m_statistic = std::move(value); } /** *

The statistic for the metric specified in MetricName, other than * percentile. For percentile statistics, use ExtendedStatistic. When * you call PutMetricAlarm and specify a MetricName, you * must specify either Statistic or ExtendedStatistic, * but not both.

*/ inline PutMetricAlarmRequest& WithStatistic(const Statistic& value) { SetStatistic(value); return *this;} /** *

The statistic for the metric specified in MetricName, other than * percentile. For percentile statistics, use ExtendedStatistic. When * you call PutMetricAlarm and specify a MetricName, you * must specify either Statistic or ExtendedStatistic, * but not both.

*/ inline PutMetricAlarmRequest& WithStatistic(Statistic&& value) { SetStatistic(std::move(value)); return *this;} /** *

The percentile statistic for the metric specified in MetricName. * Specify a value between p0.0 and p100. When you call PutMetricAlarm * and specify a MetricName, you must specify either * Statistic or ExtendedStatistic, but not both.

*/ inline const Aws::String& GetExtendedStatistic() const{ return m_extendedStatistic; } /** *

The percentile statistic for the metric specified in MetricName. * Specify a value between p0.0 and p100. When you call PutMetricAlarm * and specify a MetricName, you must specify either * Statistic or ExtendedStatistic, but not both.

*/ inline bool ExtendedStatisticHasBeenSet() const { return m_extendedStatisticHasBeenSet; } /** *

The percentile statistic for the metric specified in MetricName. * Specify a value between p0.0 and p100. When you call PutMetricAlarm * and specify a MetricName, you must specify either * Statistic or ExtendedStatistic, but not both.

*/ inline void SetExtendedStatistic(const Aws::String& value) { m_extendedStatisticHasBeenSet = true; m_extendedStatistic = value; } /** *

The percentile statistic for the metric specified in MetricName. * Specify a value between p0.0 and p100. When you call PutMetricAlarm * and specify a MetricName, you must specify either * Statistic or ExtendedStatistic, but not both.

*/ inline void SetExtendedStatistic(Aws::String&& value) { m_extendedStatisticHasBeenSet = true; m_extendedStatistic = std::move(value); } /** *

The percentile statistic for the metric specified in MetricName. * Specify a value between p0.0 and p100. When you call PutMetricAlarm * and specify a MetricName, you must specify either * Statistic or ExtendedStatistic, but not both.

*/ inline void SetExtendedStatistic(const char* value) { m_extendedStatisticHasBeenSet = true; m_extendedStatistic.assign(value); } /** *

The percentile statistic for the metric specified in MetricName. * Specify a value between p0.0 and p100. When you call PutMetricAlarm * and specify a MetricName, you must specify either * Statistic or ExtendedStatistic, but not both.

*/ inline PutMetricAlarmRequest& WithExtendedStatistic(const Aws::String& value) { SetExtendedStatistic(value); return *this;} /** *

The percentile statistic for the metric specified in MetricName. * Specify a value between p0.0 and p100. When you call PutMetricAlarm * and specify a MetricName, you must specify either * Statistic or ExtendedStatistic, but not both.

*/ inline PutMetricAlarmRequest& WithExtendedStatistic(Aws::String&& value) { SetExtendedStatistic(std::move(value)); return *this;} /** *

The percentile statistic for the metric specified in MetricName. * Specify a value between p0.0 and p100. When you call PutMetricAlarm * and specify a MetricName, you must specify either * Statistic or ExtendedStatistic, but not both.

*/ inline PutMetricAlarmRequest& WithExtendedStatistic(const char* value) { SetExtendedStatistic(value); return *this;} /** *

The dimensions for the metric specified in MetricName.

*/ inline const Aws::Vector& GetDimensions() const{ return m_dimensions; } /** *

The dimensions for the metric specified in MetricName.

*/ inline bool DimensionsHasBeenSet() const { return m_dimensionsHasBeenSet; } /** *

The dimensions for the metric specified in MetricName.

*/ inline void SetDimensions(const Aws::Vector& value) { m_dimensionsHasBeenSet = true; m_dimensions = value; } /** *

The dimensions for the metric specified in MetricName.

*/ inline void SetDimensions(Aws::Vector&& value) { m_dimensionsHasBeenSet = true; m_dimensions = std::move(value); } /** *

The dimensions for the metric specified in MetricName.

*/ inline PutMetricAlarmRequest& WithDimensions(const Aws::Vector& value) { SetDimensions(value); return *this;} /** *

The dimensions for the metric specified in MetricName.

*/ inline PutMetricAlarmRequest& WithDimensions(Aws::Vector&& value) { SetDimensions(std::move(value)); return *this;} /** *

The dimensions for the metric specified in MetricName.

*/ inline PutMetricAlarmRequest& AddDimensions(const Dimension& value) { m_dimensionsHasBeenSet = true; m_dimensions.push_back(value); return *this; } /** *

The dimensions for the metric specified in MetricName.

*/ inline PutMetricAlarmRequest& AddDimensions(Dimension&& value) { m_dimensionsHasBeenSet = true; m_dimensions.push_back(std::move(value)); return *this; } /** *

The length, in seconds, used each time the metric specified in * MetricName is evaluated. Valid values are 10, 30, and any multiple * of 60.

Period is required for alarms based on static * thresholds. If you are creating an alarm based on a metric math expression, you * specify the period for each metric within the objects in the * Metrics array.

Be sure to specify 10 or 30 only for metrics * that are stored by a PutMetricData call with a * StorageResolution of 1. If you specify a period of 10 or 30 for a * metric that does not have sub-minute resolution, the alarm still attempts to * gather data at the period rate that you specify. In this case, it does not * receive data for the attempts that do not correspond to a one-minute data * resolution, and the alarm might often lapse into INSUFFICENT_DATA status. * Specifying 10 or 30 also sets this alarm as a high-resolution alarm, which has a * higher charge than other alarms. For more information about pricing, see Amazon CloudWatch * Pricing.

An alarm's total current evaluation period can be no longer * than one day, so Period multiplied by * EvaluationPeriods cannot be more than 86,400 seconds.

*/ inline int GetPeriod() const{ return m_period; } /** *

The length, in seconds, used each time the metric specified in * MetricName is evaluated. Valid values are 10, 30, and any multiple * of 60.

Period is required for alarms based on static * thresholds. If you are creating an alarm based on a metric math expression, you * specify the period for each metric within the objects in the * Metrics array.

Be sure to specify 10 or 30 only for metrics * that are stored by a PutMetricData call with a * StorageResolution of 1. If you specify a period of 10 or 30 for a * metric that does not have sub-minute resolution, the alarm still attempts to * gather data at the period rate that you specify. In this case, it does not * receive data for the attempts that do not correspond to a one-minute data * resolution, and the alarm might often lapse into INSUFFICENT_DATA status. * Specifying 10 or 30 also sets this alarm as a high-resolution alarm, which has a * higher charge than other alarms. For more information about pricing, see Amazon CloudWatch * Pricing.

An alarm's total current evaluation period can be no longer * than one day, so Period multiplied by * EvaluationPeriods cannot be more than 86,400 seconds.

*/ inline bool PeriodHasBeenSet() const { return m_periodHasBeenSet; } /** *

The length, in seconds, used each time the metric specified in * MetricName is evaluated. Valid values are 10, 30, and any multiple * of 60.

Period is required for alarms based on static * thresholds. If you are creating an alarm based on a metric math expression, you * specify the period for each metric within the objects in the * Metrics array.

Be sure to specify 10 or 30 only for metrics * that are stored by a PutMetricData call with a * StorageResolution of 1. If you specify a period of 10 or 30 for a * metric that does not have sub-minute resolution, the alarm still attempts to * gather data at the period rate that you specify. In this case, it does not * receive data for the attempts that do not correspond to a one-minute data * resolution, and the alarm might often lapse into INSUFFICENT_DATA status. * Specifying 10 or 30 also sets this alarm as a high-resolution alarm, which has a * higher charge than other alarms. For more information about pricing, see Amazon CloudWatch * Pricing.

An alarm's total current evaluation period can be no longer * than one day, so Period multiplied by * EvaluationPeriods cannot be more than 86,400 seconds.

*/ inline void SetPeriod(int value) { m_periodHasBeenSet = true; m_period = value; } /** *

The length, in seconds, used each time the metric specified in * MetricName is evaluated. Valid values are 10, 30, and any multiple * of 60.

Period is required for alarms based on static * thresholds. If you are creating an alarm based on a metric math expression, you * specify the period for each metric within the objects in the * Metrics array.

Be sure to specify 10 or 30 only for metrics * that are stored by a PutMetricData call with a * StorageResolution of 1. If you specify a period of 10 or 30 for a * metric that does not have sub-minute resolution, the alarm still attempts to * gather data at the period rate that you specify. In this case, it does not * receive data for the attempts that do not correspond to a one-minute data * resolution, and the alarm might often lapse into INSUFFICENT_DATA status. * Specifying 10 or 30 also sets this alarm as a high-resolution alarm, which has a * higher charge than other alarms. For more information about pricing, see Amazon CloudWatch * Pricing.

An alarm's total current evaluation period can be no longer * than one day, so Period multiplied by * EvaluationPeriods cannot be more than 86,400 seconds.

*/ inline PutMetricAlarmRequest& WithPeriod(int value) { SetPeriod(value); return *this;} /** *

The unit of measure for the statistic. For example, the units for the Amazon * EC2 NetworkIn metric are Bytes because NetworkIn tracks the number of bytes that * an instance receives on all network interfaces. You can also specify a unit when * you create a custom metric. Units help provide conceptual meaning to your data. * Metric data points that specify a unit of measure, such as Percent, are * aggregated separately.

If you don't specify Unit, CloudWatch * retrieves all unit types that have been published for the metric and attempts to * evaluate the alarm. Usually, metrics are published with only one unit, so the * alarm works as intended.

However, if the metric is published with * multiple types of units and you don't specify a unit, the alarm's behavior is * not defined and it behaves unpredictably.

We recommend omitting * Unit so that you don't inadvertently specify an incorrect unit that * is not published for this metric. Doing so causes the alarm to be stuck in the * INSUFFICIENT DATA state.

*/ inline const StandardUnit& GetUnit() const{ return m_unit; } /** *

The unit of measure for the statistic. For example, the units for the Amazon * EC2 NetworkIn metric are Bytes because NetworkIn tracks the number of bytes that * an instance receives on all network interfaces. You can also specify a unit when * you create a custom metric. Units help provide conceptual meaning to your data. * Metric data points that specify a unit of measure, such as Percent, are * aggregated separately.

If you don't specify Unit, CloudWatch * retrieves all unit types that have been published for the metric and attempts to * evaluate the alarm. Usually, metrics are published with only one unit, so the * alarm works as intended.

However, if the metric is published with * multiple types of units and you don't specify a unit, the alarm's behavior is * not defined and it behaves unpredictably.

We recommend omitting * Unit so that you don't inadvertently specify an incorrect unit that * is not published for this metric. Doing so causes the alarm to be stuck in the * INSUFFICIENT DATA state.

*/ inline bool UnitHasBeenSet() const { return m_unitHasBeenSet; } /** *

The unit of measure for the statistic. For example, the units for the Amazon * EC2 NetworkIn metric are Bytes because NetworkIn tracks the number of bytes that * an instance receives on all network interfaces. You can also specify a unit when * you create a custom metric. Units help provide conceptual meaning to your data. * Metric data points that specify a unit of measure, such as Percent, are * aggregated separately.

If you don't specify Unit, CloudWatch * retrieves all unit types that have been published for the metric and attempts to * evaluate the alarm. Usually, metrics are published with only one unit, so the * alarm works as intended.

However, if the metric is published with * multiple types of units and you don't specify a unit, the alarm's behavior is * not defined and it behaves unpredictably.

We recommend omitting * Unit so that you don't inadvertently specify an incorrect unit that * is not published for this metric. Doing so causes the alarm to be stuck in the * INSUFFICIENT DATA state.

*/ inline void SetUnit(const StandardUnit& value) { m_unitHasBeenSet = true; m_unit = value; } /** *

The unit of measure for the statistic. For example, the units for the Amazon * EC2 NetworkIn metric are Bytes because NetworkIn tracks the number of bytes that * an instance receives on all network interfaces. You can also specify a unit when * you create a custom metric. Units help provide conceptual meaning to your data. * Metric data points that specify a unit of measure, such as Percent, are * aggregated separately.

If you don't specify Unit, CloudWatch * retrieves all unit types that have been published for the metric and attempts to * evaluate the alarm. Usually, metrics are published with only one unit, so the * alarm works as intended.

However, if the metric is published with * multiple types of units and you don't specify a unit, the alarm's behavior is * not defined and it behaves unpredictably.

We recommend omitting * Unit so that you don't inadvertently specify an incorrect unit that * is not published for this metric. Doing so causes the alarm to be stuck in the * INSUFFICIENT DATA state.

*/ inline void SetUnit(StandardUnit&& value) { m_unitHasBeenSet = true; m_unit = std::move(value); } /** *

The unit of measure for the statistic. For example, the units for the Amazon * EC2 NetworkIn metric are Bytes because NetworkIn tracks the number of bytes that * an instance receives on all network interfaces. You can also specify a unit when * you create a custom metric. Units help provide conceptual meaning to your data. * Metric data points that specify a unit of measure, such as Percent, are * aggregated separately.

If you don't specify Unit, CloudWatch * retrieves all unit types that have been published for the metric and attempts to * evaluate the alarm. Usually, metrics are published with only one unit, so the * alarm works as intended.

However, if the metric is published with * multiple types of units and you don't specify a unit, the alarm's behavior is * not defined and it behaves unpredictably.

We recommend omitting * Unit so that you don't inadvertently specify an incorrect unit that * is not published for this metric. Doing so causes the alarm to be stuck in the * INSUFFICIENT DATA state.

*/ inline PutMetricAlarmRequest& WithUnit(const StandardUnit& value) { SetUnit(value); return *this;} /** *

The unit of measure for the statistic. For example, the units for the Amazon * EC2 NetworkIn metric are Bytes because NetworkIn tracks the number of bytes that * an instance receives on all network interfaces. You can also specify a unit when * you create a custom metric. Units help provide conceptual meaning to your data. * Metric data points that specify a unit of measure, such as Percent, are * aggregated separately.

If you don't specify Unit, CloudWatch * retrieves all unit types that have been published for the metric and attempts to * evaluate the alarm. Usually, metrics are published with only one unit, so the * alarm works as intended.

However, if the metric is published with * multiple types of units and you don't specify a unit, the alarm's behavior is * not defined and it behaves unpredictably.

We recommend omitting * Unit so that you don't inadvertently specify an incorrect unit that * is not published for this metric. Doing so causes the alarm to be stuck in the * INSUFFICIENT DATA state.

*/ inline PutMetricAlarmRequest& WithUnit(StandardUnit&& value) { SetUnit(std::move(value)); return *this;} /** *

The number of periods over which data is compared to the specified threshold. * If you are setting an alarm that requires that a number of consecutive data * points be breaching to trigger the alarm, this value specifies that number. If * you are setting an "M out of N" alarm, this value is the N.

An alarm's * total current evaluation period can be no longer than one day, so this number * multiplied by Period cannot be more than 86,400 seconds.

*/ inline int GetEvaluationPeriods() const{ return m_evaluationPeriods; } /** *

The number of periods over which data is compared to the specified threshold. * If you are setting an alarm that requires that a number of consecutive data * points be breaching to trigger the alarm, this value specifies that number. If * you are setting an "M out of N" alarm, this value is the N.

An alarm's * total current evaluation period can be no longer than one day, so this number * multiplied by Period cannot be more than 86,400 seconds.

*/ inline bool EvaluationPeriodsHasBeenSet() const { return m_evaluationPeriodsHasBeenSet; } /** *

The number of periods over which data is compared to the specified threshold. * If you are setting an alarm that requires that a number of consecutive data * points be breaching to trigger the alarm, this value specifies that number. If * you are setting an "M out of N" alarm, this value is the N.

An alarm's * total current evaluation period can be no longer than one day, so this number * multiplied by Period cannot be more than 86,400 seconds.

*/ inline void SetEvaluationPeriods(int value) { m_evaluationPeriodsHasBeenSet = true; m_evaluationPeriods = value; } /** *

The number of periods over which data is compared to the specified threshold. * If you are setting an alarm that requires that a number of consecutive data * points be breaching to trigger the alarm, this value specifies that number. If * you are setting an "M out of N" alarm, this value is the N.

An alarm's * total current evaluation period can be no longer than one day, so this number * multiplied by Period cannot be more than 86,400 seconds.

*/ inline PutMetricAlarmRequest& WithEvaluationPeriods(int value) { SetEvaluationPeriods(value); return *this;} /** *

The number of data points that must be breaching to trigger the alarm. This * is used only if you are setting an "M out of N" alarm. In that case, this value * is the M. For more information, see Evaluating * an Alarm in the Amazon CloudWatch User Guide.

*/ inline int GetDatapointsToAlarm() const{ return m_datapointsToAlarm; } /** *

The number of data points that must be breaching to trigger the alarm. This * is used only if you are setting an "M out of N" alarm. In that case, this value * is the M. For more information, see Evaluating * an Alarm in the Amazon CloudWatch User Guide.

*/ inline bool DatapointsToAlarmHasBeenSet() const { return m_datapointsToAlarmHasBeenSet; } /** *

The number of data points that must be breaching to trigger the alarm. This * is used only if you are setting an "M out of N" alarm. In that case, this value * is the M. For more information, see Evaluating * an Alarm in the Amazon CloudWatch User Guide.

*/ inline void SetDatapointsToAlarm(int value) { m_datapointsToAlarmHasBeenSet = true; m_datapointsToAlarm = value; } /** *

The number of data points that must be breaching to trigger the alarm. This * is used only if you are setting an "M out of N" alarm. In that case, this value * is the M. For more information, see Evaluating * an Alarm in the Amazon CloudWatch User Guide.

*/ inline PutMetricAlarmRequest& WithDatapointsToAlarm(int value) { SetDatapointsToAlarm(value); return *this;} /** *

The value against which the specified statistic is compared.

This * parameter is required for alarms based on static thresholds, but should not be * used for alarms based on anomaly detection models.

*/ inline double GetThreshold() const{ return m_threshold; } /** *

The value against which the specified statistic is compared.

This * parameter is required for alarms based on static thresholds, but should not be * used for alarms based on anomaly detection models.

*/ inline bool ThresholdHasBeenSet() const { return m_thresholdHasBeenSet; } /** *

The value against which the specified statistic is compared.

This * parameter is required for alarms based on static thresholds, but should not be * used for alarms based on anomaly detection models.

*/ inline void SetThreshold(double value) { m_thresholdHasBeenSet = true; m_threshold = value; } /** *

The value against which the specified statistic is compared.

This * parameter is required for alarms based on static thresholds, but should not be * used for alarms based on anomaly detection models.

*/ inline PutMetricAlarmRequest& WithThreshold(double value) { SetThreshold(value); return *this;} /** *

The arithmetic operation to use when comparing the specified statistic and * threshold. The specified statistic value is used as the first operand.

*

The values LessThanLowerOrGreaterThanUpperThreshold, * LessThanLowerThreshold, and GreaterThanUpperThreshold * are used only for alarms based on anomaly detection models.

*/ inline const ComparisonOperator& GetComparisonOperator() const{ return m_comparisonOperator; } /** *

The arithmetic operation to use when comparing the specified statistic and * threshold. The specified statistic value is used as the first operand.

*

The values LessThanLowerOrGreaterThanUpperThreshold, * LessThanLowerThreshold, and GreaterThanUpperThreshold * are used only for alarms based on anomaly detection models.

*/ inline bool ComparisonOperatorHasBeenSet() const { return m_comparisonOperatorHasBeenSet; } /** *

The arithmetic operation to use when comparing the specified statistic and * threshold. The specified statistic value is used as the first operand.

*

The values LessThanLowerOrGreaterThanUpperThreshold, * LessThanLowerThreshold, and GreaterThanUpperThreshold * are used only for alarms based on anomaly detection models.

*/ inline void SetComparisonOperator(const ComparisonOperator& value) { m_comparisonOperatorHasBeenSet = true; m_comparisonOperator = value; } /** *

The arithmetic operation to use when comparing the specified statistic and * threshold. The specified statistic value is used as the first operand.

*

The values LessThanLowerOrGreaterThanUpperThreshold, * LessThanLowerThreshold, and GreaterThanUpperThreshold * are used only for alarms based on anomaly detection models.

*/ inline void SetComparisonOperator(ComparisonOperator&& value) { m_comparisonOperatorHasBeenSet = true; m_comparisonOperator = std::move(value); } /** *

The arithmetic operation to use when comparing the specified statistic and * threshold. The specified statistic value is used as the first operand.

*

The values LessThanLowerOrGreaterThanUpperThreshold, * LessThanLowerThreshold, and GreaterThanUpperThreshold * are used only for alarms based on anomaly detection models.

*/ inline PutMetricAlarmRequest& WithComparisonOperator(const ComparisonOperator& value) { SetComparisonOperator(value); return *this;} /** *

The arithmetic operation to use when comparing the specified statistic and * threshold. The specified statistic value is used as the first operand.

*

The values LessThanLowerOrGreaterThanUpperThreshold, * LessThanLowerThreshold, and GreaterThanUpperThreshold * are used only for alarms based on anomaly detection models.

*/ inline PutMetricAlarmRequest& WithComparisonOperator(ComparisonOperator&& value) { SetComparisonOperator(std::move(value)); return *this;} /** *

Sets how this alarm is to handle missing data points. If * TreatMissingData is omitted, the default behavior of * missing is used. For more information, see Configuring * How CloudWatch Alarms Treats Missing Data.

Valid Values: * breaching | notBreaching | ignore | missing

Alarms * that evaluate metrics in the AWS/DynamoDB namespace always * ignore missing data even if you choose a different option for * TreatMissingData. When an AWS/DynamoDB metric has * missing data, alarms that evaluate that metric remain in their current * state.

*/ inline const Aws::String& GetTreatMissingData() const{ return m_treatMissingData; } /** *

Sets how this alarm is to handle missing data points. If * TreatMissingData is omitted, the default behavior of * missing is used. For more information, see Configuring * How CloudWatch Alarms Treats Missing Data.

Valid Values: * breaching | notBreaching | ignore | missing

Alarms * that evaluate metrics in the AWS/DynamoDB namespace always * ignore missing data even if you choose a different option for * TreatMissingData. When an AWS/DynamoDB metric has * missing data, alarms that evaluate that metric remain in their current * state.

*/ inline bool TreatMissingDataHasBeenSet() const { return m_treatMissingDataHasBeenSet; } /** *

Sets how this alarm is to handle missing data points. If * TreatMissingData is omitted, the default behavior of * missing is used. For more information, see Configuring * How CloudWatch Alarms Treats Missing Data.

Valid Values: * breaching | notBreaching | ignore | missing

Alarms * that evaluate metrics in the AWS/DynamoDB namespace always * ignore missing data even if you choose a different option for * TreatMissingData. When an AWS/DynamoDB metric has * missing data, alarms that evaluate that metric remain in their current * state.

*/ inline void SetTreatMissingData(const Aws::String& value) { m_treatMissingDataHasBeenSet = true; m_treatMissingData = value; } /** *

Sets how this alarm is to handle missing data points. If * TreatMissingData is omitted, the default behavior of * missing is used. For more information, see Configuring * How CloudWatch Alarms Treats Missing Data.

Valid Values: * breaching | notBreaching | ignore | missing

Alarms * that evaluate metrics in the AWS/DynamoDB namespace always * ignore missing data even if you choose a different option for * TreatMissingData. When an AWS/DynamoDB metric has * missing data, alarms that evaluate that metric remain in their current * state.

*/ inline void SetTreatMissingData(Aws::String&& value) { m_treatMissingDataHasBeenSet = true; m_treatMissingData = std::move(value); } /** *

Sets how this alarm is to handle missing data points. If * TreatMissingData is omitted, the default behavior of * missing is used. For more information, see Configuring * How CloudWatch Alarms Treats Missing Data.

Valid Values: * breaching | notBreaching | ignore | missing

Alarms * that evaluate metrics in the AWS/DynamoDB namespace always * ignore missing data even if you choose a different option for * TreatMissingData. When an AWS/DynamoDB metric has * missing data, alarms that evaluate that metric remain in their current * state.

*/ inline void SetTreatMissingData(const char* value) { m_treatMissingDataHasBeenSet = true; m_treatMissingData.assign(value); } /** *

Sets how this alarm is to handle missing data points. If * TreatMissingData is omitted, the default behavior of * missing is used. For more information, see Configuring * How CloudWatch Alarms Treats Missing Data.

Valid Values: * breaching | notBreaching | ignore | missing

Alarms * that evaluate metrics in the AWS/DynamoDB namespace always * ignore missing data even if you choose a different option for * TreatMissingData. When an AWS/DynamoDB metric has * missing data, alarms that evaluate that metric remain in their current * state.

*/ inline PutMetricAlarmRequest& WithTreatMissingData(const Aws::String& value) { SetTreatMissingData(value); return *this;} /** *

Sets how this alarm is to handle missing data points. If * TreatMissingData is omitted, the default behavior of * missing is used. For more information, see Configuring * How CloudWatch Alarms Treats Missing Data.

Valid Values: * breaching | notBreaching | ignore | missing

Alarms * that evaluate metrics in the AWS/DynamoDB namespace always * ignore missing data even if you choose a different option for * TreatMissingData. When an AWS/DynamoDB metric has * missing data, alarms that evaluate that metric remain in their current * state.

*/ inline PutMetricAlarmRequest& WithTreatMissingData(Aws::String&& value) { SetTreatMissingData(std::move(value)); return *this;} /** *

Sets how this alarm is to handle missing data points. If * TreatMissingData is omitted, the default behavior of * missing is used. For more information, see Configuring * How CloudWatch Alarms Treats Missing Data.

Valid Values: * breaching | notBreaching | ignore | missing

Alarms * that evaluate metrics in the AWS/DynamoDB namespace always * ignore missing data even if you choose a different option for * TreatMissingData. When an AWS/DynamoDB metric has * missing data, alarms that evaluate that metric remain in their current * state.

*/ inline PutMetricAlarmRequest& WithTreatMissingData(const char* value) { SetTreatMissingData(value); return *this;} /** *

Used only for alarms based on percentiles. If you specify * ignore, the alarm state does not change during periods with too few * data points to be statistically significant. If you specify * evaluate or omit this parameter, the alarm is always evaluated and * possibly changes state no matter how many data points are available. For more * information, see Percentile-Based * CloudWatch Alarms and Low Data Samples.

Valid Values: evaluate * | ignore

*/ inline const Aws::String& GetEvaluateLowSampleCountPercentile() const{ return m_evaluateLowSampleCountPercentile; } /** *

Used only for alarms based on percentiles. If you specify * ignore, the alarm state does not change during periods with too few * data points to be statistically significant. If you specify * evaluate or omit this parameter, the alarm is always evaluated and * possibly changes state no matter how many data points are available. For more * information, see Percentile-Based * CloudWatch Alarms and Low Data Samples.

Valid Values: evaluate * | ignore

*/ inline bool EvaluateLowSampleCountPercentileHasBeenSet() const { return m_evaluateLowSampleCountPercentileHasBeenSet; } /** *

Used only for alarms based on percentiles. If you specify * ignore, the alarm state does not change during periods with too few * data points to be statistically significant. If you specify * evaluate or omit this parameter, the alarm is always evaluated and * possibly changes state no matter how many data points are available. For more * information, see Percentile-Based * CloudWatch Alarms and Low Data Samples.

Valid Values: evaluate * | ignore

*/ inline void SetEvaluateLowSampleCountPercentile(const Aws::String& value) { m_evaluateLowSampleCountPercentileHasBeenSet = true; m_evaluateLowSampleCountPercentile = value; } /** *

Used only for alarms based on percentiles. If you specify * ignore, the alarm state does not change during periods with too few * data points to be statistically significant. If you specify * evaluate or omit this parameter, the alarm is always evaluated and * possibly changes state no matter how many data points are available. For more * information, see Percentile-Based * CloudWatch Alarms and Low Data Samples.

Valid Values: evaluate * | ignore

*/ inline void SetEvaluateLowSampleCountPercentile(Aws::String&& value) { m_evaluateLowSampleCountPercentileHasBeenSet = true; m_evaluateLowSampleCountPercentile = std::move(value); } /** *

Used only for alarms based on percentiles. If you specify * ignore, the alarm state does not change during periods with too few * data points to be statistically significant. If you specify * evaluate or omit this parameter, the alarm is always evaluated and * possibly changes state no matter how many data points are available. For more * information, see Percentile-Based * CloudWatch Alarms and Low Data Samples.

Valid Values: evaluate * | ignore

*/ inline void SetEvaluateLowSampleCountPercentile(const char* value) { m_evaluateLowSampleCountPercentileHasBeenSet = true; m_evaluateLowSampleCountPercentile.assign(value); } /** *

Used only for alarms based on percentiles. If you specify * ignore, the alarm state does not change during periods with too few * data points to be statistically significant. If you specify * evaluate or omit this parameter, the alarm is always evaluated and * possibly changes state no matter how many data points are available. For more * information, see Percentile-Based * CloudWatch Alarms and Low Data Samples.

Valid Values: evaluate * | ignore

*/ inline PutMetricAlarmRequest& WithEvaluateLowSampleCountPercentile(const Aws::String& value) { SetEvaluateLowSampleCountPercentile(value); return *this;} /** *

Used only for alarms based on percentiles. If you specify * ignore, the alarm state does not change during periods with too few * data points to be statistically significant. If you specify * evaluate or omit this parameter, the alarm is always evaluated and * possibly changes state no matter how many data points are available. For more * information, see Percentile-Based * CloudWatch Alarms and Low Data Samples.

Valid Values: evaluate * | ignore

*/ inline PutMetricAlarmRequest& WithEvaluateLowSampleCountPercentile(Aws::String&& value) { SetEvaluateLowSampleCountPercentile(std::move(value)); return *this;} /** *

Used only for alarms based on percentiles. If you specify * ignore, the alarm state does not change during periods with too few * data points to be statistically significant. If you specify * evaluate or omit this parameter, the alarm is always evaluated and * possibly changes state no matter how many data points are available. For more * information, see Percentile-Based * CloudWatch Alarms and Low Data Samples.

Valid Values: evaluate * | ignore

*/ inline PutMetricAlarmRequest& WithEvaluateLowSampleCountPercentile(const char* value) { SetEvaluateLowSampleCountPercentile(value); return *this;} /** *

An array of MetricDataQuery structures that enable you to create * an alarm based on the result of a metric math expression. For each * PutMetricAlarm operation, you must specify either * MetricName or a Metrics array.

Each item in the * Metrics array either retrieves a metric or performs a math * expression.

One item in the Metrics array is the expression * that the alarm watches. You designate this expression by setting * ReturnData to true for this object in the array. For more * information, see MetricDataQuery.

*

If you use the Metrics parameter, you cannot include the * MetricName, Dimensions, Period, * Namespace, Statistic, or * ExtendedStatistic parameters of PutMetricAlarm in the * same operation. Instead, you retrieve the metrics you are using in your math * expression as part of the Metrics array.

*/ inline const Aws::Vector& GetMetrics() const{ return m_metrics; } /** *

An array of MetricDataQuery structures that enable you to create * an alarm based on the result of a metric math expression. For each * PutMetricAlarm operation, you must specify either * MetricName or a Metrics array.

Each item in the * Metrics array either retrieves a metric or performs a math * expression.

One item in the Metrics array is the expression * that the alarm watches. You designate this expression by setting * ReturnData to true for this object in the array. For more * information, see MetricDataQuery.

*

If you use the Metrics parameter, you cannot include the * MetricName, Dimensions, Period, * Namespace, Statistic, or * ExtendedStatistic parameters of PutMetricAlarm in the * same operation. Instead, you retrieve the metrics you are using in your math * expression as part of the Metrics array.

*/ inline bool MetricsHasBeenSet() const { return m_metricsHasBeenSet; } /** *

An array of MetricDataQuery structures that enable you to create * an alarm based on the result of a metric math expression. For each * PutMetricAlarm operation, you must specify either * MetricName or a Metrics array.

Each item in the * Metrics array either retrieves a metric or performs a math * expression.

One item in the Metrics array is the expression * that the alarm watches. You designate this expression by setting * ReturnData to true for this object in the array. For more * information, see MetricDataQuery.

*

If you use the Metrics parameter, you cannot include the * MetricName, Dimensions, Period, * Namespace, Statistic, or * ExtendedStatistic parameters of PutMetricAlarm in the * same operation. Instead, you retrieve the metrics you are using in your math * expression as part of the Metrics array.

*/ inline void SetMetrics(const Aws::Vector& value) { m_metricsHasBeenSet = true; m_metrics = value; } /** *

An array of MetricDataQuery structures that enable you to create * an alarm based on the result of a metric math expression. For each * PutMetricAlarm operation, you must specify either * MetricName or a Metrics array.

Each item in the * Metrics array either retrieves a metric or performs a math * expression.

One item in the Metrics array is the expression * that the alarm watches. You designate this expression by setting * ReturnData to true for this object in the array. For more * information, see MetricDataQuery.

*

If you use the Metrics parameter, you cannot include the * MetricName, Dimensions, Period, * Namespace, Statistic, or * ExtendedStatistic parameters of PutMetricAlarm in the * same operation. Instead, you retrieve the metrics you are using in your math * expression as part of the Metrics array.

*/ inline void SetMetrics(Aws::Vector&& value) { m_metricsHasBeenSet = true; m_metrics = std::move(value); } /** *

An array of MetricDataQuery structures that enable you to create * an alarm based on the result of a metric math expression. For each * PutMetricAlarm operation, you must specify either * MetricName or a Metrics array.

Each item in the * Metrics array either retrieves a metric or performs a math * expression.

One item in the Metrics array is the expression * that the alarm watches. You designate this expression by setting * ReturnData to true for this object in the array. For more * information, see MetricDataQuery.

*

If you use the Metrics parameter, you cannot include the * MetricName, Dimensions, Period, * Namespace, Statistic, or * ExtendedStatistic parameters of PutMetricAlarm in the * same operation. Instead, you retrieve the metrics you are using in your math * expression as part of the Metrics array.

*/ inline PutMetricAlarmRequest& WithMetrics(const Aws::Vector& value) { SetMetrics(value); return *this;} /** *

An array of MetricDataQuery structures that enable you to create * an alarm based on the result of a metric math expression. For each * PutMetricAlarm operation, you must specify either * MetricName or a Metrics array.

Each item in the * Metrics array either retrieves a metric or performs a math * expression.

One item in the Metrics array is the expression * that the alarm watches. You designate this expression by setting * ReturnData to true for this object in the array. For more * information, see MetricDataQuery.

*

If you use the Metrics parameter, you cannot include the * MetricName, Dimensions, Period, * Namespace, Statistic, or * ExtendedStatistic parameters of PutMetricAlarm in the * same operation. Instead, you retrieve the metrics you are using in your math * expression as part of the Metrics array.

*/ inline PutMetricAlarmRequest& WithMetrics(Aws::Vector&& value) { SetMetrics(std::move(value)); return *this;} /** *

An array of MetricDataQuery structures that enable you to create * an alarm based on the result of a metric math expression. For each * PutMetricAlarm operation, you must specify either * MetricName or a Metrics array.

Each item in the * Metrics array either retrieves a metric or performs a math * expression.

One item in the Metrics array is the expression * that the alarm watches. You designate this expression by setting * ReturnData to true for this object in the array. For more * information, see MetricDataQuery.

*

If you use the Metrics parameter, you cannot include the * MetricName, Dimensions, Period, * Namespace, Statistic, or * ExtendedStatistic parameters of PutMetricAlarm in the * same operation. Instead, you retrieve the metrics you are using in your math * expression as part of the Metrics array.

*/ inline PutMetricAlarmRequest& AddMetrics(const MetricDataQuery& value) { m_metricsHasBeenSet = true; m_metrics.push_back(value); return *this; } /** *

An array of MetricDataQuery structures that enable you to create * an alarm based on the result of a metric math expression. For each * PutMetricAlarm operation, you must specify either * MetricName or a Metrics array.

Each item in the * Metrics array either retrieves a metric or performs a math * expression.

One item in the Metrics array is the expression * that the alarm watches. You designate this expression by setting * ReturnData to true for this object in the array. For more * information, see MetricDataQuery.

*

If you use the Metrics parameter, you cannot include the * MetricName, Dimensions, Period, * Namespace, Statistic, or * ExtendedStatistic parameters of PutMetricAlarm in the * same operation. Instead, you retrieve the metrics you are using in your math * expression as part of the Metrics array.

*/ inline PutMetricAlarmRequest& AddMetrics(MetricDataQuery&& value) { m_metricsHasBeenSet = true; m_metrics.push_back(std::move(value)); return *this; } /** *

A list of key-value pairs to associate with the alarm. You can associate as * many as 50 tags with an alarm.

Tags can help you organize and categorize * your resources. You can also use them to scope user permissions by granting a * user permission to access or change only resources with certain tag values.

*

If you are using this operation to update an existing alarm, any tags you * specify in this parameter are ignored. To change the tags of an existing alarm, * use TagResource * or UntagResource.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

A list of key-value pairs to associate with the alarm. You can associate as * many as 50 tags with an alarm.

Tags can help you organize and categorize * your resources. You can also use them to scope user permissions by granting a * user permission to access or change only resources with certain tag values.

*

If you are using this operation to update an existing alarm, any tags you * specify in this parameter are ignored. To change the tags of an existing alarm, * use TagResource * or UntagResource.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

A list of key-value pairs to associate with the alarm. You can associate as * many as 50 tags with an alarm.

Tags can help you organize and categorize * your resources. You can also use them to scope user permissions by granting a * user permission to access or change only resources with certain tag values.

*

If you are using this operation to update an existing alarm, any tags you * specify in this parameter are ignored. To change the tags of an existing alarm, * use TagResource * or UntagResource.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

A list of key-value pairs to associate with the alarm. You can associate as * many as 50 tags with an alarm.

Tags can help you organize and categorize * your resources. You can also use them to scope user permissions by granting a * user permission to access or change only resources with certain tag values.

*

If you are using this operation to update an existing alarm, any tags you * specify in this parameter are ignored. To change the tags of an existing alarm, * use TagResource * or UntagResource.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

A list of key-value pairs to associate with the alarm. You can associate as * many as 50 tags with an alarm.

Tags can help you organize and categorize * your resources. You can also use them to scope user permissions by granting a * user permission to access or change only resources with certain tag values.

*

If you are using this operation to update an existing alarm, any tags you * specify in this parameter are ignored. To change the tags of an existing alarm, * use TagResource * or UntagResource.

*/ inline PutMetricAlarmRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

A list of key-value pairs to associate with the alarm. You can associate as * many as 50 tags with an alarm.

Tags can help you organize and categorize * your resources. You can also use them to scope user permissions by granting a * user permission to access or change only resources with certain tag values.

*

If you are using this operation to update an existing alarm, any tags you * specify in this parameter are ignored. To change the tags of an existing alarm, * use TagResource * or UntagResource.

*/ inline PutMetricAlarmRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

A list of key-value pairs to associate with the alarm. You can associate as * many as 50 tags with an alarm.

Tags can help you organize and categorize * your resources. You can also use them to scope user permissions by granting a * user permission to access or change only resources with certain tag values.

*

If you are using this operation to update an existing alarm, any tags you * specify in this parameter are ignored. To change the tags of an existing alarm, * use TagResource * or UntagResource.

*/ inline PutMetricAlarmRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

A list of key-value pairs to associate with the alarm. You can associate as * many as 50 tags with an alarm.

Tags can help you organize and categorize * your resources. You can also use them to scope user permissions by granting a * user permission to access or change only resources with certain tag values.

*

If you are using this operation to update an existing alarm, any tags you * specify in this parameter are ignored. To change the tags of an existing alarm, * use TagResource * or UntagResource.

*/ inline PutMetricAlarmRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

If this is an alarm based on an anomaly detection model, make this value * match the ID of the ANOMALY_DETECTION_BAND function.

For an * example of how to use this parameter, see the Anomaly Detection Model * Alarm example on this page.

If your alarm uses this parameter, it * cannot have Auto Scaling actions.

*/ inline const Aws::String& GetThresholdMetricId() const{ return m_thresholdMetricId; } /** *

If this is an alarm based on an anomaly detection model, make this value * match the ID of the ANOMALY_DETECTION_BAND function.

For an * example of how to use this parameter, see the Anomaly Detection Model * Alarm example on this page.

If your alarm uses this parameter, it * cannot have Auto Scaling actions.

*/ inline bool ThresholdMetricIdHasBeenSet() const { return m_thresholdMetricIdHasBeenSet; } /** *

If this is an alarm based on an anomaly detection model, make this value * match the ID of the ANOMALY_DETECTION_BAND function.

For an * example of how to use this parameter, see the Anomaly Detection Model * Alarm example on this page.

If your alarm uses this parameter, it * cannot have Auto Scaling actions.

*/ inline void SetThresholdMetricId(const Aws::String& value) { m_thresholdMetricIdHasBeenSet = true; m_thresholdMetricId = value; } /** *

If this is an alarm based on an anomaly detection model, make this value * match the ID of the ANOMALY_DETECTION_BAND function.

For an * example of how to use this parameter, see the Anomaly Detection Model * Alarm example on this page.

If your alarm uses this parameter, it * cannot have Auto Scaling actions.

*/ inline void SetThresholdMetricId(Aws::String&& value) { m_thresholdMetricIdHasBeenSet = true; m_thresholdMetricId = std::move(value); } /** *

If this is an alarm based on an anomaly detection model, make this value * match the ID of the ANOMALY_DETECTION_BAND function.

For an * example of how to use this parameter, see the Anomaly Detection Model * Alarm example on this page.

If your alarm uses this parameter, it * cannot have Auto Scaling actions.

*/ inline void SetThresholdMetricId(const char* value) { m_thresholdMetricIdHasBeenSet = true; m_thresholdMetricId.assign(value); } /** *

If this is an alarm based on an anomaly detection model, make this value * match the ID of the ANOMALY_DETECTION_BAND function.

For an * example of how to use this parameter, see the Anomaly Detection Model * Alarm example on this page.

If your alarm uses this parameter, it * cannot have Auto Scaling actions.

*/ inline PutMetricAlarmRequest& WithThresholdMetricId(const Aws::String& value) { SetThresholdMetricId(value); return *this;} /** *

If this is an alarm based on an anomaly detection model, make this value * match the ID of the ANOMALY_DETECTION_BAND function.

For an * example of how to use this parameter, see the Anomaly Detection Model * Alarm example on this page.

If your alarm uses this parameter, it * cannot have Auto Scaling actions.

*/ inline PutMetricAlarmRequest& WithThresholdMetricId(Aws::String&& value) { SetThresholdMetricId(std::move(value)); return *this;} /** *

If this is an alarm based on an anomaly detection model, make this value * match the ID of the ANOMALY_DETECTION_BAND function.

For an * example of how to use this parameter, see the Anomaly Detection Model * Alarm example on this page.

If your alarm uses this parameter, it * cannot have Auto Scaling actions.

*/ inline PutMetricAlarmRequest& WithThresholdMetricId(const char* value) { SetThresholdMetricId(value); return *this;} private: Aws::String m_alarmName; bool m_alarmNameHasBeenSet = false; Aws::String m_alarmDescription; bool m_alarmDescriptionHasBeenSet = false; bool m_actionsEnabled; bool m_actionsEnabledHasBeenSet = false; Aws::Vector m_oKActions; bool m_oKActionsHasBeenSet = false; Aws::Vector m_alarmActions; bool m_alarmActionsHasBeenSet = false; Aws::Vector m_insufficientDataActions; bool m_insufficientDataActionsHasBeenSet = false; Aws::String m_metricName; bool m_metricNameHasBeenSet = false; Aws::String m_namespace; bool m_namespaceHasBeenSet = false; Statistic m_statistic; bool m_statisticHasBeenSet = false; Aws::String m_extendedStatistic; bool m_extendedStatisticHasBeenSet = false; Aws::Vector m_dimensions; bool m_dimensionsHasBeenSet = false; int m_period; bool m_periodHasBeenSet = false; StandardUnit m_unit; bool m_unitHasBeenSet = false; int m_evaluationPeriods; bool m_evaluationPeriodsHasBeenSet = false; int m_datapointsToAlarm; bool m_datapointsToAlarmHasBeenSet = false; double m_threshold; bool m_thresholdHasBeenSet = false; ComparisonOperator m_comparisonOperator; bool m_comparisonOperatorHasBeenSet = false; Aws::String m_treatMissingData; bool m_treatMissingDataHasBeenSet = false; Aws::String m_evaluateLowSampleCountPercentile; bool m_evaluateLowSampleCountPercentileHasBeenSet = false; Aws::Vector m_metrics; bool m_metricsHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; Aws::String m_thresholdMetricId; bool m_thresholdMetricIdHasBeenSet = false; }; } // namespace Model } // namespace CloudWatch } // namespace Aws