class Aws::CloudWatch::Types::PutCompositeAlarmInput

@note When making an API call, you may pass PutCompositeAlarmInput

data as a hash:

    {
      actions_enabled: false,
      alarm_actions: ["ResourceName"],
      alarm_description: "AlarmDescription",
      alarm_name: "AlarmName", # required
      alarm_rule: "AlarmRule", # required
      insufficient_data_actions: ["ResourceName"],
      ok_actions: ["ResourceName"],
      tags: [
        {
          key: "TagKey", # required
          value: "TagValue", # required
        },
      ],
    }

@!attribute [rw] actions_enabled

Indicates whether actions should be executed during any changes to
the alarm state of the composite alarm. The default is `TRUE`.
@return [Boolean]

@!attribute [rw] alarm_actions

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: `arn:aws:sns:region:account-id:sns-topic-name ` \|
`arn:aws:ssm:region:account-id:opsitem:severity `
@return [Array<String>]

@!attribute [rw] alarm_description

The description for the composite alarm.
@return [String]

@!attribute [rw] alarm_name

The name for the composite alarm. This name must be unique within
the Region.
@return [String]

@!attribute [rw] alarm_rule

An expression that specifies which other alarms are to be evaluated
to determine this composite alarm's state. For each alarm that you
reference, you designate a function that specifies whether that
alarm needs to be in ALARM state, OK state, or INSUFFICIENT\_DATA
state. You can use operators (AND, OR and NOT) to combine multiple
functions in a single expression. You can use parenthesis to
logically group the functions in your expression.

You can use either alarm names or ARNs to reference the other alarms
that are to be evaluated.

Functions can include the following:

* `ALARM("alarm-name or alarm-ARN")` is TRUE if the named alarm is
  in ALARM state.

* `OK("alarm-name or alarm-ARN")` is TRUE if the named alarm is in
  OK state.

* `INSUFFICIENT_DATA("alarm-name or alarm-ARN")` is TRUE if the
  named alarm is in INSUFFICIENT\_DATA state.

* `TRUE` always evaluates to TRUE.

* `FALSE` always evaluates to FALSE.

TRUE and FALSE are useful for testing a complex `AlarmRule`
structure, and for testing your alarm actions.

Alarm names specified in `AlarmRule` can be surrounded with
double-quotes ("), but do not have to be.

The following are some examples of `AlarmRule`\:

* `ALARM(CPUUtilizationTooHigh) AND ALARM(DiskReadOpsTooHigh)`
  specifies that the composite alarm goes into ALARM state only if
  both CPUUtilizationTooHigh and DiskReadOpsTooHigh alarms are in
  ALARM state.

* `ALARM(CPUUtilizationTooHigh) AND NOT ALARM(DeploymentInProgress)`
  specifies that the alarm goes to ALARM state if
  CPUUtilizationTooHigh is in ALARM state and DeploymentInProgress
  is not in ALARM state. This example reduces alarm noise during a
  known deployment window.

* `(ALARM(CPUUtilizationTooHigh) OR ALARM(DiskReadOpsTooHigh)) AND
  OK(NetworkOutTooHigh)` goes into ALARM state if
  CPUUtilizationTooHigh OR DiskReadOpsTooHigh is in ALARM state, and
  if NetworkOutTooHigh is in OK state. This provides another example
  of using a composite alarm to prevent noise. This rule ensures
  that you are not notified with an alarm action on high CPU or disk
  usage if a known network problem is also occurring.

The `AlarmRule` can specify as many as 100 "children" alarms. The
`AlarmRule` expression can have as many as 500 elements. Elements
are child alarms, TRUE or FALSE statements, and parentheses.
@return [String]

@!attribute [rw] insufficient_data_actions

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: `arn:aws:sns:region:account-id:sns-topic-name `
@return [Array<String>]

@!attribute [rw] ok_actions

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: `arn:aws:sns:region:account-id:sns-topic-name `
@return [Array<String>]

@!attribute [rw] tags

A list of key-value pairs to associate with the composite 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.
@return [Array<Types::Tag>]

@see docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutCompositeAlarmInput AWS API Documentation

Constants

SENSITIVE